update address for staking with testnet
This commit is contained in:
parent
2c10ee82da
commit
619c3264c0
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
@ -16,6 +16,10 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
args: [tokenName, tokenSymbol],
|
args: [tokenName, tokenSymbol],
|
||||||
verify: true,
|
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"];
|
deployNFTClaim.tags = ["EsCEC"];
|
||||||
|
@ -16,25 +16,17 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
name: "stakedCecTracker",
|
name: "stakedCecTracker",
|
||||||
type: "logic",
|
type: "logic",
|
||||||
contractName: "RewardTracker",
|
contractName: "RewardTracker",
|
||||||
args: ["Staked CEC", "sCEC"],
|
args: [esCEC.address, cec, rewardPerSecond, 18],
|
||||||
verify: true,
|
verify: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const stakedCecDistributor = await deplayOne({
|
|
||||||
hre,
|
|
||||||
name: "stakedCecDistributor",
|
|
||||||
type: "logic",
|
|
||||||
contractName: "RewardDistributor",
|
|
||||||
args: [esCEC.address, stakedCecTracker.address],
|
|
||||||
verify: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
const vester = await deplayOne({
|
const vester = await deplayOne({
|
||||||
hre,
|
hre,
|
||||||
name: "vester",
|
name: "vester",
|
||||||
type: "logic",
|
type: "logic",
|
||||||
contractName: "Vester",
|
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,
|
verify: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -49,27 +41,13 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
});
|
});
|
||||||
|
|
||||||
const stakedCecTrackerContract = await hre.ethers.getContractAt("RewardTracker", stakedCecTracker.address);
|
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);
|
const esCECContract = await hre.ethers.getContractAt("EsToken", esCEC.address);
|
||||||
|
|
||||||
let tx = await stakedCecTrackerContract.initialize([cec, esCEC.address], stakedCecDistributor.address);
|
let tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
|
||||||
await tx.wait();
|
|
||||||
console.log("==stakedCecTrackerContract initialized");
|
|
||||||
tx = await stakedCecTrackerContract.setInPrivateTransferMode(true);
|
|
||||||
await tx.wait();
|
|
||||||
console.log("==stakedCecTrackerContract setInPrivateTransferMode");
|
|
||||||
tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
|
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
console.log("==stakedCecTrackerContract setInPrivateStakingMode");
|
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);
|
tx = await stakedCecTrackerContract.setHandler(rewardRouter.address, true);
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
console.log("==stakedCecTrackerContract setHandler");
|
console.log("==stakedCecTrackerContract setHandler");
|
||||||
@ -77,15 +55,9 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
tx = await esCECContract.setMinter(vester.address, true);
|
tx = await esCECContract.setMinter(vester.address, true);
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
console.log("==esCECContract setMinter");
|
console.log("==esCECContract setMinter");
|
||||||
// 设定esCEC不能公开转账
|
|
||||||
tx = await esCECContract.setInPrivateTransferMode(true);
|
|
||||||
await tx.wait();
|
|
||||||
console.log("==esCECContract setInPrivateTransferMode");
|
|
||||||
// 添加转账白名单
|
// 添加转账白名单
|
||||||
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
|
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
tx = await esCECContract.setHandler(stakedCecDistributor.address, true);
|
|
||||||
await tx.wait();
|
|
||||||
tx = await esCECContract.setHandler(vester.address, true);
|
tx = await esCECContract.setHandler(vester.address, true);
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
console.log("==esCECContract setHandler");
|
console.log("==esCECContract setHandler");
|
||||||
|
@ -20,16 +20,7 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
name: "stakedEsCecTracker",
|
name: "stakedEsCecTracker",
|
||||||
type: "logic",
|
type: "logic",
|
||||||
contractName: "RewardTracker",
|
contractName: "RewardTracker",
|
||||||
args: ["Staked esCEC", "essCEC"],
|
args: [esCEC.address, esCEC.address, rewardPerSecond, 18],
|
||||||
verify: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
const stakedCecDistributor = await deplayOne({
|
|
||||||
hre,
|
|
||||||
name: "stakedEsCecDistributor",
|
|
||||||
type: "logic",
|
|
||||||
contractName: "RewardDistributor",
|
|
||||||
args: [esCEC.address, stakedCecTracker.address],
|
|
||||||
verify: true,
|
verify: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -43,26 +34,10 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
});
|
});
|
||||||
|
|
||||||
const stakedCecTrackerContract = await hre.ethers.getContractAt("RewardTracker", stakedCecTracker.address);
|
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);
|
let tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
|
||||||
await tx.wait();
|
|
||||||
console.log("==stakedEsCecTrackerContract initialized");
|
|
||||||
tx = await stakedCecTrackerContract.setInPrivateTransferMode(true);
|
|
||||||
await tx.wait();
|
|
||||||
console.log("==stakedEsCecTrackerContract setInPrivateTransferMode");
|
|
||||||
tx = await stakedCecTrackerContract.setInPrivateStakingMode(true);
|
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
console.log("==stakedEsCecTrackerContract setInPrivateStakingMode");
|
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);
|
tx = await stakedCecTrackerContract.setHandler(rewardRouter.address, true);
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
console.log("==stakedEsCecTrackerContract setHandler");
|
console.log("==stakedEsCecTrackerContract setHandler");
|
||||||
@ -70,9 +45,11 @@ const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnviro
|
|||||||
// 添加转账白名单
|
// 添加转账白名单
|
||||||
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
|
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
tx = await esCECContract.setHandler(stakedCecDistributor.address, true);
|
|
||||||
await tx.wait();
|
|
||||||
console.log("==esCECContract setHandler");
|
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"];
|
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
File diff suppressed because one or more lines are too long
@ -45,42 +45,30 @@
|
|||||||
"name": "stakedCecTracker",
|
"name": "stakedCecTracker",
|
||||||
"type": "logic",
|
"type": "logic",
|
||||||
"json": "assets/contracts/RewardTracker.json",
|
"json": "assets/contracts/RewardTracker.json",
|
||||||
"address": "0x7554e677fF63212264db26dc743c67C277f219d2"
|
"address": "0x4d0d113e7E271B07a031B638562fd7778e7fF0F9"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "stakedCecDistributor",
|
|
||||||
"type": "logic",
|
|
||||||
"json": "assets/contracts/RewardDistributor.json",
|
|
||||||
"address": "0x53153a177F4483b53b3f732Ff63eeB48c6FE89E5"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "vester",
|
"name": "vester",
|
||||||
"type": "logic",
|
"type": "logic",
|
||||||
"json": "assets/contracts/Vester.json",
|
"json": "assets/contracts/Vester.json",
|
||||||
"address": "0xeD00165aBA9efaCcE9e07705e474e0EE1Bb35328"
|
"address": "0x012ad686a48A887A6b6a70E2618828c3ef372eb2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "stakedCecRouter",
|
"name": "stakedCecRouter",
|
||||||
"type": "logic",
|
"type": "logic",
|
||||||
"json": "assets/contracts/RewardRouter.json",
|
"json": "assets/contracts/RewardRouter.json",
|
||||||
"address": "0x576c3D53c6d4A19471E216c06945d41EC39f6014"
|
"address": "0xeD11fA906275e5e0B15B1a1c575F60Af551687FC"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "stakedEsCecTracker",
|
"name": "stakedEsCecTracker",
|
||||||
"type": "logic",
|
"type": "logic",
|
||||||
"json": "assets/contracts/RewardTracker.json",
|
"json": "assets/contracts/RewardTracker.json",
|
||||||
"address": "0x30cd668d0f280C404aD504bFf5d7a3Bf535f2A92"
|
"address": "0x47eFeaCdF6bE0CD4c1f654633D1DaaEDaD82DAB5"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "stakedEsCecDistributor",
|
|
||||||
"type": "logic",
|
|
||||||
"json": "assets/contracts/RewardDistributor.json",
|
|
||||||
"address": "0x6Ee091c2c242470f4f6D3d55604e1a66c6FF4ff5"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "stakedEsCecRouter",
|
"name": "stakedEsCecRouter",
|
||||||
"type": "logic",
|
"type": "logic",
|
||||||
"json": "assets/contracts/RewardRouter.json",
|
"json": "assets/contracts/RewardRouter.json",
|
||||||
"address": "0x19934736a578527cF725a33201445166Cbb62e52"
|
"address": "0x495Ba7734C9727117275807817bbd4C176a118c3"
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -34,8 +34,6 @@ describe('RewardRouter', function() {
|
|||||||
async function deployOneContract() {
|
async function deployOneContract() {
|
||||||
// Contracts are deployed using the first signer/account by default
|
// Contracts are deployed using the first signer/account by default
|
||||||
const [owner, user0, user1, user2] = await hre.ethers.getSigners();
|
const [owner, user0, user1, user2] = await hre.ethers.getSigners();
|
||||||
const verifier = owner.address;
|
|
||||||
|
|
||||||
const chainId = hre.network.config.chainId
|
const chainId = hre.network.config.chainId
|
||||||
|
|
||||||
const Cec = await hre.ethers.getContractFactory("MintableBaseToken");
|
const Cec = await hre.ethers.getContractFactory("MintableBaseToken");
|
||||||
@ -65,7 +63,7 @@ describe('RewardRouter', function() {
|
|||||||
await stakedCecTracker.setInPrivateTransferMode(true)
|
await stakedCecTracker.setInPrivateTransferMode(true)
|
||||||
await stakedCecTracker.setInPrivateStakingMode(true)
|
await stakedCecTracker.setInPrivateStakingMode(true)
|
||||||
|
|
||||||
// await esCec.setInPrivateTransferMode(true)
|
await esCec.setInPrivateTransferMode(true)
|
||||||
|
|
||||||
const RewardRouter = await hre.ethers.getContractFactory("RewardRouter");
|
const RewardRouter = await hre.ethers.getContractFactory("RewardRouter");
|
||||||
const rewardRouter = await RewardRouter.deploy(
|
const rewardRouter = await RewardRouter.deploy(
|
||||||
@ -75,12 +73,14 @@ describe('RewardRouter', function() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
await esCec.setMinter(owner.address, true)
|
await esCec.setMinter(owner.address, true)
|
||||||
|
await esCec.setHandler(owner.address, true)
|
||||||
await esCec.mint(stakedCecDistributor.target, expandDecimals(50000, 18))
|
await esCec.mint(stakedCecDistributor.target, expandDecimals(50000, 18))
|
||||||
await stakedCecDistributor.setTokensPerInterval(rewardPerSecond)
|
await stakedCecDistributor.setTokensPerInterval(rewardPerSecond)
|
||||||
|
|
||||||
await stakedCecTracker.setHandler(rewardRouter.target, true)
|
await stakedCecTracker.setHandler(rewardRouter.target, true)
|
||||||
await esCec.setMinter(vester.target, true)
|
await esCec.setMinter(vester.target, true)
|
||||||
await esCec.setHandler(stakedCecTracker.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 };
|
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);
|
// expect((await nftClaimer.mintConfig()).mintPrice).to.equal(100);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
describe("Staking", function () {
|
describe("Staking CEC", function () {
|
||||||
it("stakeCecForAccount, stakeCec, stakeEsCec, unstakeCec, unstakeEsCec, claimEsCec", async () => {
|
it("stakeCecForAccount, stakeCec, stakeEsCec, unstakeCec, unstakeEsCec, claimEsCec", async () => {
|
||||||
const {owner, user0, user1, user2, chainId, cec, esCec, stakedCecTracker, stakedCecDistributor, vester, rewardRouter} = await loadFixture(deployOneContract);
|
const {owner, user0, user1, user2, chainId, cec, esCec, stakedCecTracker, stakedCecDistributor, vester, rewardRouter} = await loadFixture(deployOneContract);
|
||||||
const wallet = owner
|
const wallet = owner
|
||||||
@ -101,13 +101,29 @@ describe('RewardRouter', function() {
|
|||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
await cec.connect(user0).approve(stakedCecTracker.target, expandDecimals(1000, 18))
|
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
|
// @ts-ignore
|
||||||
await expect(rewardRouter.connect(user0).batchStakeCecForAccount([user1.address], [expandDecimals(1000, 18)]))
|
await expect(rewardRouter.connect(user0).batchStakeCecForAccount([user1.address], [expandDecimals(1000, 18)]))
|
||||||
.to.be.revertedWith("Governable: forbidden")
|
.to.be.revertedWith("Governable: forbidden")
|
||||||
|
let startTime = await blockTime(provider)
|
||||||
|
console.log('startTime: ', startTime)
|
||||||
|
|
||||||
await rewardRouter.setGov(user0.address)
|
await rewardRouter.setGov(user0.address)
|
||||||
|
const lastDistributioTime = await stakedCecDistributor.lastDistributionTime()
|
||||||
|
console.log('lastDistributioTime: ', lastDistributioTime)
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
await rewardRouter.connect(user0).batchStakeCecForAccount([user1.address], [expandDecimals(800, 18)])
|
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))
|
expect(await cec.balanceOf(user0.address)).eq(expandDecimals(700, 18))
|
||||||
|
|
||||||
await cec.mint(user1.address, expandDecimals(200, 18))
|
await cec.mint(user1.address, expandDecimals(200, 18))
|
||||||
@ -130,12 +146,11 @@ describe('RewardRouter', function() {
|
|||||||
await mineBlock(provider)
|
await mineBlock(provider)
|
||||||
await showLog('1day', stakedCecTracker, esCec, user1.address)
|
await showLog('1day', stakedCecTracker, esCec, user1.address)
|
||||||
expect(await stakedCecTracker.claimable(user0.address)).eq(0)
|
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)).gt(expandDecimals(4, 18))
|
||||||
expect(await stakedCecTracker.claimable(user1.address)).lt(expandDecimals(5, 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 increaseTime(provider, 20)
|
||||||
await mineBlock(provider)
|
await mineBlock(provider)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user