@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":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":"0x61016080604052346101f957608081610e49803803809161002082856101fd565b8339810103126101f95780516001600160a01b03811681036101f95760208201516001600160a01b03811681036101f9576040830151926001600160a01b03841684036101f95760600151906001600160a01b03821682036101f95760805260c0525f60e05263ffffffff60a0525f80604051602081019063011a412160e61b8252600481526100b16024826101fd565b5190825afa3d156101f2573d6001600160401b0381116101de57604051906100e3601f8201601f1916602001836101fd565b81523d5f602083013e5b816101d2575b8161019c575b50610100526101205261014052604051610c289081610221823960805181818160ef0152610240015260a0518181816102be015281816105ed015261069b015260c0518181816104d3015281816108e001526109aa015260e0518181816101fc01526104a301526101005181818161027c015261056201526101205181818161034f01526109690152610140518181816103b6015281816107db01526109260152f35b90506020815191015190602081106101c1575b506001600160a01b031615155f6100f9565b5f199060200360031b1b165f6101af565b805160201491506100f3565b634e487b7160e01b5f52604160045260245ffd5b60606100ed565b5f80fd5b601f909101601f19168101906001600160401b038211908210176101de5760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461098d575080631efd482a1461094a57806335a2db6a1461090757806352c8c75c146103005780635e743ef7146102e25780636e400983146102a1578063775c0d0314610264578063927ede2d146102205780639748cf7c146101dc5763e6eb8ade1461008c575f80fd5b60403660031901126101d9576100a06109ce565b6024359067ffffffffffffffff82116101d757366023830112156101d75781600401359067ffffffffffffffff82116101c457602483019260248336920101116101c457836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101d357816001600160a01b0391604051928391633dbb202b60e01b8352169485600483015260606024830152818381610151606482018b8d610a1a565b62030d40604483015203925af180156101c8576101af575b50506101a97f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610a1a565b0390a180f35b816101b9916109e4565b6101c457835f610169565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101d957806003193601126101d957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d957602060405162030d408152f35b50608036600319011261076e576103156109ce565b602435906001600160a01b03821680920361076e5760443591606435906001600160a01b03821680920361076e57846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049357803b156101d357818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101c85761047e575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101d357818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101c85761045f575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b8161046d91959493956109e4565b61047a579091845f61041c565b8480fd5b81610488916109e4565b61047a57845f6103ab565b50506001600160a01b03939192937f000000000000000000000000000000000000000000000000000000000000000016801515806108d5575b156107d0577f0000000000000000000000000000000000000000000000000000000000000000906104fe848284610a3a565b6040516332dd704760e21b815291602083600481855afa92831561077a578893610785575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa91821561077a578892610742575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105bb575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b8481111561073c57845b841561068557833b15610681578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101c85761066c575b50505b81039081116106585780610586565b634e487b7160e01b8a52601160045260248afd5b81610676916109e4565b610681578a5f610646565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af18015610731576106ee575b50610649565b6020813d8211610729575b81610706602093836109e4565b81010312610725575167ffffffffffffffff811603610681575f6106e8565b8b80fd5b3d91506106f9565b6040513d8e823e3d90fd5b806105c5565b9091506020813d602011610772575b8161075e602093836109e4565b8101031261076e5751905f61055d565b5f80fd5b3d9150610751565b6040513d8a823e3d90fd5b9092506020813d6020116107c8575b816107a1602093836109e4565b810103126107c45751906001600160a01b03821682036107c45790916020610523565b8780fd5b3d9150610794565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610806838287610a3a565b803b1561076e575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156108ca5761088b575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b608093919550916108be5f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946109e4565b5f95919350919361085e565b6040513d5f823e3d90fd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685146104cc565b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361076e57565b90601f8019910116810190811067ffffffffffffffff821117610a0657604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156108ca575f93610b93575b508201809211610b7f575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ab86064856109e4565b60405193610ac76040866109e4565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610b72573d9067ffffffffffffffff8211610a0657604051610b39949092610b2b601f8201601f1916602001856109e4565b83523d5f602085013e610bc7565b8051908115918215610b4f575b50501561076e57565b819250906020918101031261076e5760200151801515810361076e575f80610b46565b91610b3992606091610bc7565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610bbf575b81610baf602093836109e4565b8101031261076e5751915f610a7f565b3d9150610ba2565b91925015610be357815115610bda575090565b3b1561076e5790565b50805190811561076e57602001fdfea2646970667358221220e705459665c173fc9c21be2e36c08f16ba1d252ad1c0557e36f11c365b64b81a64736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":"0x61016080604052346101f957608081610e49803803809161002082856101fd565b8339810103126101f95780516001600160a01b03811681036101f95760208201516001600160a01b03811681036101f9576040830151926001600160a01b03841684036101f95760600151906001600160a01b03821682036101f95760805260c0525f60e05263ffffffff60a0525f80604051602081019063011a412160e61b8252600481526100b16024826101fd565b5190825afa3d156101f2573d6001600160401b0381116101de57604051906100e3601f8201601f1916602001836101fd565b81523d5f602083013e5b816101d2575b8161019c575b50610100526101205261014052604051610c289081610221823960805181818160ef0152610240015260a0518181816102be015281816105ed015261069b015260c0518181816104d3015281816108e001526109aa015260e0518181816101fc01526104a301526101005181818161027c015261056201526101205181818161034f01526109690152610140518181816103b6015281816107db01526109260152f35b90506020815191015190602081106101c1575b506001600160a01b031615155f6100f9565b5f199060200360031b1b165f6101af565b805160201491506100f3565b634e487b7160e01b5f52604160045260245ffd5b60606100ed565b5f80fd5b601f909101601f19168101906001600160401b038211908210176101de5760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461098d575080631efd482a1461094a57806335a2db6a1461090757806352c8c75c146103005780635e743ef7146102e25780636e400983146102a1578063775c0d0314610264578063927ede2d146102205780639748cf7c146101dc5763e6eb8ade1461008c575f80fd5b60403660031901126101d9576100a06109ce565b6024359067ffffffffffffffff82116101d757366023830112156101d75781600401359067ffffffffffffffff82116101c457602483019260248336920101116101c457836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101d357816001600160a01b0391604051928391633dbb202b60e01b8352169485600483015260606024830152818381610151606482018b8d610a1a565b62030d40604483015203925af180156101c8576101af575b50506101a97f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610a1a565b0390a180f35b816101b9916109e4565b6101c457835f610169565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101d957806003193601126101d957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d957602060405162030d408152f35b50608036600319011261076e576103156109ce565b602435906001600160a01b03821680920361076e5760443591606435906001600160a01b03821680920361076e57846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049357803b156101d357818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101c85761047e575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101d357818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101c85761045f575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b8161046d91959493956109e4565b61047a579091845f61041c565b8480fd5b81610488916109e4565b61047a57845f6103ab565b50506001600160a01b03939192937f000000000000000000000000000000000000000000000000000000000000000016801515806108d5575b156107d0577f0000000000000000000000000000000000000000000000000000000000000000906104fe848284610a3a565b6040516332dd704760e21b815291602083600481855afa92831561077a578893610785575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa91821561077a578892610742575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105bb575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b8481111561073c57845b841561068557833b15610681578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101c85761066c575b50505b81039081116106585780610586565b634e487b7160e01b8a52601160045260248afd5b81610676916109e4565b610681578a5f610646565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af18015610731576106ee575b50610649565b6020813d8211610729575b81610706602093836109e4565b81010312610725575167ffffffffffffffff811603610681575f6106e8565b8b80fd5b3d91506106f9565b6040513d8e823e3d90fd5b806105c5565b9091506020813d602011610772575b8161075e602093836109e4565b8101031261076e5751905f61055d565b5f80fd5b3d9150610751565b6040513d8a823e3d90fd5b9092506020813d6020116107c8575b816107a1602093836109e4565b810103126107c45751906001600160a01b03821682036107c45790916020610523565b8780fd5b3d9150610794565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610806838287610a3a565b803b1561076e575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156108ca5761088b575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b608093919550916108be5f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946109e4565b5f95919350919361085e565b6040513d5f823e3d90fd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685146104cc565b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361076e57565b90601f8019910116810190811067ffffffffffffffff821117610a0657604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156108ca575f93610b93575b508201809211610b7f575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ab86064856109e4565b60405193610ac76040866109e4565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610b72573d9067ffffffffffffffff8211610a0657604051610b39949092610b2b601f8201601f1916602001856109e4565b83523d5f602085013e610bc7565b8051908115918215610b4f575b50501561076e57565b819250906020918101031261076e5760200151801515810361076e575f80610b46565b91610b3992606091610bc7565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610bbf575b81610baf602093836109e4565b8101031261076e5751915f610a7f565b3d9150610ba2565b91925015610be357815115610bda575090565b3b1561076e5790565b50805190811561076e57602001fdfea2646970667358221220ee1e0cbb72026bcbaa34d899a6350c811d5daf9fd2e824aa2e914b4fac82454564736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"receive","stateMutability":"payable"},{"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":"handleV3AcrossMessage","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"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":"0x6080806040523460195760015f55610b59908161001e8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633a5be8cb1461043e578063a58d50d314610274578063c41e82951461008b5763ef8738d30361000e57346100875760403660031901126100875761006361049c565b6024356001600160a01b03811681036100875761001891610082610ae0565b61094e565b5f80fd5b34610087576080366003190112610087576100a461049c565b60243567ffffffffffffffff8111610087576100c4903690600401610536565b906064359067ffffffffffffffff8211610087573660238301121561008757816004013567ffffffffffffffff8111610087576024830192602436918360061b01011161008757610113610ae0565b604435925f5b82811061016857855f80878784519160208601915af161013761064a565b501561013f57005b60405163b3beda7360e01b8152602060048201529081906101649060248301906105a8565b0390fd5b6001600160a01b0361018361017e83868661092a565b61093a565b161561026b57602460206001600160a01b036101a361017e85888861092a565b16604051928380926370a0823160e01b82523060048301525afa908115610260575f9161022f575b505b60206101da83868661092a565b01356020810180821161021b578851808211610206575050870160200180519091179052600101610119565b634d3ae48d60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d8211610258575b81610249602093836104f8565b810103126100875751876101cb565b3d915061023c565b6040513d5f823e3d90fd5b479450846101cd565b346100875760203660031901126100875760043567ffffffffffffffff811161008757366023820112156100875780600401356102b08161057c565b916102be60405193846104f8565b8183526024602084019260051b820101903682116100875760248101925b8284106103b757846102ec610ae0565b80515f5b8181106102f957005b82518110156103a35760208160051b840101516020810190815151151580610390575b610374575f918160406001600160a01b0385945116910151915191602083519301915af161034861064a565b5015610356576001016102f0565b6040516303918b1160e61b8152928392506101649160048401610910565b60405163388ddcc360e21b815280610164878660048401610910565b506001600160a01b038151163b1561031c565b634e487b7160e01b5f52603260045260245ffd5b833567ffffffffffffffff81116100875782016060602319823603011261008757604051916103e5836104c8565b60248201356001600160a01b038116810361008757835260448201359267ffffffffffffffff841161008757606460209493610428869560243691840101610536565b85840152013560408201528152019301926102dc565b346100875760803660031901126100875761045761049c565b61045f6104b2565b5060643567ffffffffffffffff811161008757610480903690600401610536565b60025f5414610087576104969160025f55610679565b60015f55005b600435906001600160a01b038216820361008757565b604435906001600160a01b038216820361008757565b6060810190811067ffffffffffffffff8211176104e457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176104e457604052565b67ffffffffffffffff81116104e457601f01601f191660200190565b81601f820112156100875780359061054d8261051a565b9261055b60405194856104f8565b8284526020838301011161008757815f926020809301838601378301015290565b67ffffffffffffffff81116104e45760051b60200190565b51906001600160a01b038216820361008757565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b8383106105f757505050505090565b9091929394602080600192601f198582030186528851906001600160a01b0382511681526040806106358585015160608786015260608501906105a8565b930151910152970193019301919392906105e8565b3d15610674573d9061065b8261051a565b9161066960405193846104f8565b82523d5f602084013e565b606090565b815182019160208301905f906020818603126100875760208101519067ffffffffffffffff8211610087570160408186031261008757604051926040840184811067ffffffffffffffff8211176104e457604052602082015167ffffffffffffffff81116100875760209083010181601f82011215610087578051966106fe8861057c565b9761070c604051998a6104f8565b8089526020808a019160051b840101928484116100875760208101915b84831061085d5750505050505060406107459186855201610594565b936001600160a01b036020840195808752161561080d57509281846107c4956001600160a01b0394516040516107a681610798602082019463a58d50d360e01b86526020602484015260448301906105cc565b03601f1981018352826104f8565b519082305af16107b461064a565b50156107c6575b5051169061094e565b565b517f5296f22c5d0413b66d0bf45c479c4e2ca5b278634bdbd028b48e49502105f96661080484845116926040519182916020835260208301906105cc565b0390a25f6107bb565b9350505050303b15610087575f610840916040518093819263a58d50d360e01b83526020600484015260248301906105cc565b038183305af18015610260576108535750565b5f6107c4916104f8565b825167ffffffffffffffff8111610087578201906060828603126100875760405190610888826104c8565b61089460208401610594565b8252604083015167ffffffffffffffff8111610087576020908401019188601f84011215610087578251926108c88461051a565b946108d660405196876104f8565b8486528a60208684010111610087576020955f8787819882606097018386015e830101528584015201516040820152815201920191610729565b6040906109279392815281602082015201906105cc565b90565b91908110156103a35760061b0190565b356001600160a01b03811681036100875790565b6001600160a01b03168015610aac576040516370a0823160e01b815230600482015291602083602481855afa928315610260575f93610a78575b508261099357505050565b6001600160a01b0316610a1b6040515f806020830163a9059cbb60e01b8152856024850152876044850152604484526109cd6064856104f8565b604051936109dc6040866104f8565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082885af1610a1461064a565b9085610af8565b8051908115918215610a55575b505015610087577f74d3741ef03417659087d2ec6af11dade8713f9b7f592569d60cf1ea0c9a44555f80a4565b819250906020918101031261008757602001518015158103610087575f80610a28565b9092506020813d602011610aa4575b81610a94602093836104f8565b810103126100875751915f610988565b3d9150610a87565b50479081610ab8575050565b814710610087575f8080936001600160a01b038294165af1610ad861064a565b501561008757565b303303610ae957565b6314e1dbf760e11b5f5260045ffd5b91925015610b1457815115610b0b575090565b3b156100875790565b50805190811561008757602001fdfea26469706673582212208a8e350698a2eef669fa15ff35abf5ad85f5738c5e307e6cff5994d6225ae37064736f6c634300081e0033"}
1
+ {"abi":[{"type":"receive","stateMutability":"payable"},{"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":"handleV3AcrossMessage","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"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":"0x6080806040523460195760015f55610b59908161001e8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633a5be8cb1461043e578063a58d50d314610274578063c41e82951461008b5763ef8738d30361000e57346100875760403660031901126100875761006361049c565b6024356001600160a01b03811681036100875761001891610082610ae0565b61094e565b5f80fd5b34610087576080366003190112610087576100a461049c565b60243567ffffffffffffffff8111610087576100c4903690600401610536565b906064359067ffffffffffffffff8211610087573660238301121561008757816004013567ffffffffffffffff8111610087576024830192602436918360061b01011161008757610113610ae0565b604435925f5b82811061016857855f80878784519160208601915af161013761064a565b501561013f57005b60405163b3beda7360e01b8152602060048201529081906101649060248301906105a8565b0390fd5b6001600160a01b0361018361017e83868661092a565b61093a565b161561026b57602460206001600160a01b036101a361017e85888861092a565b16604051928380926370a0823160e01b82523060048301525afa908115610260575f9161022f575b505b60206101da83868661092a565b01356020810180821161021b578851808211610206575050870160200180519091179052600101610119565b634d3ae48d60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d8211610258575b81610249602093836104f8565b810103126100875751876101cb565b3d915061023c565b6040513d5f823e3d90fd5b479450846101cd565b346100875760203660031901126100875760043567ffffffffffffffff811161008757366023820112156100875780600401356102b08161057c565b916102be60405193846104f8565b8183526024602084019260051b820101903682116100875760248101925b8284106103b757846102ec610ae0565b80515f5b8181106102f957005b82518110156103a35760208160051b840101516020810190815151151580610390575b610374575f918160406001600160a01b0385945116910151915191602083519301915af161034861064a565b5015610356576001016102f0565b6040516303918b1160e61b8152928392506101649160048401610910565b60405163388ddcc360e21b815280610164878660048401610910565b506001600160a01b038151163b1561031c565b634e487b7160e01b5f52603260045260245ffd5b833567ffffffffffffffff81116100875782016060602319823603011261008757604051916103e5836104c8565b60248201356001600160a01b038116810361008757835260448201359267ffffffffffffffff841161008757606460209493610428869560243691840101610536565b85840152013560408201528152019301926102dc565b346100875760803660031901126100875761045761049c565b61045f6104b2565b5060643567ffffffffffffffff811161008757610480903690600401610536565b60025f5414610087576104969160025f55610679565b60015f55005b600435906001600160a01b038216820361008757565b604435906001600160a01b038216820361008757565b6060810190811067ffffffffffffffff8211176104e457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176104e457604052565b67ffffffffffffffff81116104e457601f01601f191660200190565b81601f820112156100875780359061054d8261051a565b9261055b60405194856104f8565b8284526020838301011161008757815f926020809301838601378301015290565b67ffffffffffffffff81116104e45760051b60200190565b51906001600160a01b038216820361008757565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b8383106105f757505050505090565b9091929394602080600192601f198582030186528851906001600160a01b0382511681526040806106358585015160608786015260608501906105a8565b930151910152970193019301919392906105e8565b3d15610674573d9061065b8261051a565b9161066960405193846104f8565b82523d5f602084013e565b606090565b815182019160208301905f906020818603126100875760208101519067ffffffffffffffff8211610087570160408186031261008757604051926040840184811067ffffffffffffffff8211176104e457604052602082015167ffffffffffffffff81116100875760209083010181601f82011215610087578051966106fe8861057c565b9761070c604051998a6104f8565b8089526020808a019160051b840101928484116100875760208101915b84831061085d5750505050505060406107459186855201610594565b936001600160a01b036020840195808752161561080d57509281846107c4956001600160a01b0394516040516107a681610798602082019463a58d50d360e01b86526020602484015260448301906105cc565b03601f1981018352826104f8565b519082305af16107b461064a565b50156107c6575b5051169061094e565b565b517f5296f22c5d0413b66d0bf45c479c4e2ca5b278634bdbd028b48e49502105f96661080484845116926040519182916020835260208301906105cc565b0390a25f6107bb565b9350505050303b15610087575f610840916040518093819263a58d50d360e01b83526020600484015260248301906105cc565b038183305af18015610260576108535750565b5f6107c4916104f8565b825167ffffffffffffffff8111610087578201906060828603126100875760405190610888826104c8565b61089460208401610594565b8252604083015167ffffffffffffffff8111610087576020908401019188601f84011215610087578251926108c88461051a565b946108d660405196876104f8565b8486528a60208684010111610087576020955f8787819882606097018386015e830101528584015201516040820152815201920191610729565b6040906109279392815281602082015201906105cc565b90565b91908110156103a35760061b0190565b356001600160a01b03811681036100875790565b6001600160a01b03168015610aac576040516370a0823160e01b815230600482015291602083602481855afa928315610260575f93610a78575b508261099357505050565b6001600160a01b0316610a1b6040515f806020830163a9059cbb60e01b8152856024850152876044850152604484526109cd6064856104f8565b604051936109dc6040866104f8565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082885af1610a1461064a565b9085610af8565b8051908115918215610a55575b505015610087577f74d3741ef03417659087d2ec6af11dade8713f9b7f592569d60cf1ea0c9a44555f80a4565b819250906020918101031261008757602001518015158103610087575f80610a28565b9092506020813d602011610aa4575b81610a94602093836104f8565b810103126100875751915f610988565b3d9150610a87565b50479081610ab8575050565b814710610087575f8080936001600160a01b038294165af1610ad861064a565b501561008757565b303303610ae957565b6314e1dbf760e11b5f5260045ffd5b91925015610b1457815115610b0b575090565b3b156100875790565b50805190811561008757602001fdfea2646970667358221220940c6b952f37fa837d50cbf5630228b03786aa3ff074913d0c6ebd528b97c94e64736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1USDCBridge","type":"address","internalType":"contract IOpUSDCBridgeAdapter"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_recipientCircleDomainId","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_OP_USDC_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOpUSDCBridgeAdapter"}],"stateMutability":"view"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidBridgeConfig","inputs":[]}],"bytecode":"0x610180806040523461026f5760e081610fa780380380916100208285610273565b83398101031261026f578051906001600160a01b038216820361026f576020810151916001600160a01b0383169081840361026f576040830151906001600160a01b038216820361026f576060840151906001600160a01b038216820361026f5760808501516001600160a01b0381169690939087850361026f5760a08701516001600160a01b0381169790919088830361026f5760c001519263ffffffff8416840361026f5760805260c05260e05260a0525f80604051602081019063011a412160e61b8252600481526100f6602482610273565b5190885afa3d15610268573d6001600160401b0381116102545760405190610128601f8201601f191660200183610273565b81523d5f602083013e5b81610248575b81610212575b50610100526101205261014052610160526101f4575b604051610d109081610297823960805181818160fa015261024b015260a0518181816102c90152818161060001526106ae015260c0518181816104a60152610a92015260e05181818161020701526104db015261010051818181610287015261057501526101205181818161035a0152610a510152610140518181816103c1015281816108b201526109cb0152610160518181816107f30152610a0e0152f35b15901514610203575f80610154565b635110d79160e01b5f5260045ffd5b9050602081519101519060208110610237575b506001600160a01b031615155f61013e565b5f199060200360031b1b165f610225565b80516020149150610138565b634e487b7160e01b5f52604160045260245ffd5b6060610132565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102545760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac85514610a75575080631efd482a14610a32578063299e9687146109ef57806335a2db6a146109ac57806352c8c75c1461030b5780635e743ef7146102ed5780636e400983146102ac578063775c0d031461026f578063927ede2d1461022b5780639748cf7c146101e75763e6eb8ade14610097575f80fd5b60403660031901126101e4576100ab610ab6565b6024359067ffffffffffffffff82116101e257366023830112156101e25781600401359067ffffffffffffffff82116101cf57602483019260248336920101116101cf57836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101de57816001600160a01b0391604051928391633dbb202b60e01b835216948560048301526060602483015281838161015c606482018b8d610b02565b62030d40604483015203925af180156101d3576101ba575b50506101b47f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610b02565b0390a180f35b816101c491610acc565b6101cf57835f610174565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101e457806003193601126101e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e45760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101e457806003193601126101e457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e457602060405162030d408152f35b50608036600319011261078157610320610ab6565b602435906001600160a01b0382168092036107815760443591606435906001600160a01b03821680920361078157846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049e57803b156101de57818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101d357610489575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101de57818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101d35761046a575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b816104789195949395610acc565b610485579091845f610427565b8480fd5b8161049391610acc565b61048557845f6103b6565b5050929091927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116908186145f146108a6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169081156107e157848261051592610b22565b6040516332dd704760e21b8152602081600481855afa90811561078d578891610798575b509060206001600160a01b03926024604051809581936352b7631960e11b8352886004840152165afa91821561078d578892610755575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105ce575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610451565b8481111561074f57845b841561069857833b15610694578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101d35761067f575b50505b810390811161066b5780610599565b634e487b7160e01b8a52601160045260248afd5b8161068991610acc565b610694578a5f610659565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af1801561074457610701575b5061065c565b6020813d821161073c575b8161071960209383610acc565b81010312610738575167ffffffffffffffff811603610694575f6106fb565b8b80fd5b3d915061070c565b6040513d8e823e3d90fd5b806105d8565b9091506020813d602011610785575b8161077160209383610acc565b810103126107815751905f610570565b5f80fd5b3d9150610764565b6040513d8a823e3d90fd5b90506020813d6020116107d9575b816107b360209383610acc565b810103126107d55751906001600160a01b03821682036107d557906020610539565b8780fd5b3d91506107a6565b505050846001600160a01b03949392947f00000000000000000000000000000000000000000000000000000000000000001661081e868287610b22565b803b156101de5781809160646040518094819363262cc5ab60e11b83528960048401528b602484015262030d4060448401525af180156101d35761088b575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9360809392610451565b816108999195949395610acc565b610485579091845f61085d565b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166108dd838287610b22565b803b15610781575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156109a157610962575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610451565b608093919550916109955f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9694610acc565b5f959193509193610935565b6040513d5f823e3d90fd5b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f366003190112610781576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361078157565b90601f8019910116810190811067ffffffffffffffff821117610aee57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156109a1575f93610c7b575b508201809211610c67575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ba0606485610acc565b60405193610baf604086610acc565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610c5a573d9067ffffffffffffffff8211610aee57604051610c21949092610c13601f8201601f191660200185610acc565b83523d5f602085013e610caf565b8051908115918215610c37575b50501561078157565b819250906020918101031261078157602001518015158103610781575f80610c2e565b91610c2192606091610caf565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610ca7575b81610c9760209383610acc565b810103126107815751915f610b67565b3d9150610c8a565b91925015610ccb57815115610cc2575090565b3b156107815790565b50805190811561078157602001fdfea2646970667358221220826ee5f09b45482f8c481e66db62dc9635916ca866b78df0545b9be88e91fe8464736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1USDCBridge","type":"address","internalType":"contract IOpUSDCBridgeAdapter"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_recipientCircleDomainId","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_OP_USDC_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOpUSDCBridgeAdapter"}],"stateMutability":"view"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidBridgeConfig","inputs":[]}],"bytecode":"0x610180806040523461026f5760e081610fa780380380916100208285610273565b83398101031261026f578051906001600160a01b038216820361026f576020810151916001600160a01b0383169081840361026f576040830151906001600160a01b038216820361026f576060840151906001600160a01b038216820361026f5760808501516001600160a01b0381169690939087850361026f5760a08701516001600160a01b0381169790919088830361026f5760c001519263ffffffff8416840361026f5760805260c05260e05260a0525f80604051602081019063011a412160e61b8252600481526100f6602482610273565b5190885afa3d15610268573d6001600160401b0381116102545760405190610128601f8201601f191660200183610273565b81523d5f602083013e5b81610248575b81610212575b50610100526101205261014052610160526101f4575b604051610d109081610297823960805181818160fa015261024b015260a0518181816102c90152818161060001526106ae015260c0518181816104a60152610a92015260e05181818161020701526104db015261010051818181610287015261057501526101205181818161035a0152610a510152610140518181816103c1015281816108b201526109cb0152610160518181816107f30152610a0e0152f35b15901514610203575f80610154565b635110d79160e01b5f5260045ffd5b9050602081519101519060208110610237575b506001600160a01b031615155f61013e565b5f199060200360031b1b165f610225565b80516020149150610138565b634e487b7160e01b5f52604160045260245ffd5b6060610132565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102545760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac85514610a75575080631efd482a14610a32578063299e9687146109ef57806335a2db6a146109ac57806352c8c75c1461030b5780635e743ef7146102ed5780636e400983146102ac578063775c0d031461026f578063927ede2d1461022b5780639748cf7c146101e75763e6eb8ade14610097575f80fd5b60403660031901126101e4576100ab610ab6565b6024359067ffffffffffffffff82116101e257366023830112156101e25781600401359067ffffffffffffffff82116101cf57602483019260248336920101116101cf57836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101de57816001600160a01b0391604051928391633dbb202b60e01b835216948560048301526060602483015281838161015c606482018b8d610b02565b62030d40604483015203925af180156101d3576101ba575b50506101b47f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610b02565b0390a180f35b816101c491610acc565b6101cf57835f610174565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101e457806003193601126101e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e45760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101e457806003193601126101e457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e457602060405162030d408152f35b50608036600319011261078157610320610ab6565b602435906001600160a01b0382168092036107815760443591606435906001600160a01b03821680920361078157846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049e57803b156101de57818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101d357610489575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101de57818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101d35761046a575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b816104789195949395610acc565b610485579091845f610427565b8480fd5b8161049391610acc565b61048557845f6103b6565b5050929091927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116908186145f146108a6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169081156107e157848261051592610b22565b6040516332dd704760e21b8152602081600481855afa90811561078d578891610798575b509060206001600160a01b03926024604051809581936352b7631960e11b8352886004840152165afa91821561078d578892610755575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105ce575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610451565b8481111561074f57845b841561069857833b15610694578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101d35761067f575b50505b810390811161066b5780610599565b634e487b7160e01b8a52601160045260248afd5b8161068991610acc565b610694578a5f610659565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af1801561074457610701575b5061065c565b6020813d821161073c575b8161071960209383610acc565b81010312610738575167ffffffffffffffff811603610694575f6106fb565b8b80fd5b3d915061070c565b6040513d8e823e3d90fd5b806105d8565b9091506020813d602011610785575b8161077160209383610acc565b810103126107815751905f610570565b5f80fd5b3d9150610764565b6040513d8a823e3d90fd5b90506020813d6020116107d9575b816107b360209383610acc565b810103126107d55751906001600160a01b03821682036107d557906020610539565b8780fd5b3d91506107a6565b505050846001600160a01b03949392947f00000000000000000000000000000000000000000000000000000000000000001661081e868287610b22565b803b156101de5781809160646040518094819363262cc5ab60e11b83528960048401528b602484015262030d4060448401525af180156101d35761088b575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9360809392610451565b816108999195949395610acc565b610485579091845f61085d565b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166108dd838287610b22565b803b15610781575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156109a157610962575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610451565b608093919550916109955f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9694610acc565b5f959193509193610935565b6040513d5f823e3d90fd5b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f366003190112610781576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361078157565b90601f8019910116810190811067ffffffffffffffff821117610aee57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156109a1575f93610c7b575b508201809211610c67575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ba0606485610acc565b60405193610baf604086610acc565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610c5a573d9067ffffffffffffffff8211610aee57604051610c21949092610c13601f8201601f191660200185610acc565b83523d5f602085013e610caf565b8051908115918215610c37575b50501561078157565b819250906020918101031261078157602001518015158103610781575f80610c2e565b91610c2192606091610caf565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610ca7575b81610c9760209383610acc565b810103126107815751915f610b67565b3d9150610c8a565b91925015610ccb57815115610cc2575090565b3b156107815790565b50805190811561078157602001fdfea2646970667358221220adc58de06e50713e0559dca87b6cb8b97d943126aafa379084a37853b93e7d3b64736f6c634300081e0033"}