@across-protocol/contracts 5.0.11-alpha.4 → 5.0.12-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
  2. package/contracts/handlers/MulticallHandler.sol +7 -1
  3. package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
  4. package/contracts/libraries/SafeTransferERC20.sol +21 -0
  5. package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
  6. package/contracts/libraries/TronTransferLib.sol +42 -0
  7. package/contracts/periphery/SpokePoolPeriphery.sol +4 -0
  8. package/contracts/periphery/counterfactual/CounterfactualDepositSpokePool.sol +7 -3
  9. package/contracts/periphery/counterfactual/CounterfactualDepositSpokePoolTr.sol +36 -0
  10. package/contracts/periphery/counterfactual/WithdrawImplementation.sol +3 -6
  11. package/contracts/periphery/counterfactual/WithdrawImplementationTron.sol +22 -0
  12. package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
  13. package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
  14. package/contracts/sp1-helios/SP1AutoVerifier.sol +1 -1
  15. package/contracts/spoke-pools/SpokePool.sol +11 -6
  16. package/contracts/spoke-pools/Tron_SpokePool.sol +65 -0
  17. package/contracts/test/MockCCTP.sol +10 -0
  18. package/contracts/test/MockTronUSDT.sol +36 -0
  19. package/contracts/tron/TronCounterfactualImports.sol +4 -3
  20. package/contracts/tron/TronImports.sol +2 -2
  21. package/contracts/tron/TronPeripheryImports.sol +1 -1
  22. package/dist/broadcast/deployed-addresses.json +186 -121
  23. package/dist/evm/artifacts/AcrossMessageHandlerMock.sol/AcrossMessageHandlerMock.json +1 -1
  24. package/dist/evm/artifacts/AdminWithdrawManager.sol/AdminWithdrawManager.json +1 -1
  25. package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  26. package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  27. package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  28. package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  29. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  30. package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  31. package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
  32. package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  33. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  34. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  35. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  36. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  37. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  38. package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  39. package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  40. package/dist/evm/artifacts/CounterfactualDepositSpokePool.sol/CounterfactualDepositSpokePool.json +1 -1
  41. package/dist/evm/artifacts/CounterfactualDepositSpokePoolTr.sol/CounterfactualDepositSpokePoolTr.json +1 -0
  42. package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  43. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  44. package/dist/evm/artifacts/Ethereum_SpokePool.sol/Ethereum_SpokePool.json +1 -1
  45. package/dist/evm/artifacts/HubPoolTestBase.sol/MockAddressWhitelist.json +1 -1
  46. package/dist/evm/artifacts/HubPoolTestBase.sol/MockFinder.json +1 -1
  47. package/dist/evm/artifacts/HubPoolTestBase.sol/MockIdentifierWhitelist.json +1 -1
  48. package/dist/evm/artifacts/HubPoolTestBase.sol/MockLpTokenFactory.json +1 -1
  49. package/dist/evm/artifacts/HubPoolTestBase.sol/MockOptimisticOracle.json +1 -1
  50. package/dist/evm/artifacts/HubPoolTestBase.sol/MockStore.json +1 -1
  51. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  52. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  53. package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  54. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  55. package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  56. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  57. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  58. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  59. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  60. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
  61. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
  62. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
  63. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
  64. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  65. package/dist/evm/artifacts/MockSpokePool.sol/MockSpokePool.json +1 -1
  66. package/dist/evm/artifacts/MockSpokePoolV2.sol/MockSpokePoolV2.json +1 -1
  67. package/dist/evm/artifacts/MockTronUSDT.sol/MockTronUSDT.json +1 -0
  68. package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  69. package/dist/evm/artifacts/MulticallHandler.sol/MulticallHandler.json +1 -1
  70. package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
  71. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  72. package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  73. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  74. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  75. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  76. package/dist/evm/artifacts/PermissionedMulticallHandler.sol/PermissionedMulticallHandler.json +1 -1
  77. package/dist/evm/artifacts/PolygonZkEVM_SpokePool.sol/PolygonZkEVM_SpokePool.json +1 -1
  78. package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  79. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  80. package/dist/evm/artifacts/SP1AutoVerifier.sol/SP1AutoVerifier.json +1 -1
  81. package/dist/evm/artifacts/Scroll_SpokePool.sol/Scroll_SpokePool.json +1 -1
  82. package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  83. package/dist/evm/artifacts/SpokePool.sol/SpokePool.json +1 -1
  84. package/dist/evm/artifacts/SpokePoolPeriphery.sol/SpokePoolPeriphery.json +1 -1
  85. package/dist/evm/artifacts/SpokePoolPeriphery.sol/SwapProxy.json +1 -1
  86. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  87. package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  88. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  89. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  90. package/dist/evm/artifacts/TronTransferLib.sol/TronTransferLib.json +1 -0
  91. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -0
  92. package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  93. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  94. package/dist/evm/artifacts/WithdrawImplementation.sol/WithdrawImplementation.json +1 -1
  95. package/dist/evm/artifacts/WithdrawImplementationTron.sol/WithdrawImplementationTron.json +1 -0
  96. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  97. package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  98. package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  99. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  100. package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  101. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  102. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  103. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  104. package/package.json +3 -3
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_wrappedNativeToken","type":"address","internalType":"contract WETH9Interface"},{"name":"_destinationCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l2Gateway","type":"address","internalType":"address"},{"name":"_tokenRecipient","type":"address","internalType":"address"},{"name":"_spokePool","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"L2_TOKEN_GATEWAY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WRAPPED_NATIVE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"__WithdrawalHelper_init","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"spokePool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"view"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawToken","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amountToReturn","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"_crossDomainAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]}],"bytecode":"0x6101c0806040523461029d5760e081611d088038038091610020828561034a565b83398101031261029d5780516001600160a01b038116810361029d5760208201516001600160a01b0381169290919083830361029d576040810151916001600160a01b038316830361029d5760608201519363ffffffff8516850361029d5761008b6080840161036d565b9160c061009a60a0860161036d565b940151966001600160a01b0388169687890361029d575f93849360a05260c052608052604051602081019063011a412160e61b8252600481526100de60248261034a565b51915afa3d15610343573d6001600160401b03811161032f576040519061010f601f8201601f19166020018361034a565b81523d5f602083013e5b81610323575b816102ed575b5060e05230610100526101605261014052610120525f549060ff8260081c1661029d576004928260ff8060209516036102b4575b506101805260405163e322921160e01b815292839182905afa9081156102a9575f9161026b575b506101a05260405161198690816103828239608051818181610a57015281816113c90152611471015260a051818181610350015281816106b501526112b0015260c05181818161062c01528181610af701526112d9015260e051818181610a92015261136f0152610100518181816107c9015281816109eb0152610e760152610120518181816101e3015281816106f8015261155a0152610140518181816102a5015281816103870152818161049001528181610521015261073b0152610160518161077e0152610180518181816101880152610c2301526101a05181818161027d0152610de60152f35b90506020813d6020116102a1575b816102866020938361034a565b8101031261029d576102979061036d565b5f610180565b5f80fd5b3d9150610279565b6040513d5f823e3d90fd5b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024988360405160ff8152a15f610159565b9050602081519101519060208110610312575b506001600160a01b031615155f610125565b5f199060200360031b1b165f610300565b8051602014915061011f565b634e487b7160e01b5f52604160045260245ffd5b6060610119565b601f909101601f19168101906001600160401b0382119082101761032f57604052565b51906001600160a01b038216820361029d5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301e336671461013957806311eac855146101345780631b3f8c5e1461012f578063203ddfdf1461012a57806327679177146101255780633659cfe6146101205780634f1ef2861461011b5780635285e0581461011657806352d1902d146101115780636e4009831461010c578063775c0d0314610107578063927ede2d146101025780639748cf7c146100fd578063ac9650d8146100f8578063afdac3d6146100f3578063c42a8dbd146100ee578063c4d66de8146100e95763e32292110361000e57610dc7565b610cd4565b610c47565b610c04565b610b92565b610ad8565b610ab7565b610a7b565b610a3b565b6109d1565b6109ab565b610930565b6107a2565b61075f565b61071c565b6106d9565b610696565b610153565b6001600160a01b0381160361014f57565b5f80fd5b3461014f57606036600319011261014f5761016f60043561013e565b60243561017b8161013e565b6044356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040519263766e070360e01b8452602084600481855afa93841561032d575f9461065b575b506001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f1461034657509050610216611550565b803b1561014f57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af1801561032d57610332575b507342000000000000000000000000000000000000103b1561014f57604051631474f2a960e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001660248201526044810182905263ffffffff92909216606483015260a060848301525f60a4830181905290829060c49082907342000000000000000000000000000000000000105af1801561032d5761031957005b806103275f610018936108ed565b8061068c565b610e26565b806103275f610340936108ed565b5f61024a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016821480610629575b156103ab5750505061001891507f00000000000000000000000000000000000000000000000000000000000000006112a4565b60405162b27a4360e81b81526001600160a01b0382166004820152929392602081602481885afa801561032d576001600160a01b03915f9161060a575b50166105ab576001600160a01b037342000000000000000000000000000000000000105b604051630c5d5f7360e01b81526001600160a01b03841660048201529591169290602090869060249082905afa94851561032d575f9561057a575b506001600160a01b038516156104f5578383610462926111e4565b813b1561014f5760405163540abf7360e01b81526001600160a01b03918216600482015293811660248501527f0000000000000000000000000000000000000000000000000000000000000000166044840152606483019190915263ffffffff909216608482015260c060a48201525f60c482018190529091829081838160e481015b03925af1801561032d5761031957005b509250809391933b1561014f57604051631474f2a960e31b81526001600160a01b0393841660048201527f00000000000000000000000000000000000000000000000000000000000000009093166024840152604483019390935263ffffffff16606482015260a060848201525f60a482018190529091829081838160c481016104e5565b61059d91955060203d6020116105a4575b61059581836108ed565b810190610e31565b935f610447565b503d61058b565b60405162b27a4360e81b81526001600160a01b0382166004820152602081602481885afa801561032d576001600160a01b03915f916105eb575b5061040c565b610604915060203d6020116105a45761059581836108ed565b5f6105e5565b610623915060203d6020116105a45761059581836108ed565b5f6103e8565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610378565b61067e91945060203d602011610685575b61067681836108ed565b810190610e0a565b925f6101cd565b503d61066c565b5f91031261014f57565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f576004356107bf8161013e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f916108ab575b506001600160a01b036108836108776065546001600160a01b031690565b6001600160a01b031690565b91160361089c5761001890610896610e50565b906115b8565b6336a816d960e01b5f5260045ffd5b6108c4915060203d6020116105a45761059581836108ed565b5f610859565b63253a6fc960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761090f57604052565b6108d9565b67ffffffffffffffff811161090f57601f01601f191660200190565b604036600319011261014f576004356109488161013e565b6024359067ffffffffffffffff821161014f573660238301121561014f5781600401359061097582610914565b9161098360405193846108ed565b808352366024828601011161014f576020815f92602461001897018387013784010152610e6b565b3461014f575f36600319011261014f5760206001600160a01b0360655416604051908152f35b3461014f575f36600319011261014f576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361014f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b3461014f575f36600319011261014f57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b3461014f575f36600319011261014f5760206040516007602160991b018152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b4d57505050505090565b909192939460208080600193603f19868203018752818a518051918291828552018484015e5f828201840152601f01601f191601019701959491909101920190610b3e565b3461014f57602036600319011261014f5760043567ffffffffffffffff811161014f573660238201121561014f5780600401359067ffffffffffffffff821161014f573660248360051b8301011161014f57610c00916024610bf492016110c4565b60405191829182610b1b565b0390f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f57600435610c648161013e565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2005b63ba97b39d60e01b5f5260045ffd5b3461014f57602036600319011261014f57600435610cf18161013e565b610d3f5f5491610d25610d0f610d0b8560ff9060081c1690565b1590565b80948195610db9575b8115610d99575b50610e49565b82610d36600160ff195f5416175f55565b610d825761114e565b610d4557005b610d5361ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610d9461010061ff00195f5416175f55565b61114e565b303b15915081610dab575b505f610d1f565b60ff1660011490505f610da4565b600160ff8216109150610d18565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9081602091031261014f575163ffffffff8116810361014f5790565b6040513d5f823e3d90fd5b9081602091031261014f5751610e468161013e565b90565b1561014f57565b60405190610e5f6020836108ed565b5f808352366020840137565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f91610f36575b506001600160a01b03610f246108776065546001600160a01b031690565b91160361089c57610f349161166e565b565b610f4f915060203d6020116105a45761059581836108ed565b5f610f06565b67ffffffffffffffff811161090f5760051b60200190565b90610f7782610f55565b610f8460405191826108ed565b8281528092610f95601f1991610f55565b01905f5b828110610fa557505050565b806060602080938501015201610f99565b634e487b7160e01b5f52603260045260245ffd5b919081101561100c5760051b81013590601e198136030182121561014f57019081359167ffffffffffffffff831161014f57602001823603811361014f579190565b610fb6565b908092918237015f815290565b3d15611048573d9061102f82610914565b9161103d60405193846108ed565b82523d5f602084013e565b606090565b60208183031261014f5780519067ffffffffffffffff821161014f570181601f8201121561014f5780519061108182610914565b9261108f60405194856108ed565b8284526020838301011161014f57815f9260208093018386015e8301015290565b805182101561100c5760209160051b010190565b9190916110d083610f6d565b925f5b8181106110df57505050565b5f806110ec838587610fca565b906110fc60405180938193611011565b0390305af461110961101e565b901561112f579060019161111d82886110b0565b5261112881876110b0565b50016110d3565b604481511061014f5780602480600461014f940151830101910161104d565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b9081602091031261014f575190565b634e487b7160e01b5f52601160045260245ffd5b919082018092116111df57565b6111be565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa90811561032d57610f34946112709261123c925f91611275575b506111d2565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836108ed565b611725565b611297915060203d60201161129d575b61128f81836108ed565b8101906111af565b5f611236565b503d611285565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926113058385846111e4565b6040516332dd704760e21b815291602083600481885afa92831561032d575f93611526575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa92831561032d575f93611505575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b61139c57505050505050565b838111156114ff57835b851561145b57863b1561014f57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561032d5761144193611447575b506117df565b80611390565b806103275f611455936108ed565b5f61143b565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561032d57611441936114d157506117df565b6114f19060203d81116114f8575b6114e981836108ed565b8101906117bf565b505f61143b565b503d6114df565b806113a6565b61151f91935060203d60201161129d5761128f81836108ed565b915f61136a565b6001600160a01b039193506115499060203d6020116105a45761059581836108ed565b929061132a565b4761155757565b477f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561014f575f90600460405180948193630d0e30db60e41b83525af1801561032d576115ae575b50565b5f610f34916108ed565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115ec57610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161164d575b5061161c575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34915f916117ec565b61166791925060203d60201161129d5761128f81836108ed565b905f611613565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116a257610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611704575b506116d2575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34916001916117ec565b61171e91925060203d60201161129d5761128f81836108ed565b905f6116c9565b906001600160a01b0361178692165f80604051936117446040866108ed565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161178061101e565b91611925565b805190811591821561179c575b50501561014f57565b819250906020918101031261014f5760200151801515810361014f575f80611793565b9081602091031261014f575167ffffffffffffffff8116810361014f5790565b919082039182116111df57565b916117f6836118b7565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916118af575b50611839575050565b6115ab915f806040519361184e6060866108ed565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af461178061101e565b90505f611830565b803b1561014f576001600160a01b031673ffffffffffffffffffffffffffffffffffffffff197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9192501561194157815115611938575090565b3b1561014f5790565b50805190811561014f57602001fdfea26469706673582212205f793dd8ebc340534104acb95d9baf25c2e884551b279b5d632249be729b669764736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_wrappedNativeToken","type":"address","internalType":"contract WETH9Interface"},{"name":"_destinationCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l2Gateway","type":"address","internalType":"address"},{"name":"_tokenRecipient","type":"address","internalType":"address"},{"name":"_spokePool","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"L2_TOKEN_GATEWAY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WRAPPED_NATIVE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"__WithdrawalHelper_init","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"spokePool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"view"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawToken","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amountToReturn","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"_crossDomainAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]}],"bytecode":"0x6101c0806040523461029d5760e081611d088038038091610020828561034a565b83398101031261029d5780516001600160a01b038116810361029d5760208201516001600160a01b0381169290919083830361029d576040810151916001600160a01b038316830361029d5760608201519363ffffffff8516850361029d5761008b6080840161036d565b9160c061009a60a0860161036d565b940151966001600160a01b0388169687890361029d575f93849360a05260c052608052604051602081019063011a412160e61b8252600481526100de60248261034a565b51915afa3d15610343573d6001600160401b03811161032f576040519061010f601f8201601f19166020018361034a565b81523d5f602083013e5b81610323575b816102ed575b5060e05230610100526101605261014052610120525f549060ff8260081c1661029d576004928260ff8060209516036102b4575b506101805260405163e322921160e01b815292839182905afa9081156102a9575f9161026b575b506101a05260405161198690816103828239608051818181610a57015281816113c90152611471015260a051818181610350015281816106b501526112b0015260c05181818161062c01528181610af701526112d9015260e051818181610a92015261136f0152610100518181816107c9015281816109eb0152610e760152610120518181816101e3015281816106f8015261155a0152610140518181816102a5015281816103870152818161049001528181610521015261073b0152610160518161077e0152610180518181816101880152610c2301526101a05181818161027d0152610de60152f35b90506020813d6020116102a1575b816102866020938361034a565b8101031261029d576102979061036d565b5f610180565b5f80fd5b3d9150610279565b6040513d5f823e3d90fd5b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024988360405160ff8152a15f610159565b9050602081519101519060208110610312575b506001600160a01b031615155f610125565b5f199060200360031b1b165f610300565b8051602014915061011f565b634e487b7160e01b5f52604160045260245ffd5b6060610119565b601f909101601f19168101906001600160401b0382119082101761032f57604052565b51906001600160a01b038216820361029d5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301e336671461013957806311eac855146101345780631b3f8c5e1461012f578063203ddfdf1461012a57806327679177146101255780633659cfe6146101205780634f1ef2861461011b5780635285e0581461011657806352d1902d146101115780636e4009831461010c578063775c0d0314610107578063927ede2d146101025780639748cf7c146100fd578063ac9650d8146100f8578063afdac3d6146100f3578063c42a8dbd146100ee578063c4d66de8146100e95763e32292110361000e57610dc7565b610cd4565b610c47565b610c04565b610b92565b610ad8565b610ab7565b610a7b565b610a3b565b6109d1565b6109ab565b610930565b6107a2565b61075f565b61071c565b6106d9565b610696565b610153565b6001600160a01b0381160361014f57565b5f80fd5b3461014f57606036600319011261014f5761016f60043561013e565b60243561017b8161013e565b6044356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040519263766e070360e01b8452602084600481855afa93841561032d575f9461065b575b506001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f1461034657509050610216611550565b803b1561014f57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af1801561032d57610332575b507342000000000000000000000000000000000000103b1561014f57604051631474f2a960e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001660248201526044810182905263ffffffff92909216606483015260a060848301525f60a4830181905290829060c49082907342000000000000000000000000000000000000105af1801561032d5761031957005b806103275f610018936108ed565b8061068c565b610e26565b806103275f610340936108ed565b5f61024a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016821480610629575b156103ab5750505061001891507f00000000000000000000000000000000000000000000000000000000000000006112a4565b60405162b27a4360e81b81526001600160a01b0382166004820152929392602081602481885afa801561032d576001600160a01b03915f9161060a575b50166105ab576001600160a01b037342000000000000000000000000000000000000105b604051630c5d5f7360e01b81526001600160a01b03841660048201529591169290602090869060249082905afa94851561032d575f9561057a575b506001600160a01b038516156104f5578383610462926111e4565b813b1561014f5760405163540abf7360e01b81526001600160a01b03918216600482015293811660248501527f0000000000000000000000000000000000000000000000000000000000000000166044840152606483019190915263ffffffff909216608482015260c060a48201525f60c482018190529091829081838160e481015b03925af1801561032d5761031957005b509250809391933b1561014f57604051631474f2a960e31b81526001600160a01b0393841660048201527f00000000000000000000000000000000000000000000000000000000000000009093166024840152604483019390935263ffffffff16606482015260a060848201525f60a482018190529091829081838160c481016104e5565b61059d91955060203d6020116105a4575b61059581836108ed565b810190610e31565b935f610447565b503d61058b565b60405162b27a4360e81b81526001600160a01b0382166004820152602081602481885afa801561032d576001600160a01b03915f916105eb575b5061040c565b610604915060203d6020116105a45761059581836108ed565b5f6105e5565b610623915060203d6020116105a45761059581836108ed565b5f6103e8565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610378565b61067e91945060203d602011610685575b61067681836108ed565b810190610e0a565b925f6101cd565b503d61066c565b5f91031261014f57565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f576004356107bf8161013e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f916108ab575b506001600160a01b036108836108776065546001600160a01b031690565b6001600160a01b031690565b91160361089c5761001890610896610e50565b906115b8565b6336a816d960e01b5f5260045ffd5b6108c4915060203d6020116105a45761059581836108ed565b5f610859565b63253a6fc960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761090f57604052565b6108d9565b67ffffffffffffffff811161090f57601f01601f191660200190565b604036600319011261014f576004356109488161013e565b6024359067ffffffffffffffff821161014f573660238301121561014f5781600401359061097582610914565b9161098360405193846108ed565b808352366024828601011161014f576020815f92602461001897018387013784010152610e6b565b3461014f575f36600319011261014f5760206001600160a01b0360655416604051908152f35b3461014f575f36600319011261014f576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361014f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b3461014f575f36600319011261014f57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b3461014f575f36600319011261014f5760206040516007602160991b018152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b4d57505050505090565b909192939460208080600193603f19868203018752818a518051918291828552018484015e5f828201840152601f01601f191601019701959491909101920190610b3e565b3461014f57602036600319011261014f5760043567ffffffffffffffff811161014f573660238201121561014f5780600401359067ffffffffffffffff821161014f573660248360051b8301011161014f57610c00916024610bf492016110c4565b60405191829182610b1b565b0390f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f57600435610c648161013e565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2005b63ba97b39d60e01b5f5260045ffd5b3461014f57602036600319011261014f57600435610cf18161013e565b610d3f5f5491610d25610d0f610d0b8560ff9060081c1690565b1590565b80948195610db9575b8115610d99575b50610e49565b82610d36600160ff195f5416175f55565b610d825761114e565b610d4557005b610d5361ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610d9461010061ff00195f5416175f55565b61114e565b303b15915081610dab575b505f610d1f565b60ff1660011490505f610da4565b600160ff8216109150610d18565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9081602091031261014f575163ffffffff8116810361014f5790565b6040513d5f823e3d90fd5b9081602091031261014f5751610e468161013e565b90565b1561014f57565b60405190610e5f6020836108ed565b5f808352366020840137565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f91610f36575b506001600160a01b03610f246108776065546001600160a01b031690565b91160361089c57610f349161166e565b565b610f4f915060203d6020116105a45761059581836108ed565b5f610f06565b67ffffffffffffffff811161090f5760051b60200190565b90610f7782610f55565b610f8460405191826108ed565b8281528092610f95601f1991610f55565b01905f5b828110610fa557505050565b806060602080938501015201610f99565b634e487b7160e01b5f52603260045260245ffd5b919081101561100c5760051b81013590601e198136030182121561014f57019081359167ffffffffffffffff831161014f57602001823603811361014f579190565b610fb6565b908092918237015f815290565b3d15611048573d9061102f82610914565b9161103d60405193846108ed565b82523d5f602084013e565b606090565b60208183031261014f5780519067ffffffffffffffff821161014f570181601f8201121561014f5780519061108182610914565b9261108f60405194856108ed565b8284526020838301011161014f57815f9260208093018386015e8301015290565b805182101561100c5760209160051b010190565b9190916110d083610f6d565b925f5b8181106110df57505050565b5f806110ec838587610fca565b906110fc60405180938193611011565b0390305af461110961101e565b901561112f579060019161111d82886110b0565b5261112881876110b0565b50016110d3565b604481511061014f5780602480600461014f940151830101910161104d565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b9081602091031261014f575190565b634e487b7160e01b5f52601160045260245ffd5b919082018092116111df57565b6111be565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa90811561032d57610f34946112709261123c925f91611275575b506111d2565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836108ed565b611725565b611297915060203d60201161129d575b61128f81836108ed565b8101906111af565b5f611236565b503d611285565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926113058385846111e4565b6040516332dd704760e21b815291602083600481885afa92831561032d575f93611526575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa92831561032d575f93611505575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b61139c57505050505050565b838111156114ff57835b851561145b57863b1561014f57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561032d5761144193611447575b506117df565b80611390565b806103275f611455936108ed565b5f61143b565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561032d57611441936114d157506117df565b6114f19060203d81116114f8575b6114e981836108ed565b8101906117bf565b505f61143b565b503d6114df565b806113a6565b61151f91935060203d60201161129d5761128f81836108ed565b915f61136a565b6001600160a01b039193506115499060203d6020116105a45761059581836108ed565b929061132a565b4761155757565b477f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561014f575f90600460405180948193630d0e30db60e41b83525af1801561032d576115ae575b50565b5f610f34916108ed565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115ec57610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161164d575b5061161c575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34915f916117ec565b61166791925060203d60201161129d5761128f81836108ed565b905f611613565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116a257610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611704575b506116d2575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34916001916117ec565b61171e91925060203d60201161129d5761128f81836108ed565b905f6116c9565b906001600160a01b0361178692165f80604051936117446040866108ed565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161178061101e565b91611925565b805190811591821561179c575b50501561014f57565b819250906020918101031261014f5760200151801515810361014f575f80611793565b9081602091031261014f575167ffffffffffffffff8116810361014f5790565b919082039182116111df57565b916117f6836118b7565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916118af575b50611839575050565b6115ab915f806040519361184e6060866108ed565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af461178061101e565b90505f611830565b803b1561014f576001600160a01b031673ffffffffffffffffffffffffffffffffffffffff197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9192501561194157815115611938575090565b3b1561014f5790565b50805190811561014f57602001fdfea264697066735822122004d2a64651c6c4e8b8c18e758cb657d37b1982409042c86d352fbea8bed2cd8764736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"admin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"WHITELISTED_CALLER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"attemptCalls","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"drainLeftoverTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"destination","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"handleV3AcrossMessage","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"relayer","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"makeCallWithBalance","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"replacement","type":"tuple[]","internalType":"struct MulticallHandler.Replacement[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"offset","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"CallsFailed","inputs":[{"name":"calls","type":"tuple[]","indexed":false,"internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"fallbackRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DrainedTokens","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CallReverted","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"calls","type":"tuple[]","internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]},{"type":"error","name":"CalldataTooShort","inputs":[{"name":"callDataLength","type":"uint256","internalType":"uint256"},{"name":"offset","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidCall","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"calls","type":"tuple[]","internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]},{"type":"error","name":"NotSelf","inputs":[]},{"type":"error","name":"ReplacementCallFailed","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"}]}],"bytecode":"0x6080346100d957601f61124c38819003918201601f19168301916001600160401b038311848410176100dd578084926020946040528339810103126100d957516001600160a01b038116908190036100d95760015f9081558181525f51602061122c5f395f51905f52602052604090205460ff1615610088575b60405161113a90816100f28239f35b5f8181525f51602061122c5f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a45f610079565b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816301ffc9a7146107f357508063248a9ca3146107c05780632f2ff15d1461070457806336568abe146106cf5780633a5be8cb146105815780635f6ee30c1461054757806391d14854146104fd578063a217fddf146104e3578063a58d50d314610319578063c41e829514610130578063d547741f146100ed5763ef8738d3146100ac575f61000f565b346100e95760403660031901126100e9576100c561085c565b6024356001600160a01b03811681036100e95761001a916100e4610dda565b610df2565b5f80fd5b346100e95760403660031901126100e95761001a60043561010c610846565b9061012b610126825f526001602052600160405f20015490565b610a63565b610aab565b346100e95760803660031901126100e95761014961085c565b60243567ffffffffffffffff81116100e9576101699036906004016108f6565b906064359067ffffffffffffffff82116100e957366023830112156100e957816004013567ffffffffffffffff81116100e9576024830192602436918360061b0101116100e9576101b8610dda565b604435925f5b82811061020d57855f80878784519160208601915af16101dc610a10565b50156101e457005b60405163b3beda7360e01b815260206004820152908190610209906024830190610954565b0390fd5b6001600160a01b03610228610223838686610a3f565b610a4f565b161561031057602460206001600160a01b03610248610223858888610a3f565b16604051928380926370a0823160e01b82523060048301525afa908115610305575f916102d4575b505b602061027f838686610a3f565b0135602081018082116102c05788518082116102ab5750508701602001805190911790526001016101be565b634d3ae48d60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d82116102fd575b816102ee602093836108b8565b810103126100e9575187610270565b3d91506102e1565b6040513d5f823e3d90fd5b47945084610272565b346100e95760203660031901126100e95760043567ffffffffffffffff81116100e957366023820112156100e95780600401356103558161093c565b9161036360405193846108b8565b8183526024602084019260051b820101903682116100e95760248101925b82841061045c5784610391610dda565b80515f5b81811061039e57005b82518110156104485760208160051b840101516020810190815151151580610435575b610419575f918160406001600160a01b0385945116910151915191602083519301915af16103ed610a10565b50156103fb57600101610395565b6040516303918b1160e61b81529283925061020991600484016109f6565b60405163388ddcc360e21b8152806102098786600484016109f6565b506001600160a01b038151163b156103c1565b634e487b7160e01b5f52603260045260245ffd5b833567ffffffffffffffff81116100e9578201606060231982360301126100e9576040519161048a83610888565b60248201356001600160a01b03811681036100e957835260448201359267ffffffffffffffff84116100e9576064602094936104cd8695602436918401016108f6565b8584015201356040820152815201930192610381565b346100e9575f3660031901126100e95760206040515f8152f35b346100e95760403660031901126100e957610516610846565b6004355f5260016020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346100e9575f3660031901126100e95760206040517f69048ea73402a715065a3029b4059a4e97d1461c95fa4fabca1084b5f34f4abe8152f35b346100e95760803660031901126100e95761059a61085c565b6105a2610872565b5060643567ffffffffffffffff81116100e9576105c39036906004016108f6565b335f9081527ff9f8a8d829de1c11fdd691724f182d954bcae2d8f44e7aab584f413f377402bd602052604090205460ff16156106155760025f54146100e95761060f9160025f55610b43565b60015f55005b6100e96020601161062533610f95565b6037836106517f69048ea73402a715065a3029b4059a4e97d1461c95fa4fabca1084b5f34f4abe611037565b6040519586947f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000828701528051918291018587015e8401907f206973206d697373696e6720726f6c652000000000000000000000000000000084830152805192839101604883015e01015f83820152030190601f19820181526108b8565b346100e95760403660031901126100e9576106e8610846565b336001600160a01b038216036100e95761001a90600435610aab565b346100e95760403660031901126100e957600435610720610846565b9061073a610126825f526001602052600160405f20015490565b805f52600160205260405f206001600160a01b0383165f5260205260ff60405f2054161561076457005b805f52600160205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4005b346100e95760203660031901126100e95760206107eb6004355f526001602052600160405f20015490565b604051908152f35b346100e95760203660031901126100e9576004359063ffffffff60e01b82168092036100e957602091637965db0b60e01b8114908115610835575b5015158152f35b6301ffc9a760e01b1490508361082e565b602435906001600160a01b03821682036100e957565b600435906001600160a01b03821682036100e957565b604435906001600160a01b03821682036100e957565b6060810190811067ffffffffffffffff8211176108a457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108a457604052565b67ffffffffffffffff81116108a457601f01601f191660200190565b81601f820112156100e95780359061090d826108da565b9261091b60405194856108b8565b828452602083830101116100e957815f926020809301838601378301015290565b67ffffffffffffffff81116108a45760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b8383106109a357505050505090565b9091929394602080600192601f198582030186528851906001600160a01b0382511681526040806109e1858501516060878601526060850190610954565b93015191015297019301930191939290610994565b604090610a0d939281528160208201520190610978565b90565b3d15610a3a573d90610a21826108da565b91610a2f60405193846108b8565b82523d5f602084013e565b606090565b91908110156104485760061b0190565b356001600160a01b03811681036100e95790565b805f52600160205260405f206001600160a01b0333165f5260205260ff60405f20541615610a8e5750565b602060116100e992603783610651610aa533610f95565b93611037565b805f52600160205260405f206001600160a01b0383165f5260205260ff60405f205416610ad6575050565b805f52600160205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4565b51906001600160a01b03821682036100e957565b815182019160208301905f906020818603126100e95760208101519067ffffffffffffffff82116100e957016040818603126100e957604051926040840184811067ffffffffffffffff8211176108a457604052602082015167ffffffffffffffff81116100e95760209083010181601f820112156100e957805196610bc88861093c565b97610bd6604051998a6108b8565b8089526020808a019160051b840101928484116100e95760208101915b848310610d27575050505050506040610c0f9186855201610b2f565b936001600160a01b0360208401958087521615610cd75750928184610c8e956001600160a01b039451604051610c7081610c62602082019463a58d50d360e01b8652602060248401526044830190610978565b03601f1981018352826108b8565b519082305af1610c7e610a10565b5015610c90575b50511690610df2565b565b517f5296f22c5d0413b66d0bf45c479c4e2ca5b278634bdbd028b48e49502105f966610cce8484511692604051918291602083526020830190610978565b0390a25f610c85565b9350505050303b156100e9575f610d0a916040518093819263a58d50d360e01b8352602060048401526024830190610978565b038183305af1801561030557610d1d5750565b5f610c8e916108b8565b825167ffffffffffffffff81116100e9578201906060828603126100e95760405190610d5282610888565b610d5e60208401610b2f565b8252604083015167ffffffffffffffff81116100e9576020908401019188601f840112156100e957825192610d92846108da565b94610da060405196876108b8565b8486528a602086840101116100e9576020955f8787819882606097018386015e830101528584015201516040820152815201920191610bf3565b303303610de357565b6314e1dbf760e11b5f5260045ffd5b6001600160a01b03168015610f50576040516370a0823160e01b815230600482015291602083602481855afa928315610305575f93610f1c575b5082610e3757505050565b6001600160a01b0316610ebf6040515f806020830163a9059cbb60e01b815285602485015287604485015260448452610e716064856108b8565b60405193610e806040866108b8565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082885af1610eb8610a10565b90856110d9565b8051908115918215610ef9575b5050156100e9577f74d3741ef03417659087d2ec6af11dade8713f9b7f592569d60cf1ea0c9a44555f80a4565b81925090602091810103126100e9576020015180151581036100e9575f80610ecc565b9092506020813d602011610f48575b81610f38602093836108b8565b810103126100e95751915f610e2c565b3d9150610f2b565b50479081610f5c575050565b8147106100e9575f8080936001600160a01b038294165af1610f7c610a10565b50156100e957565b908151811015610448570160200190565b610f9f602a6108da565b90610fad60405192836108b8565b602a8252610fbb602a6108da565b6020830190601f19013682378251156104485760309053815160011015610448576078602183015360295b60018111610ff657506100e95790565b90600f81166010811015610448576f181899199a1a9b1b9c1cb0b131b232b360811b901a6110248385610f84565b5360041c9080156102c0575f1901610fe6565b61104160426108da565b9061104f60405192836108b8565b6042825261105d60426108da565b6020830190601f19013682378251156104485760309053815160011015610448576078602183015360415b6001811161109857506100e95790565b90600f81166010811015610448576f181899199a1a9b1b9c1cb0b131b232b360811b901a6110c68385610f84565b5360041c9080156102c0575f1901611088565b919250156110f5578151156110ec575090565b3b156100e95790565b5080519081156100e957602001fdfea26469706673582212206b5d5634d2ea7c2e215ad0326eafefe0d04da4afa5f58466baa23230efedfd7164736f6c634300081e0033a6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"admin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"WHITELISTED_CALLER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"attemptCalls","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"drainLeftoverTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"destination","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"handleV3AcrossMessage","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"relayer","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"makeCallWithBalance","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"replacement","type":"tuple[]","internalType":"struct MulticallHandler.Replacement[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"offset","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"CallsFailed","inputs":[{"name":"calls","type":"tuple[]","indexed":false,"internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"fallbackRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DrainedTokens","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CallReverted","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"calls","type":"tuple[]","internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]},{"type":"error","name":"CalldataTooShort","inputs":[{"name":"callDataLength","type":"uint256","internalType":"uint256"},{"name":"offset","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidCall","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"calls","type":"tuple[]","internalType":"struct MulticallHandler.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]},{"type":"error","name":"NotSelf","inputs":[]},{"type":"error","name":"ReplacementCallFailed","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"}]}],"bytecode":"0x6080346100d957601f61124c38819003918201601f19168301916001600160401b038311848410176100dd578084926020946040528339810103126100d957516001600160a01b038116908190036100d95760015f9081558181525f51602061122c5f395f51905f52602052604090205460ff1615610088575b60405161113a90816100f28239f35b5f8181525f51602061122c5f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a45f610079565b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816301ffc9a7146107f357508063248a9ca3146107c05780632f2ff15d1461070457806336568abe146106cf5780633a5be8cb146105815780635f6ee30c1461054757806391d14854146104fd578063a217fddf146104e3578063a58d50d314610319578063c41e829514610130578063d547741f146100ed5763ef8738d3146100ac575f61000f565b346100e95760403660031901126100e9576100c561085c565b6024356001600160a01b03811681036100e95761001a916100e4610dda565b610df2565b5f80fd5b346100e95760403660031901126100e95761001a60043561010c610846565b9061012b610126825f526001602052600160405f20015490565b610a63565b610aab565b346100e95760803660031901126100e95761014961085c565b60243567ffffffffffffffff81116100e9576101699036906004016108f6565b906064359067ffffffffffffffff82116100e957366023830112156100e957816004013567ffffffffffffffff81116100e9576024830192602436918360061b0101116100e9576101b8610dda565b604435925f5b82811061020d57855f80878784519160208601915af16101dc610a10565b50156101e457005b60405163b3beda7360e01b815260206004820152908190610209906024830190610954565b0390fd5b6001600160a01b03610228610223838686610a3f565b610a4f565b161561031057602460206001600160a01b03610248610223858888610a3f565b16604051928380926370a0823160e01b82523060048301525afa908115610305575f916102d4575b505b602061027f838686610a3f565b0135602081018082116102c05788518082116102ab5750508701602001805190911790526001016101be565b634d3ae48d60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d82116102fd575b816102ee602093836108b8565b810103126100e9575187610270565b3d91506102e1565b6040513d5f823e3d90fd5b47945084610272565b346100e95760203660031901126100e95760043567ffffffffffffffff81116100e957366023820112156100e95780600401356103558161093c565b9161036360405193846108b8565b8183526024602084019260051b820101903682116100e95760248101925b82841061045c5784610391610dda565b80515f5b81811061039e57005b82518110156104485760208160051b840101516020810190815151151580610435575b610419575f918160406001600160a01b0385945116910151915191602083519301915af16103ed610a10565b50156103fb57600101610395565b6040516303918b1160e61b81529283925061020991600484016109f6565b60405163388ddcc360e21b8152806102098786600484016109f6565b506001600160a01b038151163b156103c1565b634e487b7160e01b5f52603260045260245ffd5b833567ffffffffffffffff81116100e9578201606060231982360301126100e9576040519161048a83610888565b60248201356001600160a01b03811681036100e957835260448201359267ffffffffffffffff84116100e9576064602094936104cd8695602436918401016108f6565b8584015201356040820152815201930192610381565b346100e9575f3660031901126100e95760206040515f8152f35b346100e95760403660031901126100e957610516610846565b6004355f5260016020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346100e9575f3660031901126100e95760206040517f69048ea73402a715065a3029b4059a4e97d1461c95fa4fabca1084b5f34f4abe8152f35b346100e95760803660031901126100e95761059a61085c565b6105a2610872565b5060643567ffffffffffffffff81116100e9576105c39036906004016108f6565b335f9081527ff9f8a8d829de1c11fdd691724f182d954bcae2d8f44e7aab584f413f377402bd602052604090205460ff16156106155760025f54146100e95761060f9160025f55610b43565b60015f55005b6100e96020601161062533610f95565b6037836106517f69048ea73402a715065a3029b4059a4e97d1461c95fa4fabca1084b5f34f4abe611037565b6040519586947f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000828701528051918291018587015e8401907f206973206d697373696e6720726f6c652000000000000000000000000000000084830152805192839101604883015e01015f83820152030190601f19820181526108b8565b346100e95760403660031901126100e9576106e8610846565b336001600160a01b038216036100e95761001a90600435610aab565b346100e95760403660031901126100e957600435610720610846565b9061073a610126825f526001602052600160405f20015490565b805f52600160205260405f206001600160a01b0383165f5260205260ff60405f2054161561076457005b805f52600160205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4005b346100e95760203660031901126100e95760206107eb6004355f526001602052600160405f20015490565b604051908152f35b346100e95760203660031901126100e9576004359063ffffffff60e01b82168092036100e957602091637965db0b60e01b8114908115610835575b5015158152f35b6301ffc9a760e01b1490508361082e565b602435906001600160a01b03821682036100e957565b600435906001600160a01b03821682036100e957565b604435906001600160a01b03821682036100e957565b6060810190811067ffffffffffffffff8211176108a457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108a457604052565b67ffffffffffffffff81116108a457601f01601f191660200190565b81601f820112156100e95780359061090d826108da565b9261091b60405194856108b8565b828452602083830101116100e957815f926020809301838601378301015290565b67ffffffffffffffff81116108a45760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b8383106109a357505050505090565b9091929394602080600192601f198582030186528851906001600160a01b0382511681526040806109e1858501516060878601526060850190610954565b93015191015297019301930191939290610994565b604090610a0d939281528160208201520190610978565b90565b3d15610a3a573d90610a21826108da565b91610a2f60405193846108b8565b82523d5f602084013e565b606090565b91908110156104485760061b0190565b356001600160a01b03811681036100e95790565b805f52600160205260405f206001600160a01b0333165f5260205260ff60405f20541615610a8e5750565b602060116100e992603783610651610aa533610f95565b93611037565b805f52600160205260405f206001600160a01b0383165f5260205260ff60405f205416610ad6575050565b805f52600160205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4565b51906001600160a01b03821682036100e957565b815182019160208301905f906020818603126100e95760208101519067ffffffffffffffff82116100e957016040818603126100e957604051926040840184811067ffffffffffffffff8211176108a457604052602082015167ffffffffffffffff81116100e95760209083010181601f820112156100e957805196610bc88861093c565b97610bd6604051998a6108b8565b8089526020808a019160051b840101928484116100e95760208101915b848310610d27575050505050506040610c0f9186855201610b2f565b936001600160a01b0360208401958087521615610cd75750928184610c8e956001600160a01b039451604051610c7081610c62602082019463a58d50d360e01b8652602060248401526044830190610978565b03601f1981018352826108b8565b519082305af1610c7e610a10565b5015610c90575b50511690610df2565b565b517f5296f22c5d0413b66d0bf45c479c4e2ca5b278634bdbd028b48e49502105f966610cce8484511692604051918291602083526020830190610978565b0390a25f610c85565b9350505050303b156100e9575f610d0a916040518093819263a58d50d360e01b8352602060048401526024830190610978565b038183305af1801561030557610d1d5750565b5f610c8e916108b8565b825167ffffffffffffffff81116100e9578201906060828603126100e95760405190610d5282610888565b610d5e60208401610b2f565b8252604083015167ffffffffffffffff81116100e9576020908401019188601f840112156100e957825192610d92846108da565b94610da060405196876108b8565b8486528a602086840101116100e9576020955f8787819882606097018386015e830101528584015201516040820152815201920191610bf3565b303303610de357565b6314e1dbf760e11b5f5260045ffd5b6001600160a01b03168015610f50576040516370a0823160e01b815230600482015291602083602481855afa928315610305575f93610f1c575b5082610e3757505050565b6001600160a01b0316610ebf6040515f806020830163a9059cbb60e01b815285602485015287604485015260448452610e716064856108b8565b60405193610e806040866108b8565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082885af1610eb8610a10565b90856110d9565b8051908115918215610ef9575b5050156100e9577f74d3741ef03417659087d2ec6af11dade8713f9b7f592569d60cf1ea0c9a44555f80a4565b81925090602091810103126100e9576020015180151581036100e9575f80610ecc565b9092506020813d602011610f48575b81610f38602093836108b8565b810103126100e95751915f610e2c565b3d9150610f2b565b50479081610f5c575050565b8147106100e9575f8080936001600160a01b038294165af1610f7c610a10565b50156100e957565b908151811015610448570160200190565b610f9f602a6108da565b90610fad60405192836108b8565b602a8252610fbb602a6108da565b6020830190601f19013682378251156104485760309053815160011015610448576078602183015360295b60018111610ff657506100e95790565b90600f81166010811015610448576f181899199a1a9b1b9c1cb0b131b232b360811b901a6110248385610f84565b5360041c9080156102c0575f1901610fe6565b61104160426108da565b9061104f60405192836108b8565b6042825261105d60426108da565b6020830190601f19013682378251156104485760309053815160011015610448576078602183015360415b6001811161109857506100e95790565b90600f81166010811015610448576f181899199a1a9b1b9c1cb0b131b232b360811b901a6110c68385610f84565b5360041c9080156102c0575f1901611088565b919250156110f5578151156110ec575090565b3b156100e95790565b5080519081156100e957602001fdfea2646970667358221220927240096a74064fe36b6246ac23d5c9828a25b32265a8ce662eeee1dd6a447c64736f6c634300081e0033a6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49"}