diff --git a/.gitmodules b/.gitmodules index dd4cc20..40feb0b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,4 @@ [submodule "lib/staker"] path = lib/staker url = https://github.com/withtally/staker + branch = upgradeable-staker diff --git a/foundry.lock b/foundry.lock index e296daa..5c0355c 100644 --- a/foundry.lock +++ b/foundry.lock @@ -6,6 +6,9 @@ "rev": "dbb6104ce834628e473d2173bbc9d47f81a9eec3" }, "lib/staker": { - "rev": "126860bd747c3a919e2ae301b64bf786469afd02" + "branch": { + "name": "upgradeable-staker", + "rev": "768dc70f7cad508454944324e8722689862f5123" + } } } \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index ddf2df2..aac0388 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -41,6 +41,7 @@ const config: HardhatUserConfig = { zksync: true, ethNetwork: "mainnet", url: process.env.ZKSYNC_MAINNET_RPC_URL || "https://mainnet.era.zksync.io", + verifyURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification", }, zkSyncTestnet: { zksync: true, diff --git a/lib/staker b/lib/staker index 126860b..768dc70 160000 --- a/lib/staker +++ b/lib/staker @@ -1 +1 @@ -Subproject commit 126860bd747c3a919e2ae301b64bf786469afd02 +Subproject commit 768dc70f7cad508454944324e8722689862f5123 diff --git a/script/DeployZkStaker.ts b/script/DeployZkStaker.ts index 73c1abd..0a8bb5b 100644 --- a/script/DeployZkStaker.ts +++ b/script/DeployZkStaker.ts @@ -18,17 +18,18 @@ const NUMBER_OF_SECONDS_IN_A_DAY = 86400; const ZK_REWARD_TOKEN_ADDRESS = "0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E"; const ZK_STAKE_TOKEN_ADDRESS = "0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E"; const MAX_CLAIM_FEE = 500n * (10n ** 18n); // 500 ZK -const STAKER_ADMIN = "0xf0043eF34F43806318B795b1B671f1EC42DBcd40"; // Tally safe +const STAKER_ADMIN = "0x4eA3EA51f8fDFfb34583C9B729b1c443607Be0bC"; // Tally safe const MAX_BUMP_TIP = 5n * (10n ** 18n); // 5 ZK const STAKER_NAME = "ZK Staker"; const INITIAL_TOTAL_STAKE_CAP = 400_000_000n * (10n ** 18n); // 400,000,000 ZK const FEE_AMOUNT = 0; -const FEE_COLLECTOR = "0xf0043eF34F43806318B795b1B671f1EC42DBcd40" +const FEE_COLLECTOR = "0x4eA3EA51f8fDFfb34583C9B729b1c443607Be0bC" const PROXY_OWNER = "0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d" // ZK Token Governor Timelock +const STAKER_REWARD_NOTIFIER="0x10a930CA056311e04B32a4452e1d9540fC9e716F" // BinaryEligibilityOracle Params -const EARNING_POWER_OWNER = "0xf0043eF34F43806318B795b1B671f1EC42DBcd40"; -const SCORE_ORACLE = "0x8120341a040f5776E4a10CC06fB2009fbB187055"; +const EARNING_POWER_OWNER = "0x4eA3EA51f8fDFfb34583C9B729b1c443607Be0bC"; +const SCORE_ORACLE = "0x084f68fbfd780aa0749beb0f0d123f32c786893a"; const STALE_ORACLE_WINDOW = 30 * NUMBER_OF_SECONDS_IN_A_DAY; const ORACLE_PAUSE_GUARDIAN = "0xf0043eF34F43806318B795b1B671f1EC42DBcd40"; const DELEGATEE_SCORE_ELIGIBILITY_THRESHOLD = 1; @@ -79,6 +80,9 @@ async function main() { feeCollector: FEE_COLLECTOR }); + // Set Reward notifier + await zkStaker.setRewardNotifier(STAKER_REWARD_NOTIFIER, true); + // Set the admin of the ZkStaker contract to the timelock await zkStaker.setAdmin(STAKER_ADMIN);