优化staking相关合约发布流程
This commit is contained in:
parent
a59dc4771b
commit
53fbcb9ead
@ -51,7 +51,9 @@ const mint = {
|
||||
const staking = {
|
||||
cec: '0xe34c5ea0c3083d11a735dc0609533b92130319f5',
|
||||
// stake cec时, 每质押一个cec, 每年可获得的收益
|
||||
rewardPerSecond: BigInt(1.5 * 10 ** 18) / BigInt(365 * 24 * 60 * 60)
|
||||
rewardPerSecond: BigInt(1.5 * 10 ** 18) / BigInt(365 * 24 * 60 * 60),
|
||||
// esCEC 转化为cec的时间
|
||||
vestingDuration: BigInt(365 * 24 * 60 * 60)
|
||||
}
|
||||
|
||||
var config = {
|
||||
|
@ -1,123 +1,101 @@
|
||||
import {HardhatRuntimeEnvironment} from "hardhat/types";
|
||||
import {DeployFunction} from "hardhat-deploy/types";
|
||||
import {updateArray} from "../scripts/utils";
|
||||
import {updateArray, deplayOne} from "../scripts/utils";
|
||||
import {ZeroAddress} from "ethers";
|
||||
|
||||
const secondsPerYear = 365 * 24 * 60 * 60;
|
||||
|
||||
|
||||
|
||||
const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
||||
const provider = hre.ethers.provider;
|
||||
const from = await (await provider.getSigner()).getAddress();
|
||||
const config = require(`../config/config_${hre.network.name}`);
|
||||
const {mallFeeAddress, paymentTokens, verifier} = config.market;
|
||||
const {cec, rewardPerSecond} = config.staking;
|
||||
const {cec, rewardPerSecond, vestingDuration} = config.staking;
|
||||
const tokenName = "Escrowed CEC";
|
||||
const tokenSymbol = "esCEC";
|
||||
const esCEC = await hre.deployments.deploy("EsToken", {
|
||||
from,
|
||||
args: [tokenName, tokenSymbol],
|
||||
log: true,
|
||||
});
|
||||
console.log("==EsToken addr=", esCEC.address);
|
||||
updateArray({
|
||||
const esCEC = await deplayOne({
|
||||
hre,
|
||||
name: "esCEC",
|
||||
type: "erc20",
|
||||
json: "assets/contracts/EsToken.json",
|
||||
address: esCEC.address,
|
||||
network: hre.network.name,
|
||||
contractName: "EsToken",
|
||||
args: [tokenName, tokenSymbol],
|
||||
verify: true,
|
||||
});
|
||||
// verify the contract
|
||||
try {
|
||||
await hre.run("verify:verify", {
|
||||
address: esCEC.address,
|
||||
constructorArguments: [tokenName, tokenSymbol],
|
||||
});
|
||||
} catch (e) {
|
||||
console.log("==verify failed", e);
|
||||
}
|
||||
|
||||
const stakedCecTracker = await hre.deployments.deploy("RewardTracker", {
|
||||
from,
|
||||
args: ["Staked CEC", "sCEC"],
|
||||
log: true,
|
||||
});
|
||||
console.log("==RewardTracker addr=", stakedCecTracker.address);
|
||||
updateArray({
|
||||
const stakedCecTracker = await deplayOne({
|
||||
hre,
|
||||
name: "stakedCecTracker",
|
||||
type: "logic",
|
||||
json: "assets/contracts/RewardTracker.json",
|
||||
address: stakedCecTracker.address,
|
||||
network: hre.network.name,
|
||||
});
|
||||
const stakedCecDistributor = await hre.deployments.deploy("RewardDistributor", {
|
||||
from,
|
||||
args: [esCEC.address, stakedCecTracker.address],
|
||||
log: true,
|
||||
contractName: "RewardTracker",
|
||||
args: ["Staked CEC", "sCEC"],
|
||||
verify: true,
|
||||
});
|
||||
|
||||
console.log("==RewardDistributor addr=", stakedCecDistributor.address);
|
||||
updateArray({
|
||||
const stakedCecDistributor = await deplayOne({
|
||||
hre,
|
||||
name: "stakedCecDistributor",
|
||||
type: "logic",
|
||||
json: "assets/contracts/RewardDistributor.json",
|
||||
address: stakedCecDistributor.address,
|
||||
network: hre.network.name,
|
||||
contractName: "RewardDistributor",
|
||||
args: [esCEC.address, stakedCecTracker.address],
|
||||
verify: true,
|
||||
});
|
||||
|
||||
const vester = await hre.deployments.deploy("Vester", {
|
||||
from,
|
||||
args: ["Vested CEC", "veCEC", secondsPerYear, esCEC.address, ZeroAddress, cec, ZeroAddress, false],
|
||||
log: true,
|
||||
});
|
||||
|
||||
console.log("==Vester addr=", vester.address);
|
||||
updateArray({
|
||||
const vester = await deplayOne({
|
||||
hre,
|
||||
name: "vester",
|
||||
type: "logic",
|
||||
json: "assets/contracts/Vester.json",
|
||||
address: vester.address,
|
||||
network: hre.network.name,
|
||||
contractName: "Vester",
|
||||
args: ["Vested CEC", "veCEC", vestingDuration, esCEC.address, ZeroAddress, cec, stakedCecTracker.address, true],
|
||||
verify: true,
|
||||
});
|
||||
|
||||
|
||||
const rewardRouter = await hre.deployments.deploy("RewardRouter", {
|
||||
from,
|
||||
args: [cec,
|
||||
esCEC.address,
|
||||
stakedCecTracker.address,
|
||||
vester.address,],
|
||||
log: true,
|
||||
});
|
||||
console.log("==RewardRouter addr=", rewardRouter.address);
|
||||
updateArray({
|
||||
const rewardRouter = await deplayOne({
|
||||
hre,
|
||||
name: "rewardRouter",
|
||||
type: "logic",
|
||||
json: "assets/contracts/RewardRouter.json",
|
||||
address: rewardRouter.address,
|
||||
network: hre.network.name,
|
||||
contractName: "RewardRouter",
|
||||
args: [cec, esCEC.address, stakedCecTracker.address, vester.address],
|
||||
verify: true,
|
||||
});
|
||||
|
||||
const stakedCecTrackerContract = await hre.ethers.getContractAt("RewardTracker", stakedCecTracker.address);
|
||||
const stakedCecDistributorContract = await hre.ethers.getContractAt("RewardDistributor", stakedCecDistributor.address);
|
||||
const stakedCecDistributorContract = await hre.ethers.getContractAt(
|
||||
"RewardDistributor",
|
||||
stakedCecDistributor.address,
|
||||
);
|
||||
const esCECContract = await hre.ethers.getContractAt("EsToken", esCEC.address);
|
||||
|
||||
await stakedCecTrackerContract.initialize([cec, esCEC.address], stakedCecDistributor.address);
|
||||
|
||||
await stakedCecTrackerContract.setInPrivateTransferMode(true)
|
||||
|
||||
await stakedCecTrackerContract.setInPrivateStakingMode(true)
|
||||
|
||||
await stakedCecDistributorContract.updateLastDistributionTime();
|
||||
|
||||
await stakedCecDistributorContract.setTokensPerInterval(rewardPerSecond);
|
||||
|
||||
await stakedCecTrackerContract.setHandler(rewardRouter.address, true)
|
||||
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);
|
||||
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");
|
||||
// 为了能调用burn方法
|
||||
await esCECContract.setMinter(vester.address, true)
|
||||
tx = await esCECContract.setMinter(vester.address, true);
|
||||
await tx.wait();
|
||||
console.log("==esCECContract setMinter");
|
||||
// 设定esCEC不能公开转账
|
||||
await esCECContract.setInPrivateTransferMode(true)
|
||||
tx = await esCECContract.setInPrivateTransferMode(true);
|
||||
await tx.wait();
|
||||
console.log("==esCECContract setInPrivateTransferMode");
|
||||
// 添加转账白名单
|
||||
await esCECContract.setHandler(stakedCecTracker.address, true)
|
||||
tx = await esCECContract.setHandler(stakedCecTracker.address, true);
|
||||
await tx.wait();
|
||||
console.log("==esCECContract setHandler");
|
||||
};
|
||||
|
||||
deployNFTClaim.tags = ["Staking"];
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"address": "0x68Db28B700B2AC2A5034A5c8bD70c1Ffc3E587DD",
|
||||
"address": "0x2824Dc12495f86349430099939282b48aeDD6036",
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [
|
||||
@ -450,18 +450,18 @@
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"transactionHash": "0x0fd4619d427ed6f49903687918d6ad7812f56da708a76793387bbfa19f8358d4",
|
||||
"transactionHash": "0x794009fab84f1226c6050bc4f42883823309b0901aed47f16d4fc55fa2faafa6",
|
||||
"receipt": {
|
||||
"to": null,
|
||||
"from": "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"contractAddress": "0x68Db28B700B2AC2A5034A5c8bD70c1Ffc3E587DD",
|
||||
"contractAddress": "0x2824Dc12495f86349430099939282b48aeDD6036",
|
||||
"transactionIndex": 0,
|
||||
"gasUsed": "993001",
|
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"blockHash": "0x014958e22e0f6346035a83ae94f432df43c8d6ee7d018a3632ac2fb2bb5cea8d",
|
||||
"transactionHash": "0x0fd4619d427ed6f49903687918d6ad7812f56da708a76793387bbfa19f8358d4",
|
||||
"blockHash": "0xd8f84018634952a81dad4926dc625fccfc1fd45db1734d789c321633563fd87f",
|
||||
"transactionHash": "0x794009fab84f1226c6050bc4f42883823309b0901aed47f16d4fc55fa2faafa6",
|
||||
"logs": [],
|
||||
"blockNumber": 43369439,
|
||||
"blockNumber": 43372868,
|
||||
"cumulativeGasUsed": "993001",
|
||||
"status": 1,
|
||||
"byzantium": true
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"address": "0x96d38E8e6470871F756F1a2e9dF614BCebd57AE8",
|
||||
"address": "0xb60c7312F56da4303CE3bf27124f1850dBe1D0E5",
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [
|
||||
@ -228,25 +228,25 @@
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"transactionHash": "0xa82811369839dc96cebffba5d35701466fd1ef0b88fc0d2c6e77f80fbde2ff56",
|
||||
"transactionHash": "0x596a9d19bedfedcfd6dda6a255bc4135f2cbe06cdab77e4f4938d807f3ef44f2",
|
||||
"receipt": {
|
||||
"to": null,
|
||||
"from": "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"contractAddress": "0x96d38E8e6470871F756F1a2e9dF614BCebd57AE8",
|
||||
"transactionIndex": 1,
|
||||
"gasUsed": "701310",
|
||||
"contractAddress": "0xb60c7312F56da4303CE3bf27124f1850dBe1D0E5",
|
||||
"transactionIndex": 0,
|
||||
"gasUsed": "701322",
|
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"blockHash": "0x10e660e6adb766ae3f77b4432d1785945edf2a52e3b3a4017d79bf71424f9f68",
|
||||
"transactionHash": "0xa82811369839dc96cebffba5d35701466fd1ef0b88fc0d2c6e77f80fbde2ff56",
|
||||
"blockHash": "0x5a2b3f6b05be2d0fdaa97847f0b0eea06edcee180f00c410115c8d4d4c804006",
|
||||
"transactionHash": "0x596a9d19bedfedcfd6dda6a255bc4135f2cbe06cdab77e4f4938d807f3ef44f2",
|
||||
"logs": [],
|
||||
"blockNumber": 43369449,
|
||||
"cumulativeGasUsed": "1019909",
|
||||
"blockNumber": 43372886,
|
||||
"cumulativeGasUsed": "701322",
|
||||
"status": 1,
|
||||
"byzantium": true
|
||||
},
|
||||
"args": [
|
||||
"0x68Db28B700B2AC2A5034A5c8bD70c1Ffc3E587DD",
|
||||
"0xC28165d2db25De1B258Db835d3557Dee044b1C3a"
|
||||
"0x2824Dc12495f86349430099939282b48aeDD6036",
|
||||
"0xEA374dC9f94E7A3A2eE8C0C910954cE15E2C469E"
|
||||
],
|
||||
"numDeployments": 1,
|
||||
"solcInputHash": "35d1d20dc9b7194768908e34f12939fd",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"address": "0x932956063849FceE07d60D9daee94eC0651810bc",
|
||||
"address": "0xa57131c08c7E13abAB9Dd95721d456E1C2895b64",
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [
|
||||
@ -309,27 +309,27 @@
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"transactionHash": "0x7c7d7e75476ac867461da171c840455ff2344fc52bbe973330e8c7aeffa61fde",
|
||||
"transactionHash": "0xbfd9d91bbb9fcab5fa4a74295add8b2f56efd4d7d5ffddc1b4d81424eddc7fd5",
|
||||
"receipt": {
|
||||
"to": null,
|
||||
"from": "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"contractAddress": "0x932956063849FceE07d60D9daee94eC0651810bc",
|
||||
"transactionIndex": 0,
|
||||
"gasUsed": "917182",
|
||||
"contractAddress": "0xa57131c08c7E13abAB9Dd95721d456E1C2895b64",
|
||||
"transactionIndex": 1,
|
||||
"gasUsed": "917194",
|
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"blockHash": "0x7207c45d25062cc41ff0db8166b0993e289d8bb9537518c0ab4b741f42a7378c",
|
||||
"transactionHash": "0x7c7d7e75476ac867461da171c840455ff2344fc52bbe973330e8c7aeffa61fde",
|
||||
"blockHash": "0x3afb034c849912ab31f616b05e81a1efaa4aae6bea09c9861ab06bb4f74765b4",
|
||||
"transactionHash": "0xbfd9d91bbb9fcab5fa4a74295add8b2f56efd4d7d5ffddc1b4d81424eddc7fd5",
|
||||
"logs": [],
|
||||
"blockNumber": 43369456,
|
||||
"cumulativeGasUsed": "917182",
|
||||
"blockNumber": 43372903,
|
||||
"cumulativeGasUsed": "938194",
|
||||
"status": 1,
|
||||
"byzantium": true
|
||||
},
|
||||
"args": [
|
||||
"0xe34c5ea0c3083d11a735dc0609533b92130319f5",
|
||||
"0x68Db28B700B2AC2A5034A5c8bD70c1Ffc3E587DD",
|
||||
"0xC28165d2db25De1B258Db835d3557Dee044b1C3a",
|
||||
"0x10F883D6e26fBb56Ab20466502BFD9017a1ea144"
|
||||
"0x2824Dc12495f86349430099939282b48aeDD6036",
|
||||
"0xEA374dC9f94E7A3A2eE8C0C910954cE15E2C469E",
|
||||
"0xF7AaF4b166E11146F4D44c91B2a3818Ada13CdFB"
|
||||
],
|
||||
"numDeployments": 1,
|
||||
"solcInputHash": "35d1d20dc9b7194768908e34f12939fd",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"address": "0xC28165d2db25De1B258Db835d3557Dee044b1C3a",
|
||||
"address": "0xEA374dC9f94E7A3A2eE8C0C910954cE15E2C469E",
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [
|
||||
@ -911,18 +911,18 @@
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"transactionHash": "0xd29e8e0c69a5b2155fe93564b0a7b1ea9b05c3afcb89fc8cf60a8ceaa817997e",
|
||||
"transactionHash": "0x37734d5e7d8f812e142289230cc59cd0a21f2606c67438e5c68e0a6bb615487f",
|
||||
"receipt": {
|
||||
"to": null,
|
||||
"from": "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"contractAddress": "0xC28165d2db25De1B258Db835d3557Dee044b1C3a",
|
||||
"contractAddress": "0xEA374dC9f94E7A3A2eE8C0C910954cE15E2C469E",
|
||||
"transactionIndex": 0,
|
||||
"gasUsed": "2088810",
|
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"blockHash": "0xa0fa1b307dc52cfa8cffbfbf30ce2bd37a840750bfb85b115ef2320beea7a690",
|
||||
"transactionHash": "0xd29e8e0c69a5b2155fe93564b0a7b1ea9b05c3afcb89fc8cf60a8ceaa817997e",
|
||||
"blockHash": "0x678035ac2dbb8af0e9b57d676056e4f566d67c9d847e2b4653c528ba4d98d543",
|
||||
"transactionHash": "0x37734d5e7d8f812e142289230cc59cd0a21f2606c67438e5c68e0a6bb615487f",
|
||||
"logs": [],
|
||||
"blockNumber": 43369446,
|
||||
"blockNumber": 43372875,
|
||||
"cumulativeGasUsed": "2088810",
|
||||
"status": 1,
|
||||
"byzantium": true
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"address": "0x10F883D6e26fBb56Ab20466502BFD9017a1ea144",
|
||||
"address": "0xF7AaF4b166E11146F4D44c91B2a3818Ada13CdFB",
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [
|
||||
@ -937,31 +937,31 @@
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"transactionHash": "0x3d72e4119c6285d8b9c370d40df23728a91b88fe8b1ba500e00bb24ea87637b2",
|
||||
"transactionHash": "0x450133cf5830d1a0f3a051964f9f01615f9c602660f9c6beeeab108d5b4853f4",
|
||||
"receipt": {
|
||||
"to": null,
|
||||
"from": "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"contractAddress": "0x10F883D6e26fBb56Ab20466502BFD9017a1ea144",
|
||||
"contractAddress": "0xF7AaF4b166E11146F4D44c91B2a3818Ada13CdFB",
|
||||
"transactionIndex": 0,
|
||||
"gasUsed": "1763188",
|
||||
"gasUsed": "1803252",
|
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"blockHash": "0x9aef7f491be0a18042505cf640ef6c216ddff3964d5eaf263c05eb4c14994f3f",
|
||||
"transactionHash": "0x3d72e4119c6285d8b9c370d40df23728a91b88fe8b1ba500e00bb24ea87637b2",
|
||||
"blockHash": "0xbcd61437d0b157cd8ccfb5aa1456c22a1e6aadebb4a7d7d81fc412307252b3a4",
|
||||
"transactionHash": "0x450133cf5830d1a0f3a051964f9f01615f9c602660f9c6beeeab108d5b4853f4",
|
||||
"logs": [],
|
||||
"blockNumber": 43369453,
|
||||
"cumulativeGasUsed": "1763188",
|
||||
"blockNumber": 43372895,
|
||||
"cumulativeGasUsed": "1803252",
|
||||
"status": 1,
|
||||
"byzantium": true
|
||||
},
|
||||
"args": [
|
||||
"Vested CEC",
|
||||
"veCEC",
|
||||
31536000,
|
||||
"0x68Db28B700B2AC2A5034A5c8bD70c1Ffc3E587DD",
|
||||
"31536000",
|
||||
"0x2824Dc12495f86349430099939282b48aeDD6036",
|
||||
"0x0000000000000000000000000000000000000000",
|
||||
"0xe34c5ea0c3083d11a735dc0609533b92130319f5",
|
||||
"0x0000000000000000000000000000000000000000",
|
||||
false
|
||||
"0xEA374dC9f94E7A3A2eE8C0C910954cE15E2C469E",
|
||||
true
|
||||
],
|
||||
"numDeployments": 1,
|
||||
"solcInputHash": "35d1d20dc9b7194768908e34f12939fd",
|
||||
|
@ -59,6 +59,7 @@ const config: HardhatUserConfig = {
|
||||
bsc_test: {
|
||||
url: process.env.BSC_TEST_URL || "",
|
||||
accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
|
||||
gasPrice: 10000000000,
|
||||
},
|
||||
arb_sepolia: {
|
||||
url: process.env.ARBITRUM_TEST_URL || "",
|
||||
|
@ -39,30 +39,30 @@
|
||||
"name": "esCEC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/EsToken.json",
|
||||
"address": "0x68Db28B700B2AC2A5034A5c8bD70c1Ffc3E587DD"
|
||||
"address": "0x2824Dc12495f86349430099939282b48aeDD6036"
|
||||
},
|
||||
{
|
||||
"name": "stakedCecTracker",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/RewardTracker.json",
|
||||
"address": "0xC28165d2db25De1B258Db835d3557Dee044b1C3a"
|
||||
"address": "0xEA374dC9f94E7A3A2eE8C0C910954cE15E2C469E"
|
||||
},
|
||||
{
|
||||
"name": "stakedCecDistributor",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/RewardDistributor.json",
|
||||
"address": "0x96d38E8e6470871F756F1a2e9dF614BCebd57AE8"
|
||||
"address": "0xb60c7312F56da4303CE3bf27124f1850dBe1D0E5"
|
||||
},
|
||||
{
|
||||
"name": "vester",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/Vester.json",
|
||||
"address": "0x10F883D6e26fBb56Ab20466502BFD9017a1ea144"
|
||||
"address": "0xF7AaF4b166E11146F4D44c91B2a3818Ada13CdFB"
|
||||
},
|
||||
{
|
||||
"name": "rewardRouter",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/RewardRouter.json",
|
||||
"address": "0x932956063849FceE07d60D9daee94eC0651810bc"
|
||||
"address": "0xa57131c08c7E13abAB9Dd95721d456E1C2895b64"
|
||||
}
|
||||
]
|
@ -27,3 +27,42 @@ export const loadData = function ({ network }: { network: string }) {
|
||||
const filename = `./out/${network}_${env}.json`;
|
||||
return read(filename, "json");
|
||||
};
|
||||
|
||||
export const verifyContract = async function ({ hre, name, address, args }:
|
||||
{ hre: any, name: string, address: string, args: any[] }) {
|
||||
try {
|
||||
await hre.run("verify:verify", {
|
||||
address,
|
||||
constructorArguments: args,
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(`==verify ${name} failed`, e);
|
||||
}
|
||||
}
|
||||
|
||||
export const deplayOne = async function ({ hre, name, type, contractName, args, verify }:
|
||||
{ hre: any, name: string, type: string, contractName: string, args: any[], verify: boolean }) {
|
||||
const provider = hre.ethers.provider;
|
||||
const from = await (await provider.getSigner()).getAddress();
|
||||
const contract = await hre.deployments.deploy(contractName, {
|
||||
from,
|
||||
args,
|
||||
log: true,
|
||||
});
|
||||
console.log(`==${name} addr=`, contract.address);
|
||||
updateArray({
|
||||
name,
|
||||
type,
|
||||
json: `assets/contracts/${contractName}.json`,
|
||||
address: contract.address,
|
||||
network: hre.network.name,
|
||||
});
|
||||
if (!verify) {
|
||||
return contract;
|
||||
}
|
||||
// Wait for 5 blocks
|
||||
let currentBlock = await hre.ethers.provider.getBlockNumber();
|
||||
while (currentBlock + 5 > (await hre.ethers.provider.getBlockNumber())) {}
|
||||
await verifyContract({ hre, name, address: contract.address, args });
|
||||
return contract;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user