From 470c7736d52ecb9596e8c3af9dcad0a6e3f494b3 Mon Sep 17 00:00:00 2001 From: 0xTimepunk Date: Thu, 21 Nov 2024 11:47:28 +0000 Subject: [PATCH] fix: test issues --- Makefile | 2 +- .../Abstract.Deploy.Single.s.sol | 292 +++++----- .../Abstract.Configure.FixPostPreBera.s.sol | 69 --- .../misc/Abstract.Configure.NewDVN.s.sol | 13 - .../Abstract.Configure.PreBeraLaunch.s.sol | 55 +- script/forge-scripts/misc/DecodeULNConfig.sol | 40 +- script/output/1/Ethereum-latest.json | 8 +- script/output/10/Optimism-latest.json | 60 +- script/output/42161/Arbitrum-latest.json | 60 +- script/output/59144/Linea-latest.json | 52 +- script/utils/run_script_tenderly.sh | 34 +- test/mainnet/SmokeTest.t.sol | 42 ++ test/utils/BaseSetup.sol | 2 +- test/utils/MainnetBaseSetup.sol | 40 +- test/utils/merkle/target/jsTreeDump0.json | 530 +++++++++++++++++- 15 files changed, 862 insertions(+), 437 deletions(-) delete mode 100644 script/forge-scripts/misc/Abstract.Configure.FixPostPreBera.s.sol diff --git a/Makefile b/Makefile index 6f34a00ee..0e071eefc 100644 --- a/Makefile +++ b/Makefile @@ -121,7 +121,7 @@ build-sizes: ## Builds the project and shows sizes .PHONY: test-vvv test-vvv: ## Runs tests with verbose output - forge test --match-test test_lzConfig --evm-version cancun -vvv + forge test --match-test test_printConfirmations --evm-version cancun -vvv .PHONY: ftest ftest: ## Runs tests with cancun evm version diff --git a/script/forge-scripts/Abstract.Deploy.Single.s.sol b/script/forge-scripts/Abstract.Deploy.Single.s.sol index 7fc982a2a..14cc8bba2 100644 --- a/script/forge-scripts/Abstract.Deploy.Single.s.sol +++ b/script/forge-scripts/Abstract.Deploy.Single.s.sol @@ -57,6 +57,9 @@ import { BatchScript } from "./safe/BatchScript.sol"; import { SuperformRouterPlus } from "src/router-plus/SuperformRouterPlus.sol"; import { SuperformRouterPlusAsync } from "src/router-plus/SuperformRouterPlusAsync.sol"; +import { ILayerZeroEndpointV2, IMessageLibManager } from "src/vendor/layerzero/v2/ILayerZeroEndpointV2.sol"; +import { SetConfigParam } from "src/vendor/layerzero/v2/IMessageLibManager.sol"; + struct SetupVars { uint64 chainId; uint64 dstChainId; @@ -227,7 +230,6 @@ abstract contract AbstractDeploySingle is BatchScript { address public lzV2Endpoint = 0x1a44076050125825900e736c501f859c50fE728c; address public lzV2Endpoint_TESTNET = 0x6EDCE65403992e310A62460808c4b910D972f10f; address public constant CHAINLINK_lzOracle = 0x150A58e9E6BF69ccEb1DBA5ae97C166DC8792539; - mapping(uint64 => mapping(uint64 => uint64)) public CONFIRMATIONS; address[] public lzEndpoints = [ 0x66A71Dcef29A0fFBDBE3c6a460a3B5BC225Cd675, @@ -243,6 +245,34 @@ abstract contract AbstractDeploySingle is BatchScript { address(0) ]; + address[] public SuperformDVNs = [ + 0x7518f30bd5867b5fA86702556245Dead173afE46, + 0xF4c489AfD83625F510947e63ff8F90dfEE0aE46C, + 0x8fb0B7D74B557e4b45EF89648BAc197EAb2E4325, + 0x1E4CE74ccf5498B19900649D9196e64BAb592451, + 0x5496d03d9065B08e5677E1c5D1107110Bb05d445, + 0xb0B2EF168F52F6d1e42f461e11117295eF992daf, + 0xEb62f578497Bdc351dD650853a751135212fAF49, + 0x2EdfE0220A74d9609c79711a65E3A2F2A85Dc83b, + 0x7A205ED4e3d7f9d0777594501705D8CD405c3B05, + 0x0E95cf21aD9376A26997c97f326C5A0a267bB8FF, + address(0) + ]; + + address[] public LzDVNs = [ + 0x589dEDbD617e0CBcB916A9223F4d1300c294236b, + 0xfD6865c841c2d64565562fCc7e05e619A30615f0, + 0x962F502A63F5FBeB44DC9ab932122648E8352959, + 0x23DE2FE932d9043291f870324B74F820e11dc81A, + 0x2f55C492897526677C5B68fb199ea31E2c126416, + 0x6A02D83e8d433304bba74EF1c427913958187142, + 0x9e059a54699a285714207b43B055483E78FAac25, + 0xE60A3959Ca23a92BF5aAf992EF837cA7F828628a, + 0x129Ee430Cb2Ff2708CCADDBDb408a88Fe4FFd480, + 0xc097ab8CD7b053326DFe9fB3E3a31a0CCe3B526f, + address(0) + ]; + address[] public hyperlaneMailboxes = [ 0xc005dc82818d67AF737725bD4bf75435d065D239, 0x2971b9Aec44bE4eb673DF1B88cDB57b96eefe8a4, @@ -613,14 +643,24 @@ abstract contract AbstractDeploySingle is BatchScript { /// @dev 5.1- deploy Layerzero Implementation vars.lzImplementation = address(new LayerzeroV2Implementation{ salt: salt }(vars.superRegistryC)); contracts[vars.chainId][bytes32(bytes("LayerzeroImplementation"))] = vars.lzImplementation; - LayerzeroV2Implementation(vars.lzImplementation).setDelegate( - env == 0 || env == 2 ? PROTOCOL_ADMINS[trueIndex] : PROTOCOL_ADMINS_STAGING[trueIndex] - ); + if (vars.chainId != BARTIO) { LayerzeroV2Implementation(payable(vars.lzImplementation)).setLzEndpoint(lzV2Endpoint); } else { LayerzeroV2Implementation(payable(vars.lzImplementation)).setLzEndpoint(lzV2Endpoint_TESTNET); } + address protocolAdmin; + + if (env == 0 || env == 2) { + protocolAdmin = PROTOCOL_ADMINS[trueIndex]; + } else if (env == 1) { + protocolAdmin = PROTOCOL_ADMINS_STAGING[trueIndex]; + } else { + revert("INVALID_ENVIRONMENT"); + } + + LayerzeroV2Implementation(vars.lzImplementation).setDelegate(protocolAdmin); + if (vars.chainId != BARTIO) { /// @dev 5.1.1- deploy Layerzero V1 Implementation vars.lzV1Implementation = address(new LayerzeroImplementation{ salt: salt }(vars.superRegistryC)); @@ -628,6 +668,7 @@ abstract contract AbstractDeploySingle is BatchScript { LayerzeroImplementation(payable(vars.lzV1Implementation)).setLzEndpoint(lzEndpoints[trueIndex]); } + /// @dev 5.2- deploy Hyperlane Implementation if (vars.chainId != FANTOM) { vars.hyperlaneImplementation = address(new HyperlaneImplementation{ salt: salt }(vars.superRegistryC)); @@ -1122,6 +1163,7 @@ abstract contract AbstractDeploySingle is BatchScript { 0, 0, 0, + 0, "", vars.lzImplementation, vars.lzV1Implementation, @@ -1169,8 +1211,15 @@ abstract contract AbstractDeploySingle is BatchScript { SuperRBAC srbac = SuperRBAC(payable(_readContractsV1(env, chainNames[trueIndex], vars.chainId, "SuperRBAC"))); bytes32 protocolAdminRole = srbac.PROTOCOL_ADMIN_ROLE(); bytes32 emergencyAdminRole = srbac.EMERGENCY_ADMIN_ROLE(); + address protocolAdmin; - address protocolAdmin = env == 0 || env == 2 ? PROTOCOL_ADMINS[trueIndex] : PROTOCOL_ADMINS_STAGING[trueIndex]; + if (env == 0 || env == 2) { + protocolAdmin = PROTOCOL_ADMINS[trueIndex]; + } else if (env == 1) { + protocolAdmin = PROTOCOL_ADMINS_STAGING[trueIndex]; + } else { + revert("INVALID_ENVIRONMENT"); + } if (grantProtocolAdmin) { if (protocolAdmin != address(0)) { @@ -1338,6 +1387,7 @@ abstract contract AbstractDeploySingle is BatchScript { 0, 0, 0, + 0, "", vars.lzImplementation, vars.lzV1Implementation, @@ -1404,6 +1454,7 @@ abstract contract AbstractDeploySingle is BatchScript { struct CurrentChainBasedOnDstvars { uint64 chainId; uint64 dstChainId; + uint256 srcTrueIndex; uint256 dstTrueIndex; uint32 dstLzChainId; uint16 dstLzV1ChainId; @@ -1427,6 +1478,29 @@ abstract contract AbstractDeploySingle is BatchScript { SuperRegistry superRegistryC; } + struct UlnConfig { + uint64 confirmations; + // we store the length of required DVNs and optional DVNs instead of using DVN.length directly to save gas + uint8 requiredDVNCount; // 0 indicate DEFAULT, NIL_DVN_COUNT indicate NONE (to override the value of default) + uint8 optionalDVNCount; // 0 indicate DEFAULT, NIL_DVN_COUNT indicate NONE (to override the value of default) + uint8 optionalDVNThreshold; // (0, optionalDVNCount] + address[] requiredDVNs; // no duplicates. sorted an an ascending order. allowed overlap with optionalDVNs + address[] optionalDVNs; // no duplicates. sorted an an ascending order. allowed overlap with requiredDVNs + } + + struct DVNVars { + uint64 requiredDVNCount; + uint64 optionalDVNCount; + address[] requiredDVNs; + address[] optionalDVNs; + uint64 confirmations; + bytes config; + SetConfigParam[] setConfigParams; + UlnConfig ulnConfig; + address sendLib; + address receiveLib; + } + function _configureCurrentChainBasedOnTargetDestinations( uint256 env, CurrentChainBasedOnDstvars memory vars, @@ -1435,6 +1509,14 @@ abstract contract AbstractDeploySingle is BatchScript { internal returns (IPaymentHelper.PaymentHelperConfig memory addRemoteConfig) { + for (uint256 k = 0; k < chainIds.length; k++) { + if (vars.chainId == chainIds[k]) { + vars.srcTrueIndex = k; + + break; + } + } + for (uint256 k = 0; k < chainIds.length; k++) { if (vars.dstChainId == chainIds[k]) { vars.dstTrueIndex = k; @@ -1549,12 +1631,57 @@ abstract contract AbstractDeploySingle is BatchScript { chainIdsSetAddresses[17] = vars.dstChainId; chainIdsSetAddresses[18] = vars.dstChainId; + /// @dev DVN configuration prep + DVNVars memory dvnVars; + + dvnVars.ulnConfig.requiredDVNCount = 2; + dvnVars.ulnConfig.optionalDVNCount = 0; + + dvnVars.ulnConfig.requiredDVNs = new address[](2); + dvnVars.ulnConfig.requiredDVNs[0] = SuperformDVNs[vars.srcTrueIndex]; + dvnVars.ulnConfig.requiredDVNs[1] = LzDVNs[vars.srcTrueIndex]; + + // Sort DVNs + if (dvnVars.ulnConfig.requiredDVNs[0] > dvnVars.ulnConfig.requiredDVNs[1]) { + (dvnVars.ulnConfig.requiredDVNs[0], dvnVars.ulnConfig.requiredDVNs[1]) = + (dvnVars.ulnConfig.requiredDVNs[1], dvnVars.ulnConfig.requiredDVNs[0]); + } + /// @dev default to 0 + dvnVars.ulnConfig.confirmations = 0; + console.log("chainId", vars.chainId); + console.log("dstChainId", vars.dstChainId); + console.log("srcTrueIndex", vars.srcTrueIndex); + console.log("dstTrueIndex", vars.dstTrueIndex); + console.log("confirmations", dvnVars.ulnConfig.confirmations); + console.log("requiredDVNs", dvnVars.ulnConfig.requiredDVNs[0]); + console.log("requiredDVNs", dvnVars.ulnConfig.requiredDVNs[1]); + console.log("lzChainIds", lz_chainIds[vars.dstTrueIndex]); + + dvnVars.setConfigParams = new SetConfigParam[](1); + dvnVars.setConfigParams[0] = + SetConfigParam(uint32(lz_chainIds[vars.dstTrueIndex]), uint32(2), abi.encode(dvnVars.ulnConfig)); + + dvnVars.sendLib = ILayerZeroEndpointV2(lzV2Endpoint).defaultSendLibrary(lz_chainIds[vars.dstTrueIndex]); + + dvnVars.receiveLib = ILayerZeroEndpointV2(lzV2Endpoint).defaultReceiveLibrary(lz_chainIds[vars.dstTrueIndex]); if (!safeExecution) { LayerzeroV2Implementation(payable(vars.lzImplementation)).setPeer( vars.dstLzChainId, bytes32(uint256(uint160(vars.dstLzImplementation))) ); LayerzeroV2Implementation(payable(vars.lzImplementation)).setChainId(vars.dstChainId, vars.dstLzChainId); + + /// @dev DVN configuration + console.log("msg.sender", msg.sender); + address currentDelegate = EndpointV2(lzV2Endpoint).delegates(vars.lzImplementation); + assert(currentDelegate = msg.sender); + + IMessageLibManager(lzV2Endpoint).setConfig(vars.lzImplementation, dvnVars.sendLib, dvnVars.setConfigParams); + + IMessageLibManager(lzV2Endpoint).setConfig( + vars.lzImplementation, dvnVars.receiveLib, dvnVars.setConfigParams + ); + if (!(vars.chainId == BARTIO || vars.dstChainId == BARTIO)) { LayerzeroImplementation(payable(vars.lzV1Implementation)).setTrustedRemote( vars.dstLzV1ChainId, abi.encodePacked(vars.dstLzV1Implementation, vars.lzV1Implementation) @@ -1564,20 +1691,7 @@ abstract contract AbstractDeploySingle is BatchScript { vars.dstChainId, vars.dstLzV1ChainId ); } - /// @dev for mainnet - /// @dev do not override default oracle with chainlink for BASE - - /// NOTE: since chainlink oracle is not on BASE, we use the default oracle - // if (vars.chainId != BASE) { - // LayerzeroImplementation(payable(vars.lzImplementation)).setConfig( - // 0, - // /// Defaults To Zero - // vars.dstLzChainId, - // 6, - // /// For Oracle Config - // abi.encode(CHAINLINK_lzOracle) - // ); - // } + if (!(vars.chainId == FANTOM || vars.dstChainId == FANTOM)) { HyperlaneImplementation(payable(vars.hyperlaneImplementation)).setReceiver( vars.dstHypChainId, vars.dstHyperlaneImplementation @@ -1635,6 +1749,19 @@ abstract contract AbstractDeploySingle is BatchScript { LayerzeroV2Implementation.setChainId.selector, vars.dstChainId, vars.dstLzChainId ); addToBatch(vars.lzImplementation, 0, txn); + + txn = abi.encodeWithSelector( + IMessageLibManager.setConfig.selector, vars.lzImplementation, dvnVars.sendLib, dvnVars.setConfigParams + ); + addToBatch(lzV2Endpoint, 0, txn); + + txn = abi.encodeWithSelector( + IMessageLibManager.setConfig.selector, + vars.lzImplementation, + dvnVars.receiveLib, + dvnVars.setConfigParams + ); + addToBatch(lzV2Endpoint, 0, txn); if (!(vars.chainId == BARTIO || vars.dstChainId == BARTIO)) { txn = abi.encodeWithSelector( LayerzeroImplementation.setTrustedRemote.selector, @@ -1648,20 +1775,7 @@ abstract contract AbstractDeploySingle is BatchScript { ); addToBatch(vars.lzV1Implementation, 0, txn); } - /// @dev for mainnet - /// @dev do not override default oracle with chainlink for BASE - - /// NOTE: since chainlink oracle is not on BASE, we use the default oracle - // if (vars.chainId != BASE) { - // LayerzeroImplementation(payable(vars.lzImplementation)).setConfig( - // 0, - // /// Defaults To Zero - // vars.dstLzChainId, - // 6, - // /// For Oracle Config - // abi.encode(CHAINLINK_lzOracle) - // ); - // } + if (!(vars.chainId == FANTOM || vars.dstChainId == FANTOM)) { txn = abi.encodeWithSelector( HyperlaneImplementation.setReceiver.selector, vars.dstHypChainId, vars.dstHyperlaneImplementation @@ -1999,118 +2113,6 @@ abstract contract AbstractDeploySingle is BatchScript { priceFeeds[BARTIO][FANTOM] = address(0); priceFeeds[BARTIO][LINEA] = 0x42324DA2cB327D9DDE198d10A7A68870d761C390; priceFeeds[BARTIO][BLAST] = 0x42324DA2cB327D9DDE198d10A7A68870d761C390; - - mapping(uint64 => mapping(uint64 => uint64)) storage confirmations = CONFIRMATIONS; - - /// ETH - confirmations[ETH][BSC] = 20; - confirmations[ETH][AVAX] = 12; - confirmations[ETH][POLY] = 512; - confirmations[ETH][OP] = 20; - confirmations[ETH][ARBI] = 20; - confirmations[ETH][BASE] = 10; - confirmations[ETH][FANTOM] = 5; - confirmations[ETH][LINEA] = 20; - confirmations[ETH][BLAST] = 20; - - /// BSC - confirmations[BSC][ETH] = 20; - confirmations[BSC][AVAX] = 20; - confirmations[BSC][POLY] = 20; - confirmations[BSC][OP] = 20; - confirmations[BSC][ARBI] = 20; - confirmations[BSC][BASE] = 20; - confirmations[BSC][FANTOM] = 20; - confirmations[BSC][LINEA] = 20; - confirmations[BSC][BLAST] = 20; - - /// AVAX - confirmations[AVAX][ETH] = 12; - confirmations[AVAX][BSC] = 12; - confirmations[AVAX][POLY] = 12; - confirmations[AVAX][OP] = 12; - confirmations[AVAX][ARBI] = 12; - confirmations[AVAX][BASE] = 12; - confirmations[AVAX][FANTOM] = 12; - confirmations[AVAX][LINEA] = 12; - confirmations[AVAX][BLAST] = 12; - - /// POLYGON - confirmations[POLY][AVAX] = 512; - confirmations[POLY][BSC] = 512; - confirmations[POLY][ETH] = 512; - confirmations[POLY][OP] = 512; - confirmations[POLY][ARBI] = 512; - confirmations[POLY][BASE] = 512; - confirmations[POLY][FANTOM] = 512; - confirmations[POLY][LINEA] = 512; - confirmations[POLY][BLAST] = 512; - - /// OPTIMISM - confirmations[OP][POLY] = 20; - confirmations[OP][AVAX] = 20; - confirmations[OP][BSC] = 20; - confirmations[OP][ETH] = 20; - confirmations[OP][ARBI] = 20; - confirmations[OP][BASE] = 20; - confirmations[OP][FANTOM] = 20; - confirmations[OP][LINEA] = 20; - confirmations[OP][BLAST] = 20; - - /// ARBITRUM - confirmations[ARBI][OP] = 20; - confirmations[ARBI][POLY] = 20; - confirmations[ARBI][AVAX] = 20; - confirmations[ARBI][BSC] = 20; - confirmations[ARBI][ETH] = 20; - confirmations[ARBI][BASE] = 20; - confirmations[ARBI][FANTOM] = 20; - confirmations[ARBI][LINEA] = 20; - confirmations[ARBI][BLAST] = 20; - - /// BASE - confirmations[BASE][OP] = 10; - confirmations[BASE][POLY] = 10; - confirmations[BASE][AVAX] = 10; - confirmations[BASE][BSC] = 10; - confirmations[BASE][ETH] = 10; - confirmations[BASE][ARBI] = 10; - confirmations[BASE][FANTOM] = 10; - confirmations[BASE][LINEA] = 10; - confirmations[BASE][BLAST] = 10; - - /// FANTOM - confirmations[FANTOM][OP] = 5; - confirmations[FANTOM][POLY] = 5; - confirmations[FANTOM][AVAX] = 5; - confirmations[FANTOM][BSC] = 5; - confirmations[FANTOM][ETH] = 5; - confirmations[FANTOM][BASE] = 5; - confirmations[FANTOM][ARBI] = 5; - confirmations[FANTOM][LINEA] = 5; - confirmations[FANTOM][BLAST] = 5; - - /// LINEA - confirmations[LINEA][OP] = 10; - confirmations[LINEA][POLY] = 10; - confirmations[LINEA][AVAX] = 10; - confirmations[LINEA][BSC] = 10; - confirmations[LINEA][ETH] = 10; - confirmations[LINEA][BASE] = 10; - confirmations[LINEA][ARBI] = 10; - confirmations[LINEA][FANTOM] = 10; - confirmations[LINEA][BLAST] = 10; - - /// BLAST - confirmations[BLAST][LINEA] = 15; - confirmations[BLAST][OP] = 15; - confirmations[BLAST][POLY] = 15; - confirmations[BLAST][AVAX] = 15; - confirmations[BLAST][BSC] = 15; - confirmations[BLAST][ETH] = 15; - confirmations[BLAST][BASE] = 15; - confirmations[BLAST][ARBI] = 15; - confirmations[BLAST][FANTOM] = 15; } /// @dev use this function for full deployments diff --git a/script/forge-scripts/misc/Abstract.Configure.FixPostPreBera.s.sol b/script/forge-scripts/misc/Abstract.Configure.FixPostPreBera.s.sol deleted file mode 100644 index ff5ba2375..000000000 --- a/script/forge-scripts/misc/Abstract.Configure.FixPostPreBera.s.sol +++ /dev/null @@ -1,69 +0,0 @@ -/// SPDX-License-Identifier: BUSL-1.1 - -pragma solidity ^0.8.23; - -import "../EnvironmentUtils.s.sol"; - -struct UpdateVars { - uint64 chainId; - SuperRegistry superRegistryC; -} - -abstract contract FixPostPreBeraStuff is EnvironmentUtils { - function _configure( - uint256 env, - uint256 srcChainIndex, - Cycle cycle, - uint64[] memory finalDeployedChains - ) - internal - setEnvDeploy(cycle) - { - assert(salt.length > 0); - UpdateVars memory vars; - - vars.chainId = finalDeployedChains[srcChainIndex]; - - vars.superRegistryC = - SuperRegistry(_readContractsV1(env, chainNames[srcChainIndex], vars.chainId, "SuperRegistry")); - assert(address(vars.superRegistryC) != address(0)); - - bytes memory txn; - - address[] memory rescuerAddress = new address[](2); - bytes32[] memory ids = new bytes32[](2); - uint64[] memory targetChains = new uint64[](2); - targetChains[0] = LINEA; - targetChains[1] = BLAST; - - for (uint256 j; j < finalDeployedChains.length; j++) { - if (finalDeployedChains[j] == vars.chainId) { - continue; - } - - // disable Axelar's other chain info on LINEA and BLAST - if (vars.chainId == LINEA || vars.chainId == BLAST) { } else { - for (uint256 i; i < rescuerAddress.length; i++) { - ids[i] = keccak256("CORE_STATE_REGISTRY_RESCUER_ROLE"); - rescuerAddress[i] = CSR_RESCUER; - } - txn = abi.encodeWithSelector( - vars.superRegistryC.batchSetAddress.selector, ids, rescuerAddress, targetChains - ); - addToBatch(address(vars.superRegistryC), 0, txn); - } - } - - // Send the batch - executeBatch(vars.chainId, PROTOCOL_ADMINS[srcChainIndex], manualNonces[srcChainIndex], true); - } - - function _getTrueIndex(uint256 chainId) public view returns (uint256 index) { - for (uint256 i; i < chainIds.length; i++) { - if (chainId == chainIds[i]) { - index = i; - break; - } - } - } -} diff --git a/script/forge-scripts/misc/Abstract.Configure.NewDVN.s.sol b/script/forge-scripts/misc/Abstract.Configure.NewDVN.s.sol index 18057d827..23220f874 100644 --- a/script/forge-scripts/misc/Abstract.Configure.NewDVN.s.sol +++ b/script/forge-scripts/misc/Abstract.Configure.NewDVN.s.sol @@ -48,19 +48,6 @@ abstract contract AbstractConfigureNewDVN is EnvironmentUtils { 0xabC9b1819cc4D9846550F928B985993cF6240439 ]; - address[] public LzDVNs = [ - 0x589dEDbD617e0CBcB916A9223F4d1300c294236b, - 0xfD6865c841c2d64565562fCc7e05e619A30615f0, - 0x962F502A63F5FBeB44DC9ab932122648E8352959, - 0x23DE2FE932d9043291f870324B74F820e11dc81A, - 0x2f55C492897526677C5B68fb199ea31E2c126416, - 0x6A02D83e8d433304bba74EF1c427913958187142, - 0x9e059a54699a285714207b43B055483E78FAac25, - 0xE60A3959Ca23a92BF5aAf992EF837cA7F828628a, - 0x129Ee430Cb2Ff2708CCADDBDb408a88Fe4FFd480, - 0xc097ab8CD7b053326DFe9fB3E3a31a0CCe3B526f - ]; - function _configureSendAndReceiveDVN( uint256 env, uint256 i, diff --git a/script/forge-scripts/misc/Abstract.Configure.PreBeraLaunch.s.sol b/script/forge-scripts/misc/Abstract.Configure.PreBeraLaunch.s.sol index 7bb15ab61..a84cb6465 100644 --- a/script/forge-scripts/misc/Abstract.Configure.PreBeraLaunch.s.sol +++ b/script/forge-scripts/misc/Abstract.Configure.PreBeraLaunch.s.sol @@ -27,43 +27,7 @@ struct UpdateVars { address sendLib; } -struct UlnConfig { - uint64 confirmations; - // we store the length of required DVNs and optional DVNs instead of using DVN.length directly to save gas - uint8 requiredDVNCount; // 0 indicate DEFAULT, NIL_DVN_COUNT indicate NONE (to override the value of default) - uint8 optionalDVNCount; // 0 indicate DEFAULT, NIL_DVN_COUNT indicate NONE (to override the value of default) - uint8 optionalDVNThreshold; // (0, optionalDVNCount] - address[] requiredDVNs; // no duplicates. sorted an an ascending order. allowed overlap with optionalDVNs - address[] optionalDVNs; // no duplicates. sorted an an ascending order. allowed overlap with requiredDVNs -} - abstract contract AbstractPreBeraLaunch is EnvironmentUtils { - address[] public SuperformDVNs = [ - 0x7518f30bd5867b5fA86702556245Dead173afE46, - 0xF4c489AfD83625F510947e63ff8F90dfEE0aE46C, - 0x8fb0B7D74B557e4b45EF89648BAc197EAb2E4325, - 0x1E4CE74ccf5498B19900649D9196e64BAb592451, - 0x5496d03d9065B08e5677E1c5D1107110Bb05d445, - 0xb0B2EF168F52F6d1e42f461e11117295eF992daf, - 0xEb62f578497Bdc351dD650853a751135212fAF49, - 0x2EdfE0220A74d9609c79711a65E3A2F2A85Dc83b, - 0x7A205ED4e3d7f9d0777594501705D8CD405c3B05, - 0x0E95cf21aD9376A26997c97f326C5A0a267bB8FF - ]; - - address[] public LzDVNs = [ - 0x589dEDbD617e0CBcB916A9223F4d1300c294236b, - 0xfD6865c841c2d64565562fCc7e05e619A30615f0, - 0x962F502A63F5FBeB44DC9ab932122648E8352959, - 0x23DE2FE932d9043291f870324B74F820e11dc81A, - 0x2f55C492897526677C5B68fb199ea31E2c126416, - 0x6A02D83e8d433304bba74EF1c427913958187142, - 0x9e059a54699a285714207b43B055483E78FAac25, - 0xE60A3959Ca23a92BF5aAf992EF837cA7F828628a, - 0x129Ee430Cb2Ff2708CCADDBDb408a88Fe4FFd480, - 0xc097ab8CD7b053326DFe9fB3E3a31a0CCe3B526f - ]; - function _setBlastDelegate( uint256 env, uint256 srcChainIndex, @@ -112,6 +76,11 @@ abstract contract AbstractPreBeraLaunch is EnvironmentUtils { SuperRegistry(_readContractsV1(env, chainNames[srcChainIndex], vars.chainId, "SuperRegistry")); assert(address(vars.superRegistryC) != address(0)); + txn = abi.encodeWithSelector( + vars.superRegistryC.setAddress.selector, rewardsAdminRole, REWARDS_ADMIN, vars.chainId + ); + addToBatch(address(vars.superRegistryC), 0, txn); + bytes memory txn; console.log("Setting config"); @@ -134,6 +103,9 @@ abstract contract AbstractPreBeraLaunch is EnvironmentUtils { ulnConfig.requiredDVNs = requiredDVNs; + /// @dev default to 0 to use lz v2 defaults + ulnConfig.confirmations = 0; + address[] memory rescuerAddress = new address[](2); bytes32[] memory ids = new bytes32[](2); uint64[] memory targetChains = new uint64[](2); @@ -147,12 +119,7 @@ abstract contract AbstractPreBeraLaunch is EnvironmentUtils { vars.dstTrueIndex = _getTrueIndex(finalDeployedChains[j]); vars.setConfigParams = new SetConfigParam[](1); - ulnConfig.confirmations = CONFIRMATIONS[vars.chainId][finalDeployedChains[j]]; - console.log("chainId", vars.chainId); - console.log("finalDeployedChains[j]", finalDeployedChains[j]); - console.log("confirmations", ulnConfig.confirmations); - assert(ulnConfig.confirmations != 0); - console.log("----"); + vars.config = abi.encode(ulnConfig); vars.setConfigParams[0] = SetConfigParam(uint32(lz_chainIds[vars.dstTrueIndex]), uint32(2), vars.config); @@ -173,6 +140,7 @@ abstract contract AbstractPreBeraLaunch is EnvironmentUtils { // disable Axelar's other chain info on LINEA and BLAST if (vars.chainId == LINEA || vars.chainId == BLAST) { + /* if (finalDeployedChains[j] == LINEA || finalDeployedChains[j] == BLAST) { txn = abi.encodeWithSelector( AxelarImplementation.setChainId.selector, @@ -183,10 +151,11 @@ abstract contract AbstractPreBeraLaunch is EnvironmentUtils { addToBatch(vars.axl, 0, txn); } txn = abi.encodeWithSelector( - AxelarImplementation.setReceiver.selector, axelar_chainIds[vars.dstTrueIndex], address(0xDEAD) + AxelarImplementation.setReceiver.selector, axelar_chainIds[vars.dstTrueIndex], address(0xDEAD) ); addToBatch(vars.axl, 0, txn); + */ } else { for (uint256 i; i < rescuerAddress.length; i++) { ids[i] = keccak256("CORE_STATE_REGISTRY_RESCUER_ROLE"); diff --git a/script/forge-scripts/misc/DecodeULNConfig.sol b/script/forge-scripts/misc/DecodeULNConfig.sol index 00f9149b6..61e0a8fb5 100644 --- a/script/forge-scripts/misc/DecodeULNConfig.sol +++ b/script/forge-scripts/misc/DecodeULNConfig.sol @@ -5,50 +5,12 @@ import "../EnvironmentUtils.s.sol"; import "src/vendor/layerzero/v2/ILayerZeroEndpointV2.sol"; contract DecodeULNConfig is EnvironmentUtils { - address[] public SuperformDVNs = [ - 0x7518f30bd5867b5fA86702556245Dead173afE46, - 0xF4c489AfD83625F510947e63ff8F90dfEE0aE46C, - 0x8fb0B7D74B557e4b45EF89648BAc197EAb2E4325, - 0x1E4CE74ccf5498B19900649D9196e64BAb592451, - 0x5496d03d9065B08e5677E1c5D1107110Bb05d445, - 0xb0B2EF168F52F6d1e42f461e11117295eF992daf, - 0xEb62f578497Bdc351dD650853a751135212fAF49, - 0x2EdfE0220A74d9609c79711a65E3A2F2A85Dc83b, - 0x7A205ED4e3d7f9d0777594501705D8CD405c3B05, - 0x0E95cf21aD9376A26997c97f326C5A0a267bB8FF - ]; - - address[] public LzDVNs = [ - 0x589dEDbD617e0CBcB916A9223F4d1300c294236b, - 0xfD6865c841c2d64565562fCc7e05e619A30615f0, - 0x962F502A63F5FBeB44DC9ab932122648E8352959, - 0x23DE2FE932d9043291f870324B74F820e11dc81A, - 0x2f55C492897526677C5B68fb199ea31E2c126416, - 0x6A02D83e8d433304bba74EF1c427913958187142, - 0x9e059a54699a285714207b43B055483E78FAac25, - 0xE60A3959Ca23a92BF5aAf992EF837cA7F828628a, - 0x129Ee430Cb2Ff2708CCADDBDb408a88Fe4FFd480, - 0xc097ab8CD7b053326DFe9fB3E3a31a0CCe3B526f - ]; - - struct UlnConfig { - uint64 confirmations; - // we store the length of required DVNs and optional DVNs instead of using DVN.length directly to save gas - uint8 requiredDVNCount; // 0 indicate DEFAULT, NIL_DVN_COUNT indicate NONE (to override the value of default) - uint8 optionalDVNCount; // 0 indicate DEFAULT, NIL_DVN_COUNT indicate NONE (to override the value of default) - uint8 optionalDVNThreshold; // (0, optionalDVNCount] - address[] requiredDVNs; // no duplicates. sorted an an ascending order. allowed overlap with optionalDVNs - address[] optionalDVNs; // no duplicates. sorted an an ascending order. allowed overlap with requiredDVNs - } - function decodeULNConfig(uint64 chainid, uint64 dstChainId, bytes memory config) public { _setEnvironment(0, false); _preDeploymentSetup(); UlnConfig memory ulnConfig = abi.decode(config, (UlnConfig)); - assert(CONFIRMATIONS[chainid][dstChainId] == ulnConfig.confirmations); - address[] memory requiredDVNsToAssert = new address[](2); requiredDVNsToAssert[0] = SuperformDVNs[_getTrueIndex(chainid)]; requiredDVNsToAssert[1] = LzDVNs[_getTrueIndex(chainid)]; @@ -59,7 +21,7 @@ contract DecodeULNConfig is EnvironmentUtils { assert(requiredDVNsToAssert[0] == ulnConfig.requiredDVNs[0]); assert(requiredDVNsToAssert[1] == ulnConfig.requiredDVNs[1]); - console.log("asserted, SRC, DST, Confirmations: ", chainid, dstChainId, ulnConfig.confirmations); + console.log("asserted, SRC, DST: ", chainid, dstChainId); } function _getTrueIndex(uint256 chainId) public view returns (uint256 index) { diff --git a/script/output/1/Ethereum-latest.json b/script/output/1/Ethereum-latest.json index 68f4fb805..294b577a8 100644 --- a/script/output/1/Ethereum-latest.json +++ b/script/output/1/Ethereum-latest.json @@ -1,13 +1,15 @@ { + "AsyncStateRegistry": "0x217D7ED4c370e4f81976A58dc04f5249c59Cd044", "AxelarImplementation": "0x679Cf01eaF7b48aF3Eb13D8D5dd8E8005675B75D", "BroadcastRegistry": "0xCEc20ddF2f26a7f2e213B65bBDc3Dba5a94905dB", "CoreStateRegistry": "0xda4Bc7aD4bfe737f1bAB14E96F345db40A71Ec3D", "DeBridgeForwarderValidator": "0x33A77A6ac571034579690C2B14dF11E3e803A3AC", "DeBridgeValidator": "0x4d6bd7F58B111368F7cAa900E25a3Fc345c145e4", - "DstSwapper": "0x0f0f6e8F7Df71f40F76a6085e68cbADfC3693b3c", + "DstSwapper": "0x90206D750dd8FEBbDdef32ca3eD578a278b133D9", "ERC4626Form": "0xBC696200257Aa524DC33daC962609b1cc5829e7f", "ERC5115Form": "0xE7c419E8697863945498799445EedFb353D3aB7A", "ERC5115To4626WrapperFactory": "0xC3d2303C2D7BD590786b2a161d16756459814A4F", + "ERC7540Form": "0x186504843d4F15A5e98E654484F5BC8EE1a9Cbd8", "EmergencyQueue": "0x97757B4Fbe27844491cda3B766B2Af2C5FC3CdE5", "HyperlaneImplementation": "0xA32C38a1F734D40d4293688f2B401A99eE34211c", "LayerzeroImplementation": "0x05D2543d0b6b50e59f6eB548660289502f6095BE", @@ -15,7 +17,7 @@ "LiFiValidator": "0xF279499555c1F70A1e4412b652c376C881Ad0B89", "OneInchValidator": "0xf4F2b2d0036C5d9be3ddf86fa188B60C73170280", "PayMaster": "0xcBB80F21cE80877EA652BceF97821D7883A219e9", - "PayloadHelper": "0x89e7F61E97fd5E30B58640ea48FE9109F5434aA2", + "PayloadHelper": "0x9Ff35E68409b615110DB0864bd632E9F9770C182", "PaymentHelper": "0x5754BdbD9a19037961aa16d53aB6a97fFeC7c9d6", "RewardsDistributor": "0xBee4aa07Dee132B76d195Bb00eeB7F7B360d2afd", "SocketOneInchValidator": "0xB0F404e09F4D9660970bE7780Bb453ba4E161F96", @@ -25,6 +27,8 @@ "SuperRegistry": "0xD678fDdf21eA7b6722115cb9edBDDC8CF2BFb7d7", "SuperformFactory": "0xC8E70Ef21FaB64B321E8Aea0Ed1fda4eC481Ea24", "SuperformRouter": "0x229C2Cd1C67c1b7ab2D6A07718DC622b6EC3d408", + "SuperformRouterPlus": "0x0000000000000000000000000000000000000000", + "SuperformRouterPlusAsync": "0x0000000000000000000000000000000000000000", "VaultClaimer": "0x36B20e607eDC57da1bcd0475831150E475F58d70", "WormholeARImplementation": "0x7E76F8602194811eA4E1d36d570b5c3c2C6dd3c2", "WormholeSRImplementation": "0x802e93000D4F89A5B3c1D30b0D426bB7bCe3084C" diff --git a/script/output/10/Optimism-latest.json b/script/output/10/Optimism-latest.json index b03e77bc8..294b577a8 100644 --- a/script/output/10/Optimism-latest.json +++ b/script/output/10/Optimism-latest.json @@ -1,35 +1,35 @@ { - "AsyncStateRegistry": "0x0000000000000000000000000000000000000000", - "AxelarImplementation": "0x0000000000000000000000000000000000000000", - "BroadcastRegistry": "0x0000000000000000000000000000000000000000", - "CoreStateRegistry": "0x0000000000000000000000000000000000000000", - "DeBridgeForwarderValidator": "0x0000000000000000000000000000000000000000", - "DeBridgeValidator": "0x0000000000000000000000000000000000000000", - "DstSwapper": "0x0000000000000000000000000000000000000000", - "ERC4626Form": "0x0000000000000000000000000000000000000000", - "ERC5115Form": "0x0000000000000000000000000000000000000000", - "ERC5115To4626WrapperFactory": "0x0000000000000000000000000000000000000000", - "ERC7540Form": "0xE2005E8A9b8A21d6dF752db866fA78a574057052", - "EmergencyQueue": "0x0000000000000000000000000000000000000000", - "HyperlaneImplementation": "0x0000000000000000000000000000000000000000", - "LayerzeroImplementation": "0x0000000000000000000000000000000000000000", - "LayerzeroV1Implementation": "0x0000000000000000000000000000000000000000", - "LiFiValidator": "0x0000000000000000000000000000000000000000", - "OneInchValidator": "0x0000000000000000000000000000000000000000", - "PayMaster": "0x0000000000000000000000000000000000000000", - "PayloadHelper": "0x0000000000000000000000000000000000000000", - "PaymentHelper": "0x0000000000000000000000000000000000000000", - "RewardsDistributor": "0x0000000000000000000000000000000000000000", - "SocketOneInchValidator": "0x0000000000000000000000000000000000000000", + "AsyncStateRegistry": "0x217D7ED4c370e4f81976A58dc04f5249c59Cd044", + "AxelarImplementation": "0x679Cf01eaF7b48aF3Eb13D8D5dd8E8005675B75D", + "BroadcastRegistry": "0xCEc20ddF2f26a7f2e213B65bBDc3Dba5a94905dB", + "CoreStateRegistry": "0xda4Bc7aD4bfe737f1bAB14E96F345db40A71Ec3D", + "DeBridgeForwarderValidator": "0x33A77A6ac571034579690C2B14dF11E3e803A3AC", + "DeBridgeValidator": "0x4d6bd7F58B111368F7cAa900E25a3Fc345c145e4", + "DstSwapper": "0x90206D750dd8FEBbDdef32ca3eD578a278b133D9", + "ERC4626Form": "0xBC696200257Aa524DC33daC962609b1cc5829e7f", + "ERC5115Form": "0xE7c419E8697863945498799445EedFb353D3aB7A", + "ERC5115To4626WrapperFactory": "0xC3d2303C2D7BD590786b2a161d16756459814A4F", + "ERC7540Form": "0x186504843d4F15A5e98E654484F5BC8EE1a9Cbd8", + "EmergencyQueue": "0x97757B4Fbe27844491cda3B766B2Af2C5FC3CdE5", + "HyperlaneImplementation": "0xA32C38a1F734D40d4293688f2B401A99eE34211c", + "LayerzeroImplementation": "0x05D2543d0b6b50e59f6eB548660289502f6095BE", + "LayerzeroV1Implementation": "0x44F11E68B595cb8f6789700BcF8814909093f553", + "LiFiValidator": "0xF279499555c1F70A1e4412b652c376C881Ad0B89", + "OneInchValidator": "0xf4F2b2d0036C5d9be3ddf86fa188B60C73170280", + "PayMaster": "0xcBB80F21cE80877EA652BceF97821D7883A219e9", + "PayloadHelper": "0x9Ff35E68409b615110DB0864bd632E9F9770C182", + "PaymentHelper": "0x5754BdbD9a19037961aa16d53aB6a97fFeC7c9d6", + "RewardsDistributor": "0xBee4aa07Dee132B76d195Bb00eeB7F7B360d2afd", + "SocketOneInchValidator": "0xB0F404e09F4D9660970bE7780Bb453ba4E161F96", "SocketValidator": "0x0000000000000000000000000000000000000000", - "SuperPositions": "0x0000000000000000000000000000000000000000", - "SuperRBAC": "0x0000000000000000000000000000000000000000", - "SuperRegistry": "0x0000000000000000000000000000000000000000", - "SuperformFactory": "0x0000000000000000000000000000000000000000", - "SuperformRouter": "0x0000000000000000000000000000000000000000", + "SuperPositions": "0x24Bc1C19781a1Bbf5A37b0E1A5F79aac75AF6467", + "SuperRBAC": "0xAEb63A3199d2CB3B2812BBD1dc6Ef62f12182E5d", + "SuperRegistry": "0xD678fDdf21eA7b6722115cb9edBDDC8CF2BFb7d7", + "SuperformFactory": "0xC8E70Ef21FaB64B321E8Aea0Ed1fda4eC481Ea24", + "SuperformRouter": "0x229C2Cd1C67c1b7ab2D6A07718DC622b6EC3d408", "SuperformRouterPlus": "0x0000000000000000000000000000000000000000", "SuperformRouterPlusAsync": "0x0000000000000000000000000000000000000000", - "VaultClaimer": "0x0000000000000000000000000000000000000000", - "WormholeARImplementation": "0x0000000000000000000000000000000000000000", - "WormholeSRImplementation": "0x0000000000000000000000000000000000000000" + "VaultClaimer": "0x36B20e607eDC57da1bcd0475831150E475F58d70", + "WormholeARImplementation": "0x7E76F8602194811eA4E1d36d570b5c3c2C6dd3c2", + "WormholeSRImplementation": "0x802e93000D4F89A5B3c1D30b0D426bB7bCe3084C" } \ No newline at end of file diff --git a/script/output/42161/Arbitrum-latest.json b/script/output/42161/Arbitrum-latest.json index b03e77bc8..294b577a8 100644 --- a/script/output/42161/Arbitrum-latest.json +++ b/script/output/42161/Arbitrum-latest.json @@ -1,35 +1,35 @@ { - "AsyncStateRegistry": "0x0000000000000000000000000000000000000000", - "AxelarImplementation": "0x0000000000000000000000000000000000000000", - "BroadcastRegistry": "0x0000000000000000000000000000000000000000", - "CoreStateRegistry": "0x0000000000000000000000000000000000000000", - "DeBridgeForwarderValidator": "0x0000000000000000000000000000000000000000", - "DeBridgeValidator": "0x0000000000000000000000000000000000000000", - "DstSwapper": "0x0000000000000000000000000000000000000000", - "ERC4626Form": "0x0000000000000000000000000000000000000000", - "ERC5115Form": "0x0000000000000000000000000000000000000000", - "ERC5115To4626WrapperFactory": "0x0000000000000000000000000000000000000000", - "ERC7540Form": "0xE2005E8A9b8A21d6dF752db866fA78a574057052", - "EmergencyQueue": "0x0000000000000000000000000000000000000000", - "HyperlaneImplementation": "0x0000000000000000000000000000000000000000", - "LayerzeroImplementation": "0x0000000000000000000000000000000000000000", - "LayerzeroV1Implementation": "0x0000000000000000000000000000000000000000", - "LiFiValidator": "0x0000000000000000000000000000000000000000", - "OneInchValidator": "0x0000000000000000000000000000000000000000", - "PayMaster": "0x0000000000000000000000000000000000000000", - "PayloadHelper": "0x0000000000000000000000000000000000000000", - "PaymentHelper": "0x0000000000000000000000000000000000000000", - "RewardsDistributor": "0x0000000000000000000000000000000000000000", - "SocketOneInchValidator": "0x0000000000000000000000000000000000000000", + "AsyncStateRegistry": "0x217D7ED4c370e4f81976A58dc04f5249c59Cd044", + "AxelarImplementation": "0x679Cf01eaF7b48aF3Eb13D8D5dd8E8005675B75D", + "BroadcastRegistry": "0xCEc20ddF2f26a7f2e213B65bBDc3Dba5a94905dB", + "CoreStateRegistry": "0xda4Bc7aD4bfe737f1bAB14E96F345db40A71Ec3D", + "DeBridgeForwarderValidator": "0x33A77A6ac571034579690C2B14dF11E3e803A3AC", + "DeBridgeValidator": "0x4d6bd7F58B111368F7cAa900E25a3Fc345c145e4", + "DstSwapper": "0x90206D750dd8FEBbDdef32ca3eD578a278b133D9", + "ERC4626Form": "0xBC696200257Aa524DC33daC962609b1cc5829e7f", + "ERC5115Form": "0xE7c419E8697863945498799445EedFb353D3aB7A", + "ERC5115To4626WrapperFactory": "0xC3d2303C2D7BD590786b2a161d16756459814A4F", + "ERC7540Form": "0x186504843d4F15A5e98E654484F5BC8EE1a9Cbd8", + "EmergencyQueue": "0x97757B4Fbe27844491cda3B766B2Af2C5FC3CdE5", + "HyperlaneImplementation": "0xA32C38a1F734D40d4293688f2B401A99eE34211c", + "LayerzeroImplementation": "0x05D2543d0b6b50e59f6eB548660289502f6095BE", + "LayerzeroV1Implementation": "0x44F11E68B595cb8f6789700BcF8814909093f553", + "LiFiValidator": "0xF279499555c1F70A1e4412b652c376C881Ad0B89", + "OneInchValidator": "0xf4F2b2d0036C5d9be3ddf86fa188B60C73170280", + "PayMaster": "0xcBB80F21cE80877EA652BceF97821D7883A219e9", + "PayloadHelper": "0x9Ff35E68409b615110DB0864bd632E9F9770C182", + "PaymentHelper": "0x5754BdbD9a19037961aa16d53aB6a97fFeC7c9d6", + "RewardsDistributor": "0xBee4aa07Dee132B76d195Bb00eeB7F7B360d2afd", + "SocketOneInchValidator": "0xB0F404e09F4D9660970bE7780Bb453ba4E161F96", "SocketValidator": "0x0000000000000000000000000000000000000000", - "SuperPositions": "0x0000000000000000000000000000000000000000", - "SuperRBAC": "0x0000000000000000000000000000000000000000", - "SuperRegistry": "0x0000000000000000000000000000000000000000", - "SuperformFactory": "0x0000000000000000000000000000000000000000", - "SuperformRouter": "0x0000000000000000000000000000000000000000", + "SuperPositions": "0x24Bc1C19781a1Bbf5A37b0E1A5F79aac75AF6467", + "SuperRBAC": "0xAEb63A3199d2CB3B2812BBD1dc6Ef62f12182E5d", + "SuperRegistry": "0xD678fDdf21eA7b6722115cb9edBDDC8CF2BFb7d7", + "SuperformFactory": "0xC8E70Ef21FaB64B321E8Aea0Ed1fda4eC481Ea24", + "SuperformRouter": "0x229C2Cd1C67c1b7ab2D6A07718DC622b6EC3d408", "SuperformRouterPlus": "0x0000000000000000000000000000000000000000", "SuperformRouterPlusAsync": "0x0000000000000000000000000000000000000000", - "VaultClaimer": "0x0000000000000000000000000000000000000000", - "WormholeARImplementation": "0x0000000000000000000000000000000000000000", - "WormholeSRImplementation": "0x0000000000000000000000000000000000000000" + "VaultClaimer": "0x36B20e607eDC57da1bcd0475831150E475F58d70", + "WormholeARImplementation": "0x7E76F8602194811eA4E1d36d570b5c3c2C6dd3c2", + "WormholeSRImplementation": "0x802e93000D4F89A5B3c1D30b0D426bB7bCe3084C" } \ No newline at end of file diff --git a/script/output/59144/Linea-latest.json b/script/output/59144/Linea-latest.json index b03e77bc8..e147e2cc6 100644 --- a/script/output/59144/Linea-latest.json +++ b/script/output/59144/Linea-latest.json @@ -1,35 +1,35 @@ { - "AsyncStateRegistry": "0x0000000000000000000000000000000000000000", - "AxelarImplementation": "0x0000000000000000000000000000000000000000", - "BroadcastRegistry": "0x0000000000000000000000000000000000000000", - "CoreStateRegistry": "0x0000000000000000000000000000000000000000", - "DeBridgeForwarderValidator": "0x0000000000000000000000000000000000000000", - "DeBridgeValidator": "0x0000000000000000000000000000000000000000", - "DstSwapper": "0x0000000000000000000000000000000000000000", - "ERC4626Form": "0x0000000000000000000000000000000000000000", - "ERC5115Form": "0x0000000000000000000000000000000000000000", - "ERC5115To4626WrapperFactory": "0x0000000000000000000000000000000000000000", - "ERC7540Form": "0xE2005E8A9b8A21d6dF752db866fA78a574057052", - "EmergencyQueue": "0x0000000000000000000000000000000000000000", - "HyperlaneImplementation": "0x0000000000000000000000000000000000000000", - "LayerzeroImplementation": "0x0000000000000000000000000000000000000000", - "LayerzeroV1Implementation": "0x0000000000000000000000000000000000000000", - "LiFiValidator": "0x0000000000000000000000000000000000000000", + "AsyncStateRegistry": "0x217D7ED4c370e4f81976A58dc04f5249c59Cd044", + "AxelarImplementation": "0x679Cf01eaF7b48aF3Eb13D8D5dd8E8005675B75D", + "BroadcastRegistry": "0xCEc20ddF2f26a7f2e213B65bBDc3Dba5a94905dB", + "CoreStateRegistry": "0xda4Bc7aD4bfe737f1bAB14E96F345db40A71Ec3D", + "DeBridgeForwarderValidator": "0x33A77A6ac571034579690C2B14dF11E3e803A3AC", + "DeBridgeValidator": "0x4d6bd7F58B111368F7cAa900E25a3Fc345c145e4", + "DstSwapper": "0x90206D750dd8FEBbDdef32ca3eD578a278b133D9", + "ERC4626Form": "0xBC696200257Aa524DC33daC962609b1cc5829e7f", + "ERC5115Form": "0xE7c419E8697863945498799445EedFb353D3aB7A", + "ERC5115To4626WrapperFactory": "0xC3d2303C2D7BD590786b2a161d16756459814A4F", + "ERC7540Form": "0x186504843d4F15A5e98E654484F5BC8EE1a9Cbd8", + "EmergencyQueue": "0x97757B4Fbe27844491cda3B766B2Af2C5FC3CdE5", + "HyperlaneImplementation": "0xA32C38a1F734D40d4293688f2B401A99eE34211c", + "LayerzeroImplementation": "0x05D2543d0b6b50e59f6eB548660289502f6095BE", + "LayerzeroV1Implementation": "0x44F11E68B595cb8f6789700BcF8814909093f553", + "LiFiValidator": "0xF279499555c1F70A1e4412b652c376C881Ad0B89", "OneInchValidator": "0x0000000000000000000000000000000000000000", - "PayMaster": "0x0000000000000000000000000000000000000000", - "PayloadHelper": "0x0000000000000000000000000000000000000000", - "PaymentHelper": "0x0000000000000000000000000000000000000000", - "RewardsDistributor": "0x0000000000000000000000000000000000000000", + "PayMaster": "0xcBB80F21cE80877EA652BceF97821D7883A219e9", + "PayloadHelper": "0x9Ff35E68409b615110DB0864bd632E9F9770C182", + "PaymentHelper": "0x5754BdbD9a19037961aa16d53aB6a97fFeC7c9d6", + "RewardsDistributor": "0xBee4aa07Dee132B76d195Bb00eeB7F7B360d2afd", "SocketOneInchValidator": "0x0000000000000000000000000000000000000000", "SocketValidator": "0x0000000000000000000000000000000000000000", - "SuperPositions": "0x0000000000000000000000000000000000000000", - "SuperRBAC": "0x0000000000000000000000000000000000000000", - "SuperRegistry": "0x0000000000000000000000000000000000000000", - "SuperformFactory": "0x0000000000000000000000000000000000000000", - "SuperformRouter": "0x0000000000000000000000000000000000000000", + "SuperPositions": "0x24Bc1C19781a1Bbf5A37b0E1A5F79aac75AF6467", + "SuperRBAC": "0xAEb63A3199d2CB3B2812BBD1dc6Ef62f12182E5d", + "SuperRegistry": "0xD678fDdf21eA7b6722115cb9edBDDC8CF2BFb7d7", + "SuperformFactory": "0xC8E70Ef21FaB64B321E8Aea0Ed1fda4eC481Ea24", + "SuperformRouter": "0x229C2Cd1C67c1b7ab2D6A07718DC622b6EC3d408", "SuperformRouterPlus": "0x0000000000000000000000000000000000000000", "SuperformRouterPlusAsync": "0x0000000000000000000000000000000000000000", - "VaultClaimer": "0x0000000000000000000000000000000000000000", + "VaultClaimer": "0x36B20e607eDC57da1bcd0475831150E475F58d70", "WormholeARImplementation": "0x0000000000000000000000000000000000000000", "WormholeSRImplementation": "0x0000000000000000000000000000000000000000" } \ No newline at end of file diff --git a/script/utils/run_script_tenderly.sh b/script/utils/run_script_tenderly.sh index 5b713bb2f..acb0b91af 100755 --- a/script/utils/run_script_tenderly.sh +++ b/script/utils/run_script_tenderly.sh @@ -16,52 +16,52 @@ LINEA_DEVNET=$(tenderly devnet spawn-rpc --project $TENDERLY_PROJECT_SLUG --temp # Run the script echo Running Stage 1: ... -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 0 --rpc-url $ETHEREUM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 0 --rpc-url $ETHEREUM_DEVNET --broadcast --unlocked --sender 0xd26b38a64C812403fD3F87717624C80852cD6D61 --slow wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 1 --rpc-url $OPTIMISM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 1 --rpc-url $OPTIMISM_DEVNET --broadcast --unlocked --sender 0x99620a926D68746D5F085B3f7cD62F4fFB71f0C1 --slow wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 2 --rpc-url $ARBITRUM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +# FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 2 --rpc-url $ARBITRUM_DEVNET --broadcast --unlocked --sender 0x7Fc07cAFb65d1552849BcF151F7035C5210B76f4 --slow -wait +# wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 3 --rpc-url $LINEA_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +# FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage1(uint256,uint256)" 2 3 --rpc-url $LINEA_DEVNET --broadcast --unlocked --sender 0x62Bbfe3ef3faAb7045d29bC388E5A0c5033D8b77 --slow -wait +# wait echo Running Stage 2: ... -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 0 --rpc-url $ETHEREUM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 0 --rpc-url $ETHEREUM_DEVNET --broadcast --unlocked --sender 0xd26b38a64C812403fD3F87717624C80852cD6D61 --slow wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 1 --rpc-url $OPTIMISM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 1 --rpc-url $OPTIMISM_DEVNET --broadcast --unlocked --sender 0x99620a926D68746D5F085B3f7cD62F4fFB71f0C1 --slow wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 2 --rpc-url $ARBITRUM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +# FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 2 --rpc-url $ARBITRUM_DEVNET --broadcast --unlocked --sender 0x7Fc07cAFb65d1552849BcF151F7035C5210B76f4 --slow -wait +# wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 3 --rpc-url $LINEA_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +# FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage2(uint256,uint256)" 2 3 --rpc-url $LINEA_DEVNET --broadcast --unlocked --sender 0x62Bbfe3ef3faAb7045d29bC388E5A0c5033D8b77 --slow -wait +# wait echo Running Stage 3: ... -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 0 --rpc-url $ETHEREUM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 0 --rpc-url $ETHEREUM_DEVNET --broadcast --unlocked --sender 0xd26b38a64C812403fD3F87717624C80852cD6D61 --slow wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 1 --rpc-url $OPTIMISM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 1 --rpc-url $OPTIMISM_DEVNET --broadcast --unlocked --sender 0x99620a926D68746D5F085B3f7cD62F4fFB71f0C1 --slow wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 2 --rpc-url $ARBITRUM_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +# FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 2 --rpc-url $ARBITRUM_DEVNET --broadcast --unlocked --sender 0x7Fc07cAFb65d1552849BcF151F7035C5210B76f4 --slow -wait +# wait -FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 3 --rpc-url $LINEA_DEVNET --broadcast --unlocked --sender 0x0000000000000000000000000000000000000000 --slow +# FOUNDRY_PROFILE=production forge script script/forge-scripts/Tenderly.Deploy.s.sol:TenderlyDeploy --sig "deployStage3(uint256,uint256)" 2 3 --rpc-url $LINEA_DEVNET --broadcast --unlocked --sender 0x62Bbfe3ef3faAb7045d29bC388E5A0c5033D8b77 --slow diff --git a/test/mainnet/SmokeTest.t.sol b/test/mainnet/SmokeTest.t.sol index 8a81eefcf..fc487d4f2 100644 --- a/test/mainnet/SmokeTest.t.sol +++ b/test/mainnet/SmokeTest.t.sol @@ -40,6 +40,48 @@ contract SmokeTest is MainnetBaseSetup { address[] optionalDVNs; // no duplicates. sorted an an ascending order. allowed overlap with requiredDVNs } + /* + function test_printConfirmations() public { + bytes memory config; + address oapp; + + ILayerZeroEndpointV2 endpoint = ILayerZeroEndpointV2(lzV2Endpoint); + + uint64 chain = BASE; + vm.selectFork(FORKS[BASE]); + oapp = 0x12dC9256Acc9895B076f6638D628382881e62CeE; + + uint64 dstChain = ARBI; + config = endpoint.getConfig(oapp, 0xB5320B0B3a13cC860893E2Bd79FCd7e13484Dda2, 30_110, 2); + UlnConfig memory ulnConfig = abi.decode(config, (UlnConfig)); + console.log("confirmations", ulnConfig.confirmations); + console.log("our confirmations", CONFIRMATIONS[chain][dstChain]); + assert(ulnConfig.confirmations == CONFIRMATIONS[chain][dstChain]); + + chain = ARBI; + vm.selectFork(FORKS[ARBI]); + oapp = 0x12dC9256Acc9895B076f6638D628382881e62CeE; + + dstChain = BASE; + config = endpoint.getConfig(oapp, 0x7B9E184e07a6EE1aC23eAe0fe8D6Be2f663f05e6, 30_184, 2); + ulnConfig = abi.decode(config, (UlnConfig)); + console.log("confirmations", ulnConfig.confirmations); + console.log("our confirmations", CONFIRMATIONS[chain][dstChain]); + //assert(ulnConfig.confirmations == CONFIRMATIONS[chain][dstChain]); + + chain = ARBI; + vm.selectFork(FORKS[ARBI]); + oapp = address(0); + + dstChain = POLY; + config = endpoint.getConfig(oapp, 0x7B9E184e07a6EE1aC23eAe0fe8D6Be2f663f05e6, 30_109, 2); + ulnConfig = abi.decode(config, (UlnConfig)); + console.log("confirmations", ulnConfig.confirmations); + console.log("our confirmations", CONFIRMATIONS[chain][dstChain]); + assert(ulnConfig.confirmations == CONFIRMATIONS[chain][dstChain]); + } + */ + function test_lzConfig() public { bytes memory config; address oapp; diff --git a/test/utils/BaseSetup.sol b/test/utils/BaseSetup.sol index 2412422a7..d0c105eab 100644 --- a/test/utils/BaseSetup.sol +++ b/test/utils/BaseSetup.sol @@ -1819,7 +1819,7 @@ abstract contract BaseSetup is StdInvariant, Test { ? pinnedBlock ? vm.createFork(BSC_TESTNET_RPC_URL_QN, 41_624_319) : vm.createFork(BSC_TESTNET_RPC_URL_QN) : 999; forks[LINEA] = selectedChainIds[LINEA] - ? pinnedBlock ? vm.createFork(LINEA_RPC_URL, 10_568_898) : vm.createFork(LINEA_RPC_URL_QN) + ? pinnedBlock ? vm.createFork(LINEA_RPC_URL, 12_323_016) : vm.createFork(LINEA_RPC_URL_QN) : 999; forks[BLAST] = selectedChainIds[BLAST] ? pinnedBlock ? vm.createFork(BLAST_RPC_URL, 9_880_537) : vm.createFork(BLAST_RPC_URL_QN) diff --git a/test/utils/MainnetBaseSetup.sol b/test/utils/MainnetBaseSetup.sol index 580bd77b9..80eaadf4d 100644 --- a/test/utils/MainnetBaseSetup.sol +++ b/test/utils/MainnetBaseSetup.sol @@ -32,28 +32,28 @@ abstract contract MainnetBaseSetup is BaseSetup { } address[] public lzV2SendLib = [ - 0xc02Ab410f0734EFa3F14628780e6e695156024C2, - 0x9F8C645f2D0b2159767Bd6E0839DE4BE49e823DE, - 0x197D1333DEA5Fe0D6600E9b396c7f1B1cFCc558a, - 0x6c26c61a97006888ea9E4FA36584c7df57Cd9dA3, - 0x975bcD720be66659e3EB3C0e4F1866a3020E493A, - 0x1322871e4ab09Bc7f5717189434f97bBD9546e95, - 0xB5320B0B3a13cC860893E2Bd79FCd7e13484Dda2, - 0xC17BaBeF02a937093363220b0FB57De04A535D5E, - 0x32042142DD551b4EbE17B6FEd53131dd4b4eEa06, - 0xc1B621b18187F74c8F6D52a6F709Dd2780C09821 + 0xc02Ab410f0734EFa3F14628780e6e695156024C2, // ETH + 0x9F8C645f2D0b2159767Bd6E0839DE4BE49e823DE, // BSC + 0x197D1333DEA5Fe0D6600E9b396c7f1B1cFCc558a, // AVAX + 0x6c26c61a97006888ea9E4FA36584c7df57Cd9dA3, // POLY + 0x975bcD720be66659e3EB3C0e4F1866a3020E493A, // ARBI + 0x1322871e4ab09Bc7f5717189434f97bBD9546e95, // OP + 0xB5320B0B3a13cC860893E2Bd79FCd7e13484Dda2, // BASE + 0xC17BaBeF02a937093363220b0FB57De04A535D5E, // FANTOM + 0x32042142DD551b4EbE17B6FEd53131dd4b4eEa06, // LINEA + 0xc1B621b18187F74c8F6D52a6F709Dd2780C09821 // BLAST ]; address[] public lzV2ReceiveLib = [ - 0xbB2Ea70C9E858123480642Cf96acbcCE1372dCe1, - 0xB217266c3A98C8B2709Ee26836C98cf12f6cCEC1, - 0xbf3521d309642FA9B1c91A08609505BA09752c61, - 0x1322871e4ab09Bc7f5717189434f97bBD9546e95, - 0x7B9E184e07a6EE1aC23eAe0fe8D6Be2f663f05e6, - 0x3c4962Ff6258dcfCafD23a814237B7d6Eb712063, - 0xc70AB6f32772f59fBfc23889Caf4Ba3376C84bAf, - 0xe1Dd69A2D08dF4eA6a30a91cC061ac70F98aAbe3, - 0xE22ED54177CE1148C557de74E4873619e6c6b205, - 0x377530cdA84DFb2673bF4d145DCF0C4D7fdcB5b6 + 0xbB2Ea70C9E858123480642Cf96acbcCE1372dCe1, // ETH + 0xB217266c3A98C8B2709Ee26836C98cf12f6cCEC1, // BSC + 0xbf3521d309642FA9B1c91A08609505BA09752c61, // AVAX + 0x1322871e4ab09Bc7f5717189434f97bBD9546e95, // POLY + 0x7B9E184e07a6EE1aC23eAe0fe8D6Be2f663f05e6, // ARBI + 0x3c4962Ff6258dcfCafD23a814237B7d6Eb712063, // OP + 0xc70AB6f32772f59fBfc23889Caf4Ba3376C84bAf, // BASE + 0xe1Dd69A2D08dF4eA6a30a91cC061ac70F98aAbe3, // FANTOM + 0xE22ED54177CE1148C557de74E4873619e6c6b205, // LINEA + 0x377530cdA84DFb2673bF4d145DCF0C4D7fdcB5b6 // BLAST ]; uint256 public deployerPrivateKey; diff --git a/test/utils/merkle/target/jsTreeDump0.json b/test/utils/merkle/target/jsTreeDump0.json index 52c0ff342..00f22c51f 100644 --- a/test/utils/merkle/target/jsTreeDump0.json +++ b/test/utils/merkle/target/jsTreeDump0.json @@ -1 +1,529 @@ -{"format":"standard-v1","tree":["0xf5d9e300f214ac7c9a21a9be4c88db8ac3af824a60e0c55591a472dcd84c785c","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a","0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661","0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a","0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811","0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86","0x4f5d8ba2e76551ee3775748675e1b1f1cb0d62f48cd3c0bcce18e10c0f29d06b","0x0b1e75629bd7f97ca24c9ff168b35c9ba4606526effa4630da6cf2284970ec0e","0x254342999dc03db86047e44af685b068503e22e89aa9d49ed7c5f44709d2c760","0xa837503c418f44384e743b3c3c95a7dcf1c6db0ab0a233836964d6b6a7c0a362","0xff94e02aab1c3069c83fcfbd6c68236ad50ec65a16ff483293c10168b6675b06","0x4695308a1aa494e8682dc245f0dea7262cc35466cb90fbb3e5259ad7dc9cb8e1","0x397b4c8e1056529a0dce615c97818b91503bfe3f676029c23aae119e9563d306","0x86d2c6bde65936088a2de715a91572483d768fd33f4e015840ffd9abadb3fe64","0xe29cd828b01d9344784ea8bb5260653ed92482e701b447a511523d591b5d6adf","0xcbfe8888e82b42ea19747fc291d4e4537fbab86fa39911bb2da754f6f2dbf62c","0xa17723f943c9137dc1f8f52f196fa50e4e28e2206c7cbd70eccb8a091dbdd65a","0xa0a4e1da8fda7a183dbca259cc8867b6e0c50720f9243c50f64540db38ae1e27","0x9f0d58715f595ea789c60e04795561517ec5b450f840a428309fb424cdde2592","0x92046102722724a412fe22d1c6a4d590f9111a84e9cd6f83ff2a6feacaf70657","0x86673d8dce3b7645e0e5ba850fa958df2db47155ebe2acb0ea84411244c4ec18","0x77d33811d82964e32e31ef20f16a306cf47fa4773c98f8eb362c188603a0af47","0x534d56782e061c5b0de0c627efa79ec4b009300bd040230bd419b9ca65dc5798","0x521a3da94e5ddd44bb4bda4c89d4817b5989d6f885cb95f8ea1e76cfe9fb30c4","0x4fe6a52dd253031af45c16da282fb387262b30e3a1ca69fc9f2a6f1195759fb8","0x32efe54d227590f9b3e1a17c3c1b3a3b7d0345b98009763407a60aa79a54c4ae","0x171340b2fa1ee96d38dab925c60a34643c7ac46f73432318e29a9ba74ea045ec","0x1564863cdc09aa5711f8371a9581137e024926df0cefd1576312a762f60eea37","0x102725ef346cfe747ae39fb88978e1dcc1e2e936a9895b4d1ef51876680b83c0","0x0b751b36d8be0ad85ed25c955e511e1e33aab0b81cd529cd9438e51d306b9e83"],"values":[{"value":["0x0000000000000000000000000000000000000001","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],[644],"10"],"treeIndex":30,"claimer":"0x0000000000000000000000000000000000000001","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],"amountsClaimed":[644],"chainId":10,"proof":["0x102725ef346cfe747ae39fb88978e1dcc1e2e936a9895b4d1ef51876680b83c0","0x397b4c8e1056529a0dce615c97818b91503bfe3f676029c23aae119e9563d306","0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000002","0",["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[946],"10"],"treeIndex":24,"claimer":"0x0000000000000000000000000000000000000002","periodId":0,"rewardTokens":["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[946],"chainId":10,"proof":["0x534d56782e061c5b0de0c627efa79ec4b009300bd040230bd419b9ca65dc5798","0x4695308a1aa494e8682dc245f0dea7262cc35466cb90fbb3e5259ad7dc9cb8e1","0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000003","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[760,215],"10"],"treeIndex":22,"claimer":"0x0000000000000000000000000000000000000003","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[760,215],"chainId":10,"proof":["0x86673d8dce3b7645e0e5ba850fa958df2db47155ebe2acb0ea84411244c4ec18","0x254342999dc03db86047e44af685b068503e22e89aa9d49ed7c5f44709d2c760","0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000004","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],[124],"10"],"treeIndex":28,"claimer":"0x0000000000000000000000000000000000000004","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],"amountsClaimed":[124],"chainId":10,"proof":["0x171340b2fa1ee96d38dab925c60a34643c7ac46f73432318e29a9ba74ea045ec","0x86d2c6bde65936088a2de715a91572483d768fd33f4e015840ffd9abadb3fe64","0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000005","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],[529],"10"],"treeIndex":19,"claimer":"0x0000000000000000000000000000000000000005","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],"amountsClaimed":[529],"chainId":10,"proof":["0x92046102722724a412fe22d1c6a4d590f9111a84e9cd6f83ff2a6feacaf70657","0xa837503c418f44384e743b3c3c95a7dcf1c6db0ab0a233836964d6b6a7c0a362","0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000006","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],[465],"10"],"treeIndex":26,"claimer":"0x0000000000000000000000000000000000000006","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],"amountsClaimed":[465],"chainId":10,"proof":["0x4fe6a52dd253031af45c16da282fb387262b30e3a1ca69fc9f2a6f1195759fb8","0xff94e02aab1c3069c83fcfbd6c68236ad50ec65a16ff483293c10168b6675b06","0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000007","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[338,478],"10"],"treeIndex":16,"claimer":"0x0000000000000000000000000000000000000007","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[338,478],"chainId":10,"proof":["0xe29cd828b01d9344784ea8bb5260653ed92482e701b447a511523d591b5d6adf","0x0b1e75629bd7f97ca24c9ff168b35c9ba4606526effa4630da6cf2284970ec0e","0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000008","0",["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[124],"10"],"treeIndex":23,"claimer":"0x0000000000000000000000000000000000000008","periodId":0,"rewardTokens":["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[124],"chainId":10,"proof":["0x521a3da94e5ddd44bb4bda4c89d4817b5989d6f885cb95f8ea1e76cfe9fb30c4","0x4695308a1aa494e8682dc245f0dea7262cc35466cb90fbb3e5259ad7dc9cb8e1","0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000009","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[592,569],"10"],"treeIndex":21,"claimer":"0x0000000000000000000000000000000000000009","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[592,569],"chainId":10,"proof":["0x77d33811d82964e32e31ef20f16a306cf47fa4773c98f8eb362c188603a0af47","0x254342999dc03db86047e44af685b068503e22e89aa9d49ed7c5f44709d2c760","0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000010","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],[760],"10"],"treeIndex":18,"claimer":"0x0000000000000000000000000000000000000010","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"],"amountsClaimed":[760],"chainId":10,"proof":["0xa17723f943c9137dc1f8f52f196fa50e4e28e2206c7cbd70eccb8a091dbdd65a","0x4f5d8ba2e76551ee3775748675e1b1f1cb0d62f48cd3c0bcce18e10c0f29d06b","0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000011","0",["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[222],"10"],"treeIndex":15,"claimer":"0x0000000000000000000000000000000000000011","periodId":0,"rewardTokens":["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[222],"chainId":10,"proof":["0xcbfe8888e82b42ea19747fc291d4e4537fbab86fa39911bb2da754f6f2dbf62c","0x0b1e75629bd7f97ca24c9ff168b35c9ba4606526effa4630da6cf2284970ec0e","0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000012","0",["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[718],"10"],"treeIndex":27,"claimer":"0x0000000000000000000000000000000000000012","periodId":0,"rewardTokens":["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[718],"chainId":10,"proof":["0x1564863cdc09aa5711f8371a9581137e024926df0cefd1576312a762f60eea37","0x86d2c6bde65936088a2de715a91572483d768fd33f4e015840ffd9abadb3fe64","0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000013","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[427,485],"10"],"treeIndex":25,"claimer":"0x0000000000000000000000000000000000000013","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[427,485],"chainId":10,"proof":["0x32efe54d227590f9b3e1a17c3c1b3a3b7d0345b98009763407a60aa79a54c4ae","0xff94e02aab1c3069c83fcfbd6c68236ad50ec65a16ff483293c10168b6675b06","0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]},{"value":["0x0000000000000000000000000000000000000014","0",["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[710,629],"10"],"treeIndex":17,"claimer":"0x0000000000000000000000000000000000000014","periodId":0,"rewardTokens":["0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[710,629],"chainId":10,"proof":["0xa0a4e1da8fda7a183dbca259cc8867b6e0c50720f9243c50f64540db38ae1e27","0x4f5d8ba2e76551ee3775748675e1b1f1cb0d62f48cd3c0bcce18e10c0f29d06b","0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000015","0",["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[244],"10"],"treeIndex":20,"claimer":"0x0000000000000000000000000000000000000015","periodId":0,"rewardTokens":["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[244],"chainId":10,"proof":["0x9f0d58715f595ea789c60e04795561517ec5b450f840a428309fb424cdde2592","0xa837503c418f44384e743b3c3c95a7dcf1c6db0ab0a233836964d6b6a7c0a362","0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661","0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a"]},{"value":["0x0000000000000000000000000000000000000016","0",["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],[440],"10"],"treeIndex":29,"claimer":"0x0000000000000000000000000000000000000016","periodId":0,"rewardTokens":["0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"],"amountsClaimed":[440],"chainId":10,"proof":["0x0b751b36d8be0ad85ed25c955e511e1e33aab0b81cd529cd9438e51d306b9e83","0x397b4c8e1056529a0dce615c97818b91503bfe3f676029c23aae119e9563d306","0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811","0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f"]}],"leafEncoding":["address","uint256","address[]","uint256[]","uint256"]} \ No newline at end of file +{ + "format": "standard-v1", + "tree": [ + "0xf5d9e300f214ac7c9a21a9be4c88db8ac3af824a60e0c55591a472dcd84c785c", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a", + "0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661", + "0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a", + "0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811", + "0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86", + "0x4f5d8ba2e76551ee3775748675e1b1f1cb0d62f48cd3c0bcce18e10c0f29d06b", + "0x0b1e75629bd7f97ca24c9ff168b35c9ba4606526effa4630da6cf2284970ec0e", + "0x254342999dc03db86047e44af685b068503e22e89aa9d49ed7c5f44709d2c760", + "0xa837503c418f44384e743b3c3c95a7dcf1c6db0ab0a233836964d6b6a7c0a362", + "0xff94e02aab1c3069c83fcfbd6c68236ad50ec65a16ff483293c10168b6675b06", + "0x4695308a1aa494e8682dc245f0dea7262cc35466cb90fbb3e5259ad7dc9cb8e1", + "0x397b4c8e1056529a0dce615c97818b91503bfe3f676029c23aae119e9563d306", + "0x86d2c6bde65936088a2de715a91572483d768fd33f4e015840ffd9abadb3fe64", + "0xe29cd828b01d9344784ea8bb5260653ed92482e701b447a511523d591b5d6adf", + "0xcbfe8888e82b42ea19747fc291d4e4537fbab86fa39911bb2da754f6f2dbf62c", + "0xa17723f943c9137dc1f8f52f196fa50e4e28e2206c7cbd70eccb8a091dbdd65a", + "0xa0a4e1da8fda7a183dbca259cc8867b6e0c50720f9243c50f64540db38ae1e27", + "0x9f0d58715f595ea789c60e04795561517ec5b450f840a428309fb424cdde2592", + "0x92046102722724a412fe22d1c6a4d590f9111a84e9cd6f83ff2a6feacaf70657", + "0x86673d8dce3b7645e0e5ba850fa958df2db47155ebe2acb0ea84411244c4ec18", + "0x77d33811d82964e32e31ef20f16a306cf47fa4773c98f8eb362c188603a0af47", + "0x534d56782e061c5b0de0c627efa79ec4b009300bd040230bd419b9ca65dc5798", + "0x521a3da94e5ddd44bb4bda4c89d4817b5989d6f885cb95f8ea1e76cfe9fb30c4", + "0x4fe6a52dd253031af45c16da282fb387262b30e3a1ca69fc9f2a6f1195759fb8", + "0x32efe54d227590f9b3e1a17c3c1b3a3b7d0345b98009763407a60aa79a54c4ae", + "0x171340b2fa1ee96d38dab925c60a34643c7ac46f73432318e29a9ba74ea045ec", + "0x1564863cdc09aa5711f8371a9581137e024926df0cefd1576312a762f60eea37", + "0x102725ef346cfe747ae39fb88978e1dcc1e2e936a9895b4d1ef51876680b83c0", + "0x0b751b36d8be0ad85ed25c955e511e1e33aab0b81cd529cd9438e51d306b9e83" + ], + "values": [ + { + "value": [ + "0x0000000000000000000000000000000000000001", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + [ + 644 + ], + "10" + ], + "treeIndex": 30, + "claimer": "0x0000000000000000000000000000000000000001", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + "amountsClaimed": [ + 644 + ], + "chainId": 10, + "proof": [ + "0x102725ef346cfe747ae39fb88978e1dcc1e2e936a9895b4d1ef51876680b83c0", + "0x397b4c8e1056529a0dce615c97818b91503bfe3f676029c23aae119e9563d306", + "0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000002", + "0", + [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 946 + ], + "10" + ], + "treeIndex": 24, + "claimer": "0x0000000000000000000000000000000000000002", + "periodId": 0, + "rewardTokens": [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 946 + ], + "chainId": 10, + "proof": [ + "0x534d56782e061c5b0de0c627efa79ec4b009300bd040230bd419b9ca65dc5798", + "0x4695308a1aa494e8682dc245f0dea7262cc35466cb90fbb3e5259ad7dc9cb8e1", + "0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000003", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 760, + 215 + ], + "10" + ], + "treeIndex": 22, + "claimer": "0x0000000000000000000000000000000000000003", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 760, + 215 + ], + "chainId": 10, + "proof": [ + "0x86673d8dce3b7645e0e5ba850fa958df2db47155ebe2acb0ea84411244c4ec18", + "0x254342999dc03db86047e44af685b068503e22e89aa9d49ed7c5f44709d2c760", + "0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000004", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + [ + 124 + ], + "10" + ], + "treeIndex": 28, + "claimer": "0x0000000000000000000000000000000000000004", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + "amountsClaimed": [ + 124 + ], + "chainId": 10, + "proof": [ + "0x171340b2fa1ee96d38dab925c60a34643c7ac46f73432318e29a9ba74ea045ec", + "0x86d2c6bde65936088a2de715a91572483d768fd33f4e015840ffd9abadb3fe64", + "0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000005", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + [ + 529 + ], + "10" + ], + "treeIndex": 19, + "claimer": "0x0000000000000000000000000000000000000005", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + "amountsClaimed": [ + 529 + ], + "chainId": 10, + "proof": [ + "0x92046102722724a412fe22d1c6a4d590f9111a84e9cd6f83ff2a6feacaf70657", + "0xa837503c418f44384e743b3c3c95a7dcf1c6db0ab0a233836964d6b6a7c0a362", + "0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000006", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + [ + 465 + ], + "10" + ], + "treeIndex": 26, + "claimer": "0x0000000000000000000000000000000000000006", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + "amountsClaimed": [ + 465 + ], + "chainId": 10, + "proof": [ + "0x4fe6a52dd253031af45c16da282fb387262b30e3a1ca69fc9f2a6f1195759fb8", + "0xff94e02aab1c3069c83fcfbd6c68236ad50ec65a16ff483293c10168b6675b06", + "0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000007", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 338, + 478 + ], + "10" + ], + "treeIndex": 16, + "claimer": "0x0000000000000000000000000000000000000007", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 338, + 478 + ], + "chainId": 10, + "proof": [ + "0xe29cd828b01d9344784ea8bb5260653ed92482e701b447a511523d591b5d6adf", + "0x0b1e75629bd7f97ca24c9ff168b35c9ba4606526effa4630da6cf2284970ec0e", + "0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000008", + "0", + [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 124 + ], + "10" + ], + "treeIndex": 23, + "claimer": "0x0000000000000000000000000000000000000008", + "periodId": 0, + "rewardTokens": [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 124 + ], + "chainId": 10, + "proof": [ + "0x521a3da94e5ddd44bb4bda4c89d4817b5989d6f885cb95f8ea1e76cfe9fb30c4", + "0x4695308a1aa494e8682dc245f0dea7262cc35466cb90fbb3e5259ad7dc9cb8e1", + "0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000009", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 592, + 569 + ], + "10" + ], + "treeIndex": 21, + "claimer": "0x0000000000000000000000000000000000000009", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 592, + 569 + ], + "chainId": 10, + "proof": [ + "0x77d33811d82964e32e31ef20f16a306cf47fa4773c98f8eb362c188603a0af47", + "0x254342999dc03db86047e44af685b068503e22e89aa9d49ed7c5f44709d2c760", + "0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000010", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + [ + 760 + ], + "10" + ], + "treeIndex": 18, + "claimer": "0x0000000000000000000000000000000000000010", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + ], + "amountsClaimed": [ + 760 + ], + "chainId": 10, + "proof": [ + "0xa17723f943c9137dc1f8f52f196fa50e4e28e2206c7cbd70eccb8a091dbdd65a", + "0x4f5d8ba2e76551ee3775748675e1b1f1cb0d62f48cd3c0bcce18e10c0f29d06b", + "0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000011", + "0", + [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 222 + ], + "10" + ], + "treeIndex": 15, + "claimer": "0x0000000000000000000000000000000000000011", + "periodId": 0, + "rewardTokens": [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 222 + ], + "chainId": 10, + "proof": [ + "0xcbfe8888e82b42ea19747fc291d4e4537fbab86fa39911bb2da754f6f2dbf62c", + "0x0b1e75629bd7f97ca24c9ff168b35c9ba4606526effa4630da6cf2284970ec0e", + "0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000012", + "0", + [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 718 + ], + "10" + ], + "treeIndex": 27, + "claimer": "0x0000000000000000000000000000000000000012", + "periodId": 0, + "rewardTokens": [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 718 + ], + "chainId": 10, + "proof": [ + "0x1564863cdc09aa5711f8371a9581137e024926df0cefd1576312a762f60eea37", + "0x86d2c6bde65936088a2de715a91572483d768fd33f4e015840ffd9abadb3fe64", + "0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000013", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 427, + 485 + ], + "10" + ], + "treeIndex": 25, + "claimer": "0x0000000000000000000000000000000000000013", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 427, + 485 + ], + "chainId": 10, + "proof": [ + "0x32efe54d227590f9b3e1a17c3c1b3a3b7d0345b98009763407a60aa79a54c4ae", + "0xff94e02aab1c3069c83fcfbd6c68236ad50ec65a16ff483293c10168b6675b06", + "0x0a59dca9deda3dd8d9d04ad690836f6242a563d62eef21f6f0438e73afb3bb86", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000014", + "0", + [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 710, + 629 + ], + "10" + ], + "treeIndex": 17, + "claimer": "0x0000000000000000000000000000000000000014", + "periodId": 0, + "rewardTokens": [ + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 710, + 629 + ], + "chainId": 10, + "proof": [ + "0xa0a4e1da8fda7a183dbca259cc8867b6e0c50720f9243c50f64540db38ae1e27", + "0x4f5d8ba2e76551ee3775748675e1b1f1cb0d62f48cd3c0bcce18e10c0f29d06b", + "0x5a0f0a1a04ed97bc0ab42e8547b00a5800201c49e4d734eaf610f0ef24fb798a", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000015", + "0", + [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 244 + ], + "10" + ], + "treeIndex": 20, + "claimer": "0x0000000000000000000000000000000000000015", + "periodId": 0, + "rewardTokens": [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 244 + ], + "chainId": 10, + "proof": [ + "0x9f0d58715f595ea789c60e04795561517ec5b450f840a428309fb424cdde2592", + "0xa837503c418f44384e743b3c3c95a7dcf1c6db0ab0a233836964d6b6a7c0a362", + "0x91b5fce30c60d8aa860936cef46379b544e958896e4963ae9d81b953a6eef661", + "0x6e288209cda02f6c68ed901719924e23f3f504e4fb3c1bc8dc12db30e12d480a" + ] + }, + { + "value": [ + "0x0000000000000000000000000000000000000016", + "0", + [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + [ + 440 + ], + "10" + ], + "treeIndex": 29, + "claimer": "0x0000000000000000000000000000000000000016", + "periodId": 0, + "rewardTokens": [ + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + ], + "amountsClaimed": [ + 440 + ], + "chainId": 10, + "proof": [ + "0x0b751b36d8be0ad85ed25c955e511e1e33aab0b81cd529cd9438e51d306b9e83", + "0x397b4c8e1056529a0dce615c97818b91503bfe3f676029c23aae119e9563d306", + "0xa2dc330755a22a746bff5350a1dd4906c53ad5ed9f0a4b50c4cceb25cd773811", + "0xe91dbeb59620367dc7cab0da75891eb1b81b0f9c2c6387924acc0014eb0adc5f" + ] + } + ], + "leafEncoding": [ + "address", + "uint256", + "address[]", + "uint256[]", + "uint256" + ] +} \ No newline at end of file