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],
|
||||
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"];
|
||||
|
@ -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");
|
||||
|
@ -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
File diff suppressed because one or more lines are too long
@ -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"
|
||||
}
|
||||
]
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user