update address for staking with testnet

This commit is contained in:
CounterFire2023 2024-09-12 13:27:11 +08:00
parent 2c10ee82da
commit 619c3264c0
14 changed files with 282 additions and 1585 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16,6 +16,10 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
args: [tokenName, tokenSymbol],
verify: true,
});
const esCECContract = await hre.ethers.getContractAt("EsToken", esCEC.address);
let tx = await esCECContract.setInPrivateTransferMode(true);
await tx.wait();
console.log("==esCECContract setInPrivateTransferMode");
};
deployNFTClaim.tags = ["EsCEC"];

View File

@ -16,25 +16,17 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
name: "stakedCecTracker",
type: "logic",
contractName: "RewardTracker",
args: ["Staked CEC", "sCEC"],
args: [esCEC.address, cec, rewardPerSecond, 18],
verify: true,
});
const stakedCecDistributor = await deplayOne({
hre,
name: "stakedCecDistributor",
type: "logic",
contractName: "RewardDistributor",
args: [esCEC.address, stakedCecTracker.address],
verify: true,
});
const vester = await deplayOne({
hre,
name: "vester",
type: "logic",
contractName: "Vester",
args: ["Vested CEC", "veCEC", vestingDuration, esCEC.address, ZeroAddress, cec, stakedCecTracker.address, true],
args: ["Vested CEC", "veCEC", vestingDuration, esCEC.address, cec, stakedCecTracker.address, ZeroAddress,true],
verify: true,
});
@ -49,27 +41,13 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
});
const stakedCecTrackerContract = await hre.ethers.getContractAt("RewardTracker", stakedCecTracker.address);
const stakedCecDistributorContract = await hre.ethers.getContractAt(
"RewardDistributor",
stakedCecDistributor.address,
);
const esCECContract = await hre.ethers.getContractAt("EsToken", esCEC.address);
let tx = await stakedCecTrackerContract.initialize([cec, esCEC.address], stakedCecDistributor.address);
await tx.wait();
console.log("==stakedCecTrackerContract initialized");
tx = await stakedCecTrackerContract.setInPrivateTransferMode(true);
await tx.wait();
console.log("==stakedCecTrackerContract setInPrivateTransferMode");
tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
let tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
await tx.wait();
console.log("==stakedCecTrackerContract setInPrivateStakingMode");
tx = await stakedCecDistributorContract.updateLastDistributionTime();
await tx.wait();
console.log("==stakedCecDistributorContract updateLastDistributionTime");
tx = await stakedCecDistributorContract.setTokensPerInterval(rewardPerSecond);
await tx.wait();
console.log("==stakedCecDistributorContract setTokensPerInterval");
tx = await stakedCecTrackerContract.setHandler(rewardRouter.address, true);
await tx.wait();
console.log("==stakedCecTrackerContract setHandler");
@ -77,15 +55,9 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
tx = await esCECContract.setMinter(vester.address, true);
await tx.wait();
console.log("==esCECContract setMinter");
// 设定esCEC不能公开转账
tx = await esCECContract.setInPrivateTransferMode(true);
await tx.wait();
console.log("==esCECContract setInPrivateTransferMode");
// 添加转账白名单
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
await tx.wait();
tx = await esCECContract.setHandler(stakedCecDistributor.address, true);
await tx.wait();
tx = await esCECContract.setHandler(vester.address, true);
await tx.wait();
console.log("==esCECContract setHandler");

View File

@ -20,16 +20,7 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
name: "stakedEsCecTracker",
type: "logic",
contractName: "RewardTracker",
args: ["Staked esCEC", "essCEC"],
verify: true,
});
const stakedCecDistributor = await deplayOne({
hre,
name: "stakedEsCecDistributor",
type: "logic",
contractName: "RewardDistributor",
args: [esCEC.address, stakedCecTracker.address],
args: [esCEC.address, esCEC.address, rewardPerSecond, 18],
verify: true,
});
@ -43,26 +34,10 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
});
const stakedCecTrackerContract = await hre.ethers.getContractAt("RewardTracker", stakedCecTracker.address);
const stakedCecDistributorContract = await hre.ethers.getContractAt(
"RewardDistributor",
stakedCecDistributor.address,
);
let tx = await stakedCecTrackerContract.initialize([cec, esCEC.address], stakedCecDistributor.address);
await tx.wait();
console.log("==stakedEsCecTrackerContract initialized");
tx = await stakedCecTrackerContract.setInPrivateTransferMode(true);
await tx.wait();
console.log("==stakedEsCecTrackerContract setInPrivateTransferMode");
tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
let tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
await tx.wait();
console.log("==stakedEsCecTrackerContract setInPrivateStakingMode");
tx = await stakedCecDistributorContract.updateLastDistributionTime();
await tx.wait();
console.log("==stakedEsCecDistributorContract updateLastDistributionTime");
tx = await stakedCecDistributorContract.setTokensPerInterval(rewardPerSecond);
await tx.wait();
console.log("==stakedEsCecDistributorContract setTokensPerInterval");
tx = await stakedCecTrackerContract.setHandler(rewardRouter.address, true);
await tx.wait();
console.log("==stakedEsCecTrackerContract setHandler");
@ -70,9 +45,11 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
// 添加转账白名单
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
await tx.wait();
tx = await esCECContract.setHandler(stakedCecDistributor.address, true);
await tx.wait();
console.log("==esCECContract setHandler");
const vesterContract = await hre.ethers.getContractAt("Vester", vester.address);
tx = await vesterContract.setRewardTrackerEsCEC(stakedCecTracker.address);
await tx.wait();
console.log("==vesterContract setRewardTrackerEsCEC");
};
deployNFTClaim.tags = ["StakingEsCEC"];

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -45,42 +45,30 @@
"name": "stakedCecTracker",
"type": "logic",
"json": "assets/contracts/RewardTracker.json",
"address": "0x7554e677fF63212264db26dc743c67C277f219d2"
},
{
"name": "stakedCecDistributor",
"type": "logic",
"json": "assets/contracts/RewardDistributor.json",
"address": "0x53153a177F4483b53b3f732Ff63eeB48c6FE89E5"
"address": "0x4d0d113e7E271B07a031B638562fd7778e7fF0F9"
},
{
"name": "vester",
"type": "logic",
"json": "assets/contracts/Vester.json",
"address": "0xeD00165aBA9efaCcE9e07705e474e0EE1Bb35328"
"address": "0x012ad686a48A887A6b6a70E2618828c3ef372eb2"
},
{
"name": "stakedCecRouter",
"type": "logic",
"json": "assets/contracts/RewardRouter.json",
"address": "0x576c3D53c6d4A19471E216c06945d41EC39f6014"
"address": "0xeD11fA906275e5e0B15B1a1c575F60Af551687FC"
},
{
"name": "stakedEsCecTracker",
"type": "logic",
"json": "assets/contracts/RewardTracker.json",
"address": "0x30cd668d0f280C404aD504bFf5d7a3Bf535f2A92"
},
{
"name": "stakedEsCecDistributor",
"type": "logic",
"json": "assets/contracts/RewardDistributor.json",
"address": "0x6Ee091c2c242470f4f6D3d55604e1a66c6FF4ff5"
"address": "0x47eFeaCdF6bE0CD4c1f654633D1DaaEDaD82DAB5"
},
{
"name": "stakedEsCecRouter",
"type": "logic",
"json": "assets/contracts/RewardRouter.json",
"address": "0x19934736a578527cF725a33201445166Cbb62e52"
"address": "0x495Ba7734C9727117275807817bbd4C176a118c3"
}
]

View File

@ -34,8 +34,6 @@ describe('RewardRouter', function() {
async function deployOneContract() {
// Contracts are deployed using the first signer/account by default
const [owner, user0, user1, user2] = await hre.ethers.getSigners();
const verifier = owner.address;
const chainId = hre.network.config.chainId
const Cec = await hre.ethers.getContractFactory("MintableBaseToken");
@ -65,7 +63,7 @@ describe('RewardRouter', function() {
await stakedCecTracker.setInPrivateTransferMode(true)
await stakedCecTracker.setInPrivateStakingMode(true)
// await esCec.setInPrivateTransferMode(true)
await esCec.setInPrivateTransferMode(true)
const RewardRouter = await hre.ethers.getContractFactory("RewardRouter");
const rewardRouter = await RewardRouter.deploy(
@ -75,12 +73,14 @@ describe('RewardRouter', function() {
);
await esCec.setMinter(owner.address, true)
await esCec.setHandler(owner.address, true)
await esCec.mint(stakedCecDistributor.target, expandDecimals(50000, 18))
await stakedCecDistributor.setTokensPerInterval(rewardPerSecond)
await stakedCecTracker.setHandler(rewardRouter.target, true)
await esCec.setMinter(vester.target, true)
await esCec.setHandler(stakedCecTracker.target, true)
await esCec.setHandler(stakedCecDistributor.target, true)
return { owner, user0, user1, user2, chainId, cec, esCec, stakedCecTracker, stakedCecDistributor, vester, rewardRouter };
}
@ -90,7 +90,7 @@ describe('RewardRouter', function() {
// expect((await nftClaimer.mintConfig()).mintPrice).to.equal(100);
});
})
describe("Staking", function () {
describe("Staking CEC", function () {
it("stakeCecForAccount, stakeCec, stakeEsCec, unstakeCec, unstakeEsCec, claimEsCec", async () => {
const {owner, user0, user1, user2, chainId, cec, esCec, stakedCecTracker, stakedCecDistributor, vester, rewardRouter} = await loadFixture(deployOneContract);
const wallet = owner
@ -101,13 +101,29 @@ describe('RewardRouter', function() {
// @ts-ignore
await cec.connect(user0).approve(stakedCecTracker.target, expandDecimals(1000, 18))
let startTime1 = await blockTime(provider)
console.log('startTime1: ', startTime1)
const lastDistributioTime1 = await stakedCecDistributor.lastDistributionTime()
console.log('lastDistributioTime1: ', lastDistributioTime1)
// @ts-ignore
await expect(rewardRouter.connect(user0).batchStakeCecForAccount([user1.address], [expandDecimals(1000, 18)]))
.to.be.revertedWith("Governable: forbidden")
let startTime = await blockTime(provider)
console.log('startTime: ', startTime)
await rewardRouter.setGov(user0.address)
const lastDistributioTime = await stakedCecDistributor.lastDistributionTime()
console.log('lastDistributioTime: ', lastDistributioTime)
// @ts-ignore
await rewardRouter.connect(user0).batchStakeCecForAccount([user1.address], [expandDecimals(800, 18)])
const lastDistributioTime2 = await stakedCecDistributor.lastDistributionTime()
console.log('lastDistributioTime2: ', lastDistributioTime2)
let nextTime = await blockTime(provider)
console.log('nextTime: ', nextTime)
let reward = BigInt(1000) * BigInt(nextTime - startTime) * rewardPerSecond
//@ts-ignore
expect(await stakedCecTracker.claimable(user1.address)).eq(reward)
expect(await cec.balanceOf(user0.address)).eq(expandDecimals(700, 18))
await cec.mint(user1.address, expandDecimals(200, 18))
@ -130,12 +146,11 @@ describe('RewardRouter', function() {
await mineBlock(provider)
await showLog('1day', stakedCecTracker, esCec, user1.address)
expect(await stakedCecTracker.claimable(user0.address)).eq(0)
console.log('blockTime: ', await blockTime(provider))
expect(await stakedCecTracker.claimable(user1.address)).gt(expandDecimals(4, 18))
expect(await stakedCecTracker.claimable(user1.address)).lt(expandDecimals(5, 18))
// await timelock.signalMint(esCec.target, tokenManager.address, expandDecimals(500, 18))
await increaseTime(provider, 20)
await mineBlock(provider)