From 23a7f319b60a80bd417f0bf4f7fe274398c2b61e Mon Sep 17 00:00:00 2001 From: nxqbao Date: Fri, 30 Aug 2024 14:51:50 +0700 Subject: [PATCH] script: simulate reimburse bridge reward --- .../20240830-reimburse-bridge-reward.s.sol | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 script/20240807-ir-recover/20240830-reimburse-bridge-reward.s.sol diff --git a/script/20240807-ir-recover/20240830-reimburse-bridge-reward.s.sol b/script/20240807-ir-recover/20240830-reimburse-bridge-reward.s.sol new file mode 100644 index 00000000..11c6964f --- /dev/null +++ b/script/20240807-ir-recover/20240830-reimburse-bridge-reward.s.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import { console } from "forge-std/console.sol"; +import { DefaultNetwork } from "@fdk/utils/DefaultNetwork.sol"; +import { IBridgeReward } from "@ronin/contracts/interfaces/bridge/IBridgeReward.sol"; + +import { Contract } from "../utils/Contract.sol"; +import { Migration } from "../Migration.s.sol"; + +interface IRoninValidatorSet { + function currentPeriod() external view returns (uint); +} + +contract Migration__20240830_Reimburse_Bridge_Reward is Migration { + IBridgeReward _bridgeReward; + IRoninValidatorSet _roninValidatorSet; + address _smOperator; + + function run() public virtual onlyOn(DefaultNetwork.RoninMainnet.key()) { + _bridgeReward = IBridgeReward(loadContract(Contract.BridgeReward.key())); + _roninValidatorSet = IRoninValidatorSet(0x617c5d73662282EA7FfD231E020eCa6D2B0D552f); + _smOperator = 0x4b3844A29CFA5824F53e2137Edb6dc2b54501BeA; + + uint lastRewardedPeriod = _bridgeReward.getLatestRewardedPeriod(); + uint currentPeriod = _roninValidatorSet.currentPeriod(); + + console.log("Last rewarded period:", lastRewardedPeriod); + console.log("Current period:", currentPeriod); + + vm.startBroadcast(_smOperator); + _bridgeReward.syncRewardManual(currentPeriod - lastRewardedPeriod - 1); + vm.stopBroadcast(); + } +}