Skip to content

Commit

Permalink
Merge pull request #23 from ronin-chain/script/post-check
Browse files Browse the repository at this point in the history
script: add post check
  • Loading branch information
nxqbao authored Apr 10, 2024
2 parents a06e829 + 09f542c commit db4ee67
Show file tree
Hide file tree
Showing 89 changed files with 1,972 additions and 989 deletions.
2 changes: 2 additions & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ runs = 1_000
runs = 1_000

[rpc_endpoints]
localhost = "http://localhost:8545"
ethereum = "https://eth.llamarpc.com"
sepolia = "https://sepolia.infura.io/v3/${INFURA_API_KEY}"
goerli = "https://ethereum-goerli.publicnode.com"
ronin-mainnet = "https://api-partner.roninchain.com/rpc"
ronin-testnet = "https://saigon-archive.roninchain.com/rpc"
2 changes: 1 addition & 1 deletion remappings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ hardhat/=node_modules/hardhat/
@prb/test/=lib/prb-test/src/
@prb/math/=lib/prb-math/
solady/=lib/solady/src/
foundry-deployment-kit/=lib/foundry-deployment-kit/script/
@fdk/=lib/foundry-deployment-kit/script/
42 changes: 24 additions & 18 deletions script/20231218-maptoken/20231218-maptoken-mainchain.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,23 @@ pragma solidity ^0.8.19;

import { console2 } from "forge-std/console2.sol";
import { StdStyle } from "forge-std/StdStyle.sol";
import { BaseMigration } from "foundry-deployment-kit/BaseMigration.s.sol";
import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol";
import { IMainchainGatewayV3 } from "@ronin/contracts/interfaces/IMainchainGatewayV3.sol";
import { GlobalProposal } from "@ronin/contracts/libraries/GlobalProposal.sol";
import { Token } from "@ronin/contracts/libraries/Token.sol";
import { Contract } from "../utils/Contract.sol";
import { BridgeMigration } from "../BridgeMigration.sol";
import { Network } from "../utils/Network.sol";
import { Migration } from "../Migration.s.sol";
import { TNetwork, Network } from "../utils/Network.sol";
import { Contract } from "../utils/Contract.sol";
import { IGeneralConfigExtended } from "../IGeneralConfigExtended.sol";
import { LibArray } from "script/shared/libraries/LibArray.sol";
import { LibProposal } from "script/shared/libraries/LibProposal.sol";
import { LibCompanionNetwork } from "script/shared/libraries/LibCompanionNetwork.sol";

contract Migration__20231215_MapTokenMainchain is Migration {
using LibArray for *;
using LibProposal for *;
using LibCompanionNetwork for *;

contract Migration__20231215_MapTokenMainchain is BridgeMigration {
RoninBridgeManager internal _roninBridgeManager;
address constant _aggRoninToken = address(0x294311a8C37F0744F99EB152c419D4D3D6FEC1C7);
address constant _aggMainchainToken = address(0xFB0489e9753B045DdB35e39c6B0Cc02EC6b99AC5);
Expand All @@ -30,8 +35,8 @@ contract Migration__20231215_MapTokenMainchain is BridgeMigration {
function setUp() public override {
super.setUp();

_roninBridgeManager = RoninBridgeManager(_config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_mainchainGatewayV3 = _config.getAddress(_config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).key(), Contract.MainchainGatewayV3.key());
_roninBridgeManager = RoninBridgeManager(loadContract(Contract.RoninBridgeManager.key()));
_mainchainGatewayV3 = config.getAddress(network().companionNetwork(), Contract.MainchainGatewayV3.key());
}

function run() public {
Expand Down Expand Up @@ -66,20 +71,21 @@ contract Migration__20231215_MapTokenMainchain is BridgeMigration {
bytes memory proxyData = abi.encodeWithSignature("functionDelegateCall(bytes)", innerData);

uint256 expiredTime = block.timestamp + 10 days;
address[] memory targets = new address[](1);
targets[0] = _mainchainGatewayV3;
address[] memory targets = _mainchainGatewayV3.toSingletonArray();
uint256[] memory values = new uint256[](1);
values[0] = 0;
bytes[] memory calldatas = new bytes[](1);
calldatas[0] = proxyData;
uint256[] memory gasAmounts = new uint256[](1);
gasAmounts[0] = 1_000_000;

_verifyMainchainProposalGasAmount(targets, values, calldatas, gasAmounts);
bytes[] memory calldatas = proxyData.toSingletonArray();
uint256[] memory gasAmounts = uint256(1_000_000).toSingletonArray();

uint256 chainId = _config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).chainId();
TNetwork currentNetwork = network();
TNetwork companionNetwork = config.getCompanionNetwork(currentNetwork);
address companionManager = config.getAddress(companionNetwork, Contract.MainchainBridgeManager.key());
config.createFork(companionNetwork);
config.switchTo(companionNetwork);
uint256 companionChainId = block.chainid;
LibProposal.verifyProposalGasAmount(companionManager, targets, values, calldatas, gasAmounts);
config.switchTo(currentNetwork);

vm.broadcast(sender());
_roninBridgeManager.propose(chainId, expiredTime, address(0), targets, values, calldatas, gasAmounts);
_roninBridgeManager.propose(companionChainId, expiredTime, targets, values, calldatas, gasAmounts);
}
}
19 changes: 11 additions & 8 deletions script/20231218-maptoken/20231218-maptoken-roninchain.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,29 @@ pragma solidity ^0.8.19;

import { console2 } from "forge-std/console2.sol";
import { StdStyle } from "forge-std/StdStyle.sol";
import { BaseMigration } from "foundry-deployment-kit/BaseMigration.s.sol";
import { BaseMigration } from "@fdk/BaseMigration.s.sol";
import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol";
import { IRoninGatewayV3 } from "@ronin/contracts/interfaces/IRoninGatewayV3.sol";
import { Token } from "@ronin/contracts/libraries/Token.sol";
import { Contract } from "../utils/Contract.sol";
import { BridgeMigration } from "../BridgeMigration.sol";
import { TNetwork, Network } from "../utils/Network.sol";
import { LibProposal } from "script/shared/libraries/LibProposal.sol";
import { Migration } from "../Migration.s.sol";
import { Network } from "../utils/Network.sol";
import { Contract } from "../utils/Contract.sol";
import { IGeneralConfigExtended } from "../IGeneralConfigExtended.sol";

contract Migration__20231215_MapTokenRoninchain is BridgeMigration {
contract Migration__20231215_MapTokenRoninchain is Migration {
using LibProposal for *;

RoninBridgeManager internal _roninBridgeManager;
address constant _aggRoninToken = address(0x294311a8C37F0744F99EB152c419D4D3D6FEC1C7);
address constant _aggMainchainToken = address(0xFB0489e9753B045DdB35e39c6B0Cc02EC6b99AC5);
address internal _roninGatewayV3;

function setUp() public override {
super.setUp();
_roninBridgeManager = RoninBridgeManager(_config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_roninGatewayV3 = _config.getAddressFromCurrentNetwork(Contract.RoninGatewayV3.key());
_roninBridgeManager = RoninBridgeManager(loadContract(Contract.RoninBridgeManager.key()));
_roninGatewayV3 = loadContract(Contract.RoninGatewayV3.key());
}

function run() public {
Expand All @@ -31,7 +34,7 @@ contract Migration__20231215_MapTokenRoninchain is BridgeMigration {
address[] memory mainchainTokens = new address[](1);
mainchainTokens[0] = _aggMainchainToken;
uint256[] memory chainIds = new uint256[](1);
chainIds[0] = _config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).chainId();
chainIds[0] = config.getNetworkData(config.getCompanionNetwork(network())).chainId;
Token.Standard[] memory standards = new Token.Standard[](1);
standards[0] = Token.Standard.ERC20;

Expand All @@ -54,7 +57,7 @@ contract Migration__20231215_MapTokenRoninchain is BridgeMigration {
uint256[] memory gasAmounts = new uint256[](1);
gasAmounts[0] = 1_000_000;

_verifyRoninProposalGasAmount(targets, values, calldatas, gasAmounts);
LibProposal.verifyProposalGasAmount(address(_roninBridgeManager), targets, values, calldatas, gasAmounts);

vm.broadcast(sender());
_roninBridgeManager.propose(block.chainid, expiredTime, address(0), targets, values, calldatas, gasAmounts);
Expand Down
29 changes: 16 additions & 13 deletions script/20240115-mappixeltoken/20240115-maptoken-mainchain.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,18 @@ pragma solidity ^0.8.19;

import { console2 } from "forge-std/console2.sol";
import { StdStyle } from "forge-std/StdStyle.sol";
import { BaseMigration } from "foundry-deployment-kit/BaseMigration.s.sol";
import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol";
import { IMainchainGatewayV3 } from "@ronin/contracts/interfaces/IMainchainGatewayV3.sol";
import { IBridgeManager } from "@ronin/contracts/interfaces/bridge/IBridgeManager.sol";
import { GlobalProposal } from "@ronin/contracts/libraries/GlobalProposal.sol";
import { Token } from "@ronin/contracts/libraries/Token.sol";
import { Contract } from "../utils/Contract.sol";
import { BridgeMigration } from "../BridgeMigration.sol";
import { Network } from "../utils/Network.sol";
import { Migration } from "../Migration.s.sol";
import { LibProposal } from "script/shared/libraries/LibProposal.sol";
import { TNetwork, Network } from "../utils/Network.sol";
import { Contract } from "../utils/Contract.sol";
import { IGeneralConfigExtended } from "../IGeneralConfigExtended.sol";

contract Migration__MapTokenMainchain is BridgeMigration {
contract Migration__MapTokenMainchain is Migration {
RoninBridgeManager internal _roninBridgeManager;

address constant _pixelRoninToken = address(0x8b50c162494567B3c8B7F00F6031341861c8dEeD);
Expand All @@ -42,10 +41,9 @@ contract Migration__MapTokenMainchain is BridgeMigration {
function setUp() public override {
super.setUp();

_roninBridgeManager = RoninBridgeManager(_config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_mainchainGatewayV3 = _config.getAddress(_config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).key(), Contract.MainchainGatewayV3.key());
_mainchainBridgeManager =
_config.getAddress(_config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).key(), Contract.MainchainBridgeManager.key());
_roninBridgeManager = RoninBridgeManager(config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_mainchainGatewayV3 = config.getAddress(config.getCompanionNetwork(network()), Contract.MainchainGatewayV3.key());
_mainchainBridgeManager = config.getAddress(config.getCompanionNetwork(network()), Contract.MainchainBridgeManager.key());
}

function _mapFarmlandToken() internal pure returns (bytes memory) {
Expand Down Expand Up @@ -147,11 +145,16 @@ contract Migration__MapTokenMainchain is BridgeMigration {
calldatas[3] = _addAxieChatGovernorAddress();
gasAmounts[3] = 1_000_000;

_verifyMainchainProposalGasAmount(targets, values, calldatas, gasAmounts);

uint256 chainId = _config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).chainId();
TNetwork currentNetwork = network();
TNetwork companionNetwork = config.getCompanionNetwork(currentNetwork);
address companionManager = config.getAddress(companionNetwork, Contract.MainchainBridgeManager.key());
config.createFork(companionNetwork);
config.switchTo(companionNetwork);
uint256 companionChainId = block.chainid;
LibProposal.verifyProposalGasAmount(companionManager, targets, values, calldatas, gasAmounts);
config.switchTo(currentNetwork);

vm.broadcast(sender());
_roninBridgeManager.propose(chainId, expiredTime, address(0), targets, values, calldatas, gasAmounts);
_roninBridgeManager.propose(companionChainId, expiredTime, targets, values, calldatas, gasAmounts);
}
}
35 changes: 23 additions & 12 deletions script/20240115-mappixeltoken/20240115-maptoken-roninchain.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,21 @@ pragma solidity ^0.8.19;

import { console2 } from "forge-std/console2.sol";
import { StdStyle } from "forge-std/StdStyle.sol";
import { BaseMigration } from "foundry-deployment-kit/BaseMigration.s.sol";
import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol";
import { IRoninGatewayV3 } from "@ronin/contracts/interfaces/IRoninGatewayV3.sol";
import { IBridgeManager } from "@ronin/contracts/interfaces/bridge/IBridgeManager.sol";
import { Token } from "@ronin/contracts/libraries/Token.sol";
import { Contract } from "../utils/Contract.sol";
import { BridgeMigration } from "../BridgeMigration.sol";
import { Network } from "../utils/Network.sol";
import { Migration } from "../Migration.s.sol";
import { TNetwork, Network } from "../utils/Network.sol";
import { LibProposal } from "script/shared/libraries/LibProposal.sol";
import { LibCompanionNetwork } from "script/shared/libraries/LibCompanionNetwork.sol";
import { Contract } from "../utils/Contract.sol";
import { IGeneralConfigExtended } from "../IGeneralConfigExtended.sol";

contract Migration__MapTokenRoninchain is BridgeMigration {
contract Migration__MapTokenRoninchain is Migration {
using LibProposal for *;
using LibCompanionNetwork for *;

RoninBridgeManager internal _roninBridgeManager;

address constant _pixelRoninToken = address(0x8b50c162494567B3c8B7F00F6031341861c8dEeD);
Expand All @@ -32,24 +35,25 @@ contract Migration__MapTokenRoninchain is BridgeMigration {

function setUp() public override {
super.setUp();
_roninBridgeManager = RoninBridgeManager(_config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_roninGatewayV3 = _config.getAddressFromCurrentNetwork(Contract.RoninGatewayV3.key());
_roninBridgeManager = RoninBridgeManager(config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_roninGatewayV3 = config.getAddressFromCurrentNetwork(Contract.RoninGatewayV3.key());
}

function _mapTokens() internal view returns (bytes memory) {
function _mapTokens() internal returns (bytes memory) {
address[] memory mainchainTokens = new address[](2);
address[] memory roninTokens = new address[](2);
uint256[] memory chainIds = new uint256[](2);
Token.Standard[] memory standards = new Token.Standard[](2);

uint256 companionChainId = network().companionChainId();
mainchainTokens[0] = _farmlandMainchainToken;
roninTokens[0] = _farmlandRoninToken;
chainIds[0] = _config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).chainId();
chainIds[0] = companionChainId;
standards[0] = Token.Standard.ERC721;

mainchainTokens[1] = _pixelMainchainToken;
roninTokens[1] = _pixelRoninToken;
chainIds[1] = _config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).chainId();
chainIds[1] = companionChainId;
standards[1] = Token.Standard.ERC20;

// function mapTokens(
Expand Down Expand Up @@ -114,9 +118,16 @@ contract Migration__MapTokenRoninchain is BridgeMigration {
calldatas[2] = _addAxieChatGovernorAddress();
gasAmounts[2] = 1_000_000;

_verifyRoninProposalGasAmount(targets, values, calldatas, gasAmounts);
TNetwork currentNetwork = network();
TNetwork companionNetwork = config.getCompanionNetwork(currentNetwork);
address companionManager = config.getAddress(companionNetwork, Contract.MainchainBridgeManager.key());
config.createFork(companionNetwork);
config.switchTo(companionNetwork);
uint256 companionChainId = block.chainid;
LibProposal.verifyProposalGasAmount(companionManager, targets, values, calldatas, gasAmounts);
config.switchTo(currentNetwork);

vm.broadcast(sender());
_roninBridgeManager.propose(block.chainid, expiredTime, address(0), targets, values, calldatas, gasAmounts);
_roninBridgeManager.propose(block.chainid, expiredTime, targets, values, calldatas, gasAmounts);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,33 @@ pragma solidity ^0.8.19;

import { console2 } from "forge-std/console2.sol";
import { StdStyle } from "forge-std/StdStyle.sol";
import { BaseMigration } from "foundry-deployment-kit/BaseMigration.s.sol";
import { BaseMigration } from "@fdk/BaseMigration.s.sol";
import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol";
import { IMainchainGatewayV3 } from "@ronin/contracts/interfaces/IMainchainGatewayV3.sol";
import { GlobalProposal } from "@ronin/contracts/libraries/GlobalProposal.sol";
import { Token } from "@ronin/contracts/libraries/Token.sol";
import { Contract } from "../utils/Contract.sol";
import { BridgeMigration } from "../BridgeMigration.sol";
import { Network } from "../utils/Network.sol";
import { Migration } from "../Migration.s.sol";
import { TNetwork, Network } from "../utils/Network.sol";
import { LibProposal } from "script/shared/libraries/LibProposal.sol";
import { Contract } from "../utils/Contract.sol";
import { IGeneralConfigExtended } from "../IGeneralConfigExtended.sol";

import "./maptoken-pixel-configs.s.sol";
import "./update-axiechat-config.s.sol";

contract Migration__20240131_MapTokenPixelMainchain is BridgeMigration, Migration__MapToken_Pixel_Config, Migration__Update_AxieChat_Config {
contract Migration__20240131_MapTokenPixelMainchain is Migration, Migration__MapToken_Pixel_Config, Migration__Update_AxieChat_Config {
using LibProposal for *;

RoninBridgeManager internal _roninBridgeManager;
address internal _mainchainGatewayV3;
address internal _mainchainBridgeManager;

function setUp() public override {
super.setUp();

_roninBridgeManager = RoninBridgeManager(_config.getAddressFromCurrentNetwork(Contract.RoninBridgeManager.key()));
_mainchainGatewayV3 = _config.getAddress(_config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).key(), Contract.MainchainGatewayV3.key());
_mainchainBridgeManager =
_config.getAddress(_config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).key(), Contract.MainchainBridgeManager.key());
_roninBridgeManager = RoninBridgeManager(loadContract(Contract.RoninBridgeManager.key()));
_mainchainGatewayV3 = config.getAddress(config.getCompanionNetwork(network()), Contract.MainchainGatewayV3.key());
_mainchainBridgeManager = config.getAddress(config.getCompanionNetwork(network()), Contract.MainchainBridgeManager.key());
}

function run() public {
Expand Down Expand Up @@ -111,11 +112,16 @@ contract Migration__20240131_MapTokenPixelMainchain is BridgeMigration, Migratio

// ================ VERIFY AND EXECUTE PROPOSAL ===============

_verifyMainchainProposalGasAmount(targets, values, calldatas, gasAmounts);

uint256 chainId = _config.getCompanionNetwork(_config.getNetworkByChainId(block.chainid)).chainId();
TNetwork currentNetwork = network();
TNetwork companionNetwork = config.getCompanionNetwork(currentNetwork);
address companionManager = config.getAddress(companionNetwork, Contract.MainchainBridgeManager.key());
config.createFork(companionNetwork);
config.switchTo(companionNetwork);
uint256 companionChainId = block.chainid;
LibProposal.verifyProposalGasAmount(companionManager, targets, values, calldatas, gasAmounts);
config.switchTo(currentNetwork);

vm.broadcast(_governor);
_roninBridgeManager.propose(chainId, expiredTime, address(0), targets, values, calldatas, gasAmounts);
_roninBridgeManager.propose(companionChainId, expiredTime, targets, values, calldatas, gasAmounts);
}
}
Loading

0 comments on commit db4ee67

Please sign in to comment.