@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":"_chainId","type":"uint256","internalType":"uint256"},{"name":"_bridgeHub","type":"address","internalType":"contract BridgeHubInterface"},{"name":"_circleUSDC","type":"address","internalType":"contract IERC20"},{"name":"_usdcSharedBridge","type":"address","internalType":"address"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_recipientCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l2RefundAddress","type":"address","internalType":"address"},{"name":"_l2GasLimit","type":"uint256","internalType":"uint256"},{"name":"_l1GasToL2GasPerPubDataLimit","type":"uint256","internalType":"uint256"},{"name":"_maxTxGasprice","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_HUB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BridgeHubInterface"}],"stateMutability":"view"},{"type":"function","name":"CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L1_GAS_TO_L2_GAS_PER_PUB_DATA_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L2_REFUND_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"USDC_SHARED_BRIDGE","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":"ETHGasTokenRequired","inputs":[]},{"type":"error","name":"InvalidBridgeConfig","inputs":[]},{"type":"error","name":"TransactionFeeTooHigh","inputs":[]}],"bytecode":"0x610200806040523461032e5761016081611925803803809161002182856103c8565b83398101031261032e57805160208201516001600160a01b03811692919083810361032e576040830151926001600160a01b0384169081850361032e5761006a606082016103eb565b94608082015160018060a01b0381169485820361032e5760a08401519063ffffffff8216820361032e5760c0850151906001600160a01b038216820361032e576100b660e087016103eb565b92610100870151946101406101208901519801519660a05260c0526080525f80604051602081019063011a412160e61b8252600481526100f76024826103c8565b51908b5afa3d156103c1573d6001600160401b0381116103ad5760405190610129601f8201601f1916602001836103c8565b81523d5f602083013e5b816103a1575b8161036b575b5060e0528861016052610180526101a05261014052610100526101e05261012052610345575b506020916101c052602460405180948193632cf632d160e11b835260048301525afa801561033a575f906102fc575b6001600160a01b03165f190190506102ed57604051611525908161040082396080518181816103d0015281816109610152610a09015260a0518181816107840152610f04015260c05181818161031a01526107ba015260e05181818161038f01526108d701526101005181818161012101528181610488015261052f0152610120518181816101aa0152818161040b0152818161064c01528181610be001528181610d9f01526112290152610140518181816101dd0152818161067f01528181610c0701528181610dc60152610f4501526101605181818161016901528181610355015281816105ff01528181610bad01528181610d6c01526111f801526101805181818161022a015281816104ca015281816106cc01528181610c6501528181610cf5015261125d01526101a0518181816105620152610ec101526101c05181818161044d0152610b7201526101e051816111c30152f35b6308ca5c0760e31b5f5260045ffd5b506020813d602011610332575b81610316602093836103c8565b8101031261032e576103296001916103eb565b610194565b5f80fd5b3d9150610309565b6040513d5f823e3d90fd5b156001600160a01b038316151461035c575f610165565b635110d79160e01b5f5260045ffd5b9050602081519101519060208110610390575b506001600160a01b031615155f61013f565b5f199060200360031b1b165f61037e565b80516020149150610139565b634e487b7160e01b5f52604160045260245ffd5b6060610133565b601f909101601f19168101906001600160401b038211908210176103ad57604052565b51906001600160a01b038216820361032e5756fe6080806040526004361015610012575f80fd5b5f3560e01c90816303c0501914610f285750806311eac85514610ee55780631efd482a14610ea257806352c8c75c146104ee5780635d4edca7146104ab5780635e743ef71461047157806368c551ad1461042e5780636c9075b7146103f45780636e400983146103b4578063775c0d031461037857806385e1f4d01461033e5780639748cf7c146102fb5763e6eb8ade146100ab575f80fd5b60403660031901126102e4576100bf610f69565b6024359067ffffffffffffffff82116102e457366023830112156102e4578160040135906100ec82610fd2565b916100fa6040519384610fb0565b80835236602482860101116102e4576020815f92602461021e9701838701378401015260207f00000000000000000000000000000000000000000000000000000000000000009161014a836111c1565b6101526110ae565b6001600160a01b036040519361016785610f7f565b7f00000000000000000000000000000000000000000000000000000000000000008552838686015216948560408501525f606085015286608085015260a08401527f000000000000000000000000000000000000000000000000000000000000000060c084015260e08301526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610100830152604051808097819463d52471c160e01b8352600483016110e1565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102f05761029b575b7f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac492506102966040519283928352604060208401526040830190610ffd565b0390a1005b6020833d6020116102e8575b816102b460209383610fb0565b810103126102e4577f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac49250610257565b5f80fd5b3d91506102a7565b6040513d5f823e3d90fd5b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102e4575f3660031901126102e45760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b346102e4575f3660031901126102e457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60803660031901126102e457610502610f69565b6024356001600160a01b0381168091036102e4576064356001600160a01b0381166044358183036102e4577f0000000000000000000000000000000000000000000000000000000000000000610557816111c1565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016966001600160a01b038116958887145f14610778575050863b156102e4575f80976024604051809a8193632e1a7d4d60e01b83528860048401525af19182156102f0576106c097602093610768575b506105e6846105e083826110a1565b926110a1565b916105ef6110ae565b90604051936105fd85610f7f565b7f000000000000000000000000000000000000000000000000000000000000000085528585015286604085015285606085015260405161063d8682610fb0565b5f8152608085015260a08401527f000000000000000000000000000000000000000000000000000000000000000060c084015260e08301526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610100830152604051808099819463d52471c160e01b8352600483016110e1565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156102f0577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95608095610739575b505b604051938452602084015260408301526060820152a1005b61075a9060203d602011610761575b6107528183610fb0565b810190610fee565b508661071f565b503d610748565b5f61077291610fb0565b886105d1565b929190939597509593957f0000000000000000000000000000000000000000000000000000000000000000916001600160a01b03831694858a145f14610cdd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316948515610b4a5750505050604051636eb1769f60e11b8152306004820152826024820152602081604481875afa80156102f05786915f91610b13575b509161087261083361086493610877956110a1565b60405163095ea7b360e01b60208201526001600160a01b038716602482015260448101919091529283906064820190565b03601f198101845283610fb0565b611433565b6040516332dd704760e21b8152602081600481855afa9081156102f0575f91610ace575b509060206001600160a01b03926024604051809581936352b7631960e11b8352886004840152165afa9182156102f0575f92610a9a575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b610930575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610721565b84811115610a9457845b84156109ef57833b156102e457604051634701287760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528960448201528360648201525f60848201525f60a48201526107d060c48201525f8160e48183895af180156102f0576109df575b505b81039081116109cb57806108fb565b634e487b7160e01b5f52601160045260245ffd5b5f6109e991610fb0565b8a6109ba565b6040516337e9a82760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528960448201528360648201526020816084815f895af180156102f057610a55575b506109bc565b6020813d8211610a8c575b81610a6d60209383610fb0565b810103126102e4575167ffffffffffffffff8116036102e4578a610a4f565b3d9150610a60565b8061093a565b9091506020813d602011610ac6575b81610ab660209383610fb0565b810103126102e4575190876108d2565b3d9150610aa9565b90506020813d602011610b0b575b81610ae960209383610fb0565b810103126102e45751906001600160a01b03821682036102e45790602061089b565b3d9150610adc565b9150506020813d602011610b42575b81610b2f60209383610fb0565b810103126102e45751859061087261081e565b3d9150610b22565b88809750602096508b99610c599c9495965092610b9d92610b986001600160a01b03959d9b9d7f000000000000000000000000000000000000000000000000000000000000000080986112ce565b6113bd565b9160405194610bab86610f7f565b7f0000000000000000000000000000000000000000000000000000000000000000865284878701525f604087015260608601527f00000000000000000000000000000000000000000000000000000000000000006080860152817f00000000000000000000000000000000000000000000000000000000000000001660a08601521660c08401525f60e084015261010083015260405180809981946324fd57fb60e01b835260048301611021565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156102f0577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95608095610cbe575b50610721565b610cd69060203d602011610761576107528183610fb0565b5086610cb8565b60405163070e40ef60e31b81529199969896979550937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316935090602081600481875afa9182156102f0578887925f94610e53575b50826020976001600160a01b0393610b988796610e199a9998610d5c966112ce565b9160405193610d6a85610f7f565b7f000000000000000000000000000000000000000000000000000000000000000085528c888601525f604086015260608501527f00000000000000000000000000000000000000000000000000000000000000006080850152817f00000000000000000000000000000000000000000000000000000000000000001660a08501521660c08301525f60e08301526101008201526040519889809481936324fd57fb60e01b835260048301611021565b03925af19384156102f0577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95608095610cbe5750610721565b925050939291506020813d602011610e9a575b81610e7360209383610fb0565b810103126102e457516001600160a01b03811681036102e457919290919085908882610d3a565b3d9150610e66565b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e4576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b03821682036102e457565b610120810190811067ffffffffffffffff821117610f9c57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610f9c57604052565b67ffffffffffffffff8111610f9c57601f01601f191660200190565b908160209103126102e4575190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b61014061010061109e936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a08501526001600160a01b0360a08201511660c08501526001600160a01b0360c08201511660e085015260e081015182850152015191610120808201520190610ffd565b90565b919082018092116109cb57565b604051906110bd602083610fb0565b5f80835282815b8281106110d057505050565b8060606020809385010152016110c4565b6020815281516020820152602082015160408201526001600160a01b0360408301511660608201526060820151608082015261112e608083015161012060a0840152610140830190610ffd565b9160a081015160c083015260c081015160e083015260e081015192601f1983820301610100840152835180825260208201916020808360051b8301019601925f915b8383106111945750505050506001600160a01b036101006101209201511691015290565b90919293966020806111b2600193601f198682030187528b51610ffd565b99019301930191939290611170565b7f00000000000000000000000000000000000000000000000000000000000000003a116112bf5760405190631c588c9d60e21b82527f000000000000000000000000000000000000000000000000000000000000000060048301523a602483015260448201527f000000000000000000000000000000000000000000000000000000000000000060648201526020816084816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102f0575f91611290575090565b90506020813d6020116112b7575b816112ab60209383610fb0565b810103126102e4575190565b3d915061129e565b632ccc026d60e21b5f5260045ffd5b60405163095ea7b360e01b602082019081526001600160a01b03841660248301526044808301959095529381529192611308606484610fb0565b5f806001600160a01b0384169285519082855af1906113256113ec565b8261138b575b5081611380575b501561133d57505050565b61087261137e936001600160a01b036040519163095ea7b360e01b60208401521660248201525f604482015260448152611378606482610fb0565b82611433565b565b90503b15155f611332565b805191925081159182156113a3575b5050905f61132b565b6113b6925060208091830101910161141b565b5f8061139a565b6001600160a01b039192826040519416602085015260408401521660608201526060815261109e608082610fb0565b3d15611416573d906113fd82610fd2565b9161140b6040519384610fb0565b82523d5f602084013e565b606090565b908160209103126102e4575180151581036102e45790565b906001600160a01b0361149492165f8060405193611452604086610fb0565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161148e6113ec565b916114c4565b80519081159182156114aa575b5050156102e457565b6114bd925060208091830101910161141b565b5f806114a1565b919250156114e0578151156114d7575090565b3b156102e45790565b5080519081156102e457602001fdfea264697066735822122033cfa03e3bc9c88e4fde4673f9e35522c2df8c116d74e05a5805cc21924ab50b64736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_chainId","type":"uint256","internalType":"uint256"},{"name":"_bridgeHub","type":"address","internalType":"contract BridgeHubInterface"},{"name":"_circleUSDC","type":"address","internalType":"contract IERC20"},{"name":"_usdcSharedBridge","type":"address","internalType":"address"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_recipientCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l2RefundAddress","type":"address","internalType":"address"},{"name":"_l2GasLimit","type":"uint256","internalType":"uint256"},{"name":"_l1GasToL2GasPerPubDataLimit","type":"uint256","internalType":"uint256"},{"name":"_maxTxGasprice","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_HUB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BridgeHubInterface"}],"stateMutability":"view"},{"type":"function","name":"CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L1_GAS_TO_L2_GAS_PER_PUB_DATA_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L2_REFUND_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"USDC_SHARED_BRIDGE","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":"ETHGasTokenRequired","inputs":[]},{"type":"error","name":"InvalidBridgeConfig","inputs":[]},{"type":"error","name":"TransactionFeeTooHigh","inputs":[]}],"bytecode":"0x610200806040523461032e5761016081611925803803809161002182856103c8565b83398101031261032e57805160208201516001600160a01b03811692919083810361032e576040830151926001600160a01b0384169081850361032e5761006a606082016103eb565b94608082015160018060a01b0381169485820361032e5760a08401519063ffffffff8216820361032e5760c0850151906001600160a01b038216820361032e576100b660e087016103eb565b92610100870151946101406101208901519801519660a05260c0526080525f80604051602081019063011a412160e61b8252600481526100f76024826103c8565b51908b5afa3d156103c1573d6001600160401b0381116103ad5760405190610129601f8201601f1916602001836103c8565b81523d5f602083013e5b816103a1575b8161036b575b5060e0528861016052610180526101a05261014052610100526101e05261012052610345575b506020916101c052602460405180948193632cf632d160e11b835260048301525afa801561033a575f906102fc575b6001600160a01b03165f190190506102ed57604051611525908161040082396080518181816103d0015281816109610152610a09015260a0518181816107840152610f04015260c05181818161031a01526107ba015260e05181818161038f01526108d701526101005181818161012101528181610488015261052f0152610120518181816101aa0152818161040b0152818161064c01528181610be001528181610d9f01526112290152610140518181816101dd0152818161067f01528181610c0701528181610dc60152610f4501526101605181818161016901528181610355015281816105ff01528181610bad01528181610d6c01526111f801526101805181818161022a015281816104ca015281816106cc01528181610c6501528181610cf5015261125d01526101a0518181816105620152610ec101526101c05181818161044d0152610b7201526101e051816111c30152f35b6308ca5c0760e31b5f5260045ffd5b506020813d602011610332575b81610316602093836103c8565b8101031261032e576103296001916103eb565b610194565b5f80fd5b3d9150610309565b6040513d5f823e3d90fd5b156001600160a01b038316151461035c575f610165565b635110d79160e01b5f5260045ffd5b9050602081519101519060208110610390575b506001600160a01b031615155f61013f565b5f199060200360031b1b165f61037e565b80516020149150610139565b634e487b7160e01b5f52604160045260245ffd5b6060610133565b601f909101601f19168101906001600160401b038211908210176103ad57604052565b51906001600160a01b038216820361032e5756fe6080806040526004361015610012575f80fd5b5f3560e01c90816303c0501914610f285750806311eac85514610ee55780631efd482a14610ea257806352c8c75c146104ee5780635d4edca7146104ab5780635e743ef71461047157806368c551ad1461042e5780636c9075b7146103f45780636e400983146103b4578063775c0d031461037857806385e1f4d01461033e5780639748cf7c146102fb5763e6eb8ade146100ab575f80fd5b60403660031901126102e4576100bf610f69565b6024359067ffffffffffffffff82116102e457366023830112156102e4578160040135906100ec82610fd2565b916100fa6040519384610fb0565b80835236602482860101116102e4576020815f92602461021e9701838701378401015260207f00000000000000000000000000000000000000000000000000000000000000009161014a836111c1565b6101526110ae565b6001600160a01b036040519361016785610f7f565b7f00000000000000000000000000000000000000000000000000000000000000008552838686015216948560408501525f606085015286608085015260a08401527f000000000000000000000000000000000000000000000000000000000000000060c084015260e08301526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610100830152604051808097819463d52471c160e01b8352600483016110e1565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102f05761029b575b7f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac492506102966040519283928352604060208401526040830190610ffd565b0390a1005b6020833d6020116102e8575b816102b460209383610fb0565b810103126102e4577f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac49250610257565b5f80fd5b3d91506102a7565b6040513d5f823e3d90fd5b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102e4575f3660031901126102e45760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b346102e4575f3660031901126102e457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60803660031901126102e457610502610f69565b6024356001600160a01b0381168091036102e4576064356001600160a01b0381166044358183036102e4577f0000000000000000000000000000000000000000000000000000000000000000610557816111c1565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016966001600160a01b038116958887145f14610778575050863b156102e4575f80976024604051809a8193632e1a7d4d60e01b83528860048401525af19182156102f0576106c097602093610768575b506105e6846105e083826110a1565b926110a1565b916105ef6110ae565b90604051936105fd85610f7f565b7f000000000000000000000000000000000000000000000000000000000000000085528585015286604085015285606085015260405161063d8682610fb0565b5f8152608085015260a08401527f000000000000000000000000000000000000000000000000000000000000000060c084015260e08301526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610100830152604051808099819463d52471c160e01b8352600483016110e1565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156102f0577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95608095610739575b505b604051938452602084015260408301526060820152a1005b61075a9060203d602011610761575b6107528183610fb0565b810190610fee565b508661071f565b503d610748565b5f61077291610fb0565b886105d1565b929190939597509593957f0000000000000000000000000000000000000000000000000000000000000000916001600160a01b03831694858a145f14610cdd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316948515610b4a5750505050604051636eb1769f60e11b8152306004820152826024820152602081604481875afa80156102f05786915f91610b13575b509161087261083361086493610877956110a1565b60405163095ea7b360e01b60208201526001600160a01b038716602482015260448101919091529283906064820190565b03601f198101845283610fb0565b611433565b6040516332dd704760e21b8152602081600481855afa9081156102f0575f91610ace575b509060206001600160a01b03926024604051809581936352b7631960e11b8352886004840152165afa9182156102f0575f92610a9a575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b610930575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610721565b84811115610a9457845b84156109ef57833b156102e457604051634701287760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528960448201528360648201525f60848201525f60a48201526107d060c48201525f8160e48183895af180156102f0576109df575b505b81039081116109cb57806108fb565b634e487b7160e01b5f52601160045260245ffd5b5f6109e991610fb0565b8a6109ba565b6040516337e9a82760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528960448201528360648201526020816084815f895af180156102f057610a55575b506109bc565b6020813d8211610a8c575b81610a6d60209383610fb0565b810103126102e4575167ffffffffffffffff8116036102e4578a610a4f565b3d9150610a60565b8061093a565b9091506020813d602011610ac6575b81610ab660209383610fb0565b810103126102e4575190876108d2565b3d9150610aa9565b90506020813d602011610b0b575b81610ae960209383610fb0565b810103126102e45751906001600160a01b03821682036102e45790602061089b565b3d9150610adc565b9150506020813d602011610b42575b81610b2f60209383610fb0565b810103126102e45751859061087261081e565b3d9150610b22565b88809750602096508b99610c599c9495965092610b9d92610b986001600160a01b03959d9b9d7f000000000000000000000000000000000000000000000000000000000000000080986112ce565b6113bd565b9160405194610bab86610f7f565b7f0000000000000000000000000000000000000000000000000000000000000000865284878701525f604087015260608601527f00000000000000000000000000000000000000000000000000000000000000006080860152817f00000000000000000000000000000000000000000000000000000000000000001660a08601521660c08401525f60e084015261010083015260405180809981946324fd57fb60e01b835260048301611021565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156102f0577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95608095610cbe575b50610721565b610cd69060203d602011610761576107528183610fb0565b5086610cb8565b60405163070e40ef60e31b81529199969896979550937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316935090602081600481875afa9182156102f0578887925f94610e53575b50826020976001600160a01b0393610b988796610e199a9998610d5c966112ce565b9160405193610d6a85610f7f565b7f000000000000000000000000000000000000000000000000000000000000000085528c888601525f604086015260608501527f00000000000000000000000000000000000000000000000000000000000000006080850152817f00000000000000000000000000000000000000000000000000000000000000001660a08501521660c08301525f60e08301526101008201526040519889809481936324fd57fb60e01b835260048301611021565b03925af19384156102f0577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95608095610cbe5750610721565b925050939291506020813d602011610e9a575b81610e7360209383610fb0565b810103126102e457516001600160a01b03811681036102e457919290919085908882610d3a565b3d9150610e66565b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e4575f3660031901126102e4576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b03821682036102e457565b610120810190811067ffffffffffffffff821117610f9c57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610f9c57604052565b67ffffffffffffffff8111610f9c57601f01601f191660200190565b908160209103126102e4575190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b61014061010061109e936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a08501526001600160a01b0360a08201511660c08501526001600160a01b0360c08201511660e085015260e081015182850152015191610120808201520190610ffd565b90565b919082018092116109cb57565b604051906110bd602083610fb0565b5f80835282815b8281106110d057505050565b8060606020809385010152016110c4565b6020815281516020820152602082015160408201526001600160a01b0360408301511660608201526060820151608082015261112e608083015161012060a0840152610140830190610ffd565b9160a081015160c083015260c081015160e083015260e081015192601f1983820301610100840152835180825260208201916020808360051b8301019601925f915b8383106111945750505050506001600160a01b036101006101209201511691015290565b90919293966020806111b2600193601f198682030187528b51610ffd565b99019301930191939290611170565b7f00000000000000000000000000000000000000000000000000000000000000003a116112bf5760405190631c588c9d60e21b82527f000000000000000000000000000000000000000000000000000000000000000060048301523a602483015260448201527f000000000000000000000000000000000000000000000000000000000000000060648201526020816084816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102f0575f91611290575090565b90506020813d6020116112b7575b816112ab60209383610fb0565b810103126102e4575190565b3d915061129e565b632ccc026d60e21b5f5260045ffd5b60405163095ea7b360e01b602082019081526001600160a01b03841660248301526044808301959095529381529192611308606484610fb0565b5f806001600160a01b0384169285519082855af1906113256113ec565b8261138b575b5081611380575b501561133d57505050565b61087261137e936001600160a01b036040519163095ea7b360e01b60208401521660248201525f604482015260448152611378606482610fb0565b82611433565b565b90503b15155f611332565b805191925081159182156113a3575b5050905f61132b565b6113b6925060208091830101910161141b565b5f8061139a565b6001600160a01b039192826040519416602085015260408401521660608201526060815261109e608082610fb0565b3d15611416573d906113fd82610fd2565b9161140b6040519384610fb0565b82523d5f602084013e565b606090565b908160209103126102e4575180151581036102e45790565b906001600160a01b0361149492165f8060405193611452604086610fb0565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161148e6113ec565b916114c4565b80519081159182156114aa575b5050156102e457565b6114bd925060208091830101910161141b565b5f806114a1565b919250156114e0578151156114d7575090565b3b156102e45790565b5080519081156102e457602001fdfea26469706673582212209aaab6e4dbb488c2fef2af68bda17e3cd27a1c90551a3f620ce7aa816e643b3764736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_chainId","type":"uint256","internalType":"uint256"},{"name":"_bridgeHub","type":"address","internalType":"contract BridgeHubInterface"},{"name":"_circleUSDC","type":"address","internalType":"contract IERC20"},{"name":"_usdcSharedBridge","type":"address","internalType":"address"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_recipientCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l2RefundAddress","type":"address","internalType":"address"},{"name":"_customGasTokenFunder","type":"address","internalType":"contract FunderInterface"},{"name":"_l2GasLimit","type":"uint256","internalType":"uint256"},{"name":"_l1GasToL2GasPerPubDataLimit","type":"uint256","internalType":"uint256"},{"name":"_maxTxGasprice","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_HUB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BridgeHubInterface"}],"stateMutability":"view"},{"type":"function","name":"CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"CUSTOM_GAS_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"CUSTOM_GAS_TOKEN_FUNDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FunderInterface"}],"stateMutability":"view"},{"type":"function","name":"L1_GAS_TO_L2_GAS_PER_PUB_DATA_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L2_REFUND_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"USDC_SHARED_BRIDGE","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":"ETHGasTokenNotAllowed","inputs":[]},{"type":"error","name":"InvalidBridgeConfig","inputs":[]},{"type":"error","name":"TransactionFeeTooHigh","inputs":[]}],"bytecode":"0x61024080604052346103805761018081611bf28038038091610021828561041a565b83398101031261038057805160208201516001600160a01b038116929190838103610380576040830151926001600160a01b038416908185036103805761006a6060820161043d565b94608082015160018060a01b038116948582036103805760a08401519063ffffffff821682036103805760c08501516001600160a01b0381168103610380576100b560e0870161043d565b610100870151939092906001600160a01b038516850361038057610120880151956101606101408a01519901519760a05260c0526080525f80604051602081019063011a412160e61b82526004815261010f60248261041a565b51908c5afa3d15610413573d6001600160401b0381116103ff5760405190610141601f8201601f19166020018361041a565b81523d5f602083013e5b816103f3575b816103bd575b5060e0528961016052610180526101a0526101405261020052610100526102205261012052610397575b506020916101c052602460405180948193632cf632d160e11b835260048301525afa801561038c575f9061034e575b6101e08190526001600160a01b0316600114905061033f576040516117a0908161045282396080518181816104b00152818161119e0152611232015260a0518181816106be01526109c0015260c0518181816103fa01528181610feb015261137e015260e05181818161046f01526110eb0152610100518181816101300152818161056801526109f5015261012051818181610243015281816104eb01528181610b8101528181610da601528181610f12015261140d015261014051818181610276015281816106ff01528181610ba801528181610dd90152610f390152610160518181816102030152818161043501528181610b4f01528181610d5001528181610ee001526113dc015261018051818181610167015281816105aa01528181610a2d015261144101526101a05181818161067b0152610a7301526101c05181818161052d0152610e9f01526101e0518181816101be015281816105ed01528181610af501528181610ce901526114c30152610200518181816103b7015261147c015261022051816113a70152f35b63958e6ea160e01b5f5260045ffd5b506020813d602011610384575b816103686020938361041a565b810103126103805761037b60019161043d565b6101b0565b5f80fd5b3d915061035b565b6040513d5f823e3d90fd5b156001600160a01b03831615146103ae575f610181565b635110d79160e01b5f5260045ffd5b90506020815191015190602081106103e2575b506001600160a01b031615155f610157565b5f199060200360031b1b165f6103d0565b80516020149150610151565b634e487b7160e01b5f52604160045260245ffd5b606061014b565b601f909101601f19168101906001600160401b038211908210176103ff57604052565b51906001600160a01b03821682036103805756fe6080806040526004361015610012575f80fd5b5f3560e01c90816303c05019146106e25750806311eac8551461069f5780631efd482a1461065c57806352c8c75c1461061157806358f76b65146105ce5780635d4edca71461058b5780635e743ef71461055157806368c551ad1461050e5780636c9075b7146104d45780636e40098314610494578063775c0d031461045857806385e1f4d01461041e5780639748cf7c146103db578063e58921a2146103985763e6eb8ade146100c1575f80fd5b6040366003190112610354576100d5610723565b60243567ffffffffffffffff811161035457366023820112156103545780600401356101008161078c565b9161010e604051938461076a565b818352366024838301011161035457815f9260246020930183860137830101527f0000000000000000000000000000000000000000000000000000000000000000610158816113a5565b60405163070e40ef60e31b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa928315610360575f966101e3826020966102b8968b9161036b575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611549565b6001600160a01b036101f361089b565b916040519361020185610739565b7f0000000000000000000000000000000000000000000000000000000000000000855287850152169586604084015288606084015287608084015260a08301527f000000000000000000000000000000000000000000000000000000000000000060c083015260e08201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661010082015260405196878094819363d52471c160e01b8352600483016108ce565b03925af180156103605761030b575b7f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4925061030660405192839283526040602084015260408301906107d6565b0390a1005b6020833d602011610358575b816103246020938361076a565b81010312610354577f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac492506102c7565b5f80fd5b3d9150610317565b6040513d5f823e3d90fd5b61038b9150883d8a11610391575b610383818361076a565b8101906107a8565b5f6101b3565b503d610379565b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610354575f3660031901126103545760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b34610354575f36600319011261035457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b608036600319011261035457610625610723565b602435906001600160a01b038216820361035457606435906001600160a01b03821682036103545761065a92604435916109ae565b005b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f366003190112610354576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361035457565b610120810190811067ffffffffffffffff82111761075657604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761075657604052565b67ffffffffffffffff811161075657601f01601f191660200190565b9081602091031261035457516001600160a01b03811681036103545790565b90816020910312610354575190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b610140610100610877936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a08501526001600160a01b0360a08201511660c08501526001600160a01b0360c08201511660e085015260e0810151828501520151916101208082015201906107d6565b90565b9190820180921161088757565b634e487b7160e01b5f52601160045260245ffd5b604051906108aa60208361076a565b5f80835282815b8281106108bd57505050565b8060606020809385010152016108b1565b6020815281516020820152602082015160408201526001600160a01b0360408301511660608201526060820151608082015261091b608083015161012060a08401526101408301906107d6565b9160a081015160c083015260c081015160e083015260e081015192601f1983820301610100840152835180825260208201916020808360051b8301019601925f915b8383106109815750505050506001600160a01b036101006101209201511691015290565b909192939660208061099f600193601f198682030187528b516107d6565b9901930193019193929061095d565b92939290916001600160a01b038083167f0000000000000000000000000000000000000000000000000000000000000000918216818114928380611373575b610fce5750507f0000000000000000000000000000000000000000000000000000000000000000610a1d816113a5565b60405163070e40ef60e31b8152927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290602085600481875afa908115610360575f955f92610fad575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031696818803610cd0575050853b15610354575f8096602460405180998193632e1a7d4d60e01b83528c60048401525af19182156103605787968c93610ca4575b50916001600160a01b038260209694610b1a87610bfb9896857f000000000000000000000000000000000000000000000000000000000000000016611549565b826040519460018a8701528a604087015216606085015260608452610b4060808561076a565b60405194610b4d86610739565b7f000000000000000000000000000000000000000000000000000000000000000086528886015288604086015260608501527f00000000000000000000000000000000000000000000000000000000000000006080850152817f00000000000000000000000000000000000000000000000000000000000000001660a08501521660c08301528660e08301526101008201526040519586809481936324fd57fb60e01b8352600483016107fa565b03925af1908115610c985750917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b959691610c6493610c69575b505b604080516001600160a01b0395861681529585166020870152850152909116606083015281906080820190565b0390a1565b610c8a9060203d602011610c91575b610c82818361076a565b8101906107c7565b505f610c35565b503d610c78565b604051903d90823e3d90fd5b60209593919650610bfb9492610cc25f6001600160a01b039361076a565b5f9792949650929450610ada565b5f9b9c9750602096509188926001600160a01b039695967f000000000000000000000000000000000000000000000000000000000000000016908184148e14610e7657505094610d328392610e1b97610d2c610d37968561087a565b91611549565b61087a565b90610d4061089b565b9060405192610d4e84610739565b7f00000000000000000000000000000000000000000000000000000000000000008452868401526001600160a01b0387166040840152876060840152604051610d97878261076a565b8b8152608084015260a08301527f000000000000000000000000000000000000000000000000000000000000000060c083015260e08201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661010082015260405198898094819363d52471c160e01b8352600483016108ce565b03925af1918215610360577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95610c6493610e57575b50610c37565b610e6f9060203d602011610c9157610c82818361076a565b505f610e51565b96949390968d14610f8c575090610e99846001600160a01b0393610e1b98611549565b610ec5897f00000000000000000000000000000000000000000000000000000000000000008093611549565b610ed0898b8a611638565b9260405194610ede86610739565b7f00000000000000000000000000000000000000000000000000000000000000008652888601528c604086015260608501527f00000000000000000000000000000000000000000000000000000000000000006080850152817f00000000000000000000000000000000000000000000000000000000000000001660a08501521660c08301528960e08301526101008201526040519889809481936324fd57fb60e01b8352600483016107fa565b610ec590826001600160a01b0394610fa88883610e1b9c611549565b611549565b610fc791925060203d60201161039157610383818361076a565b905f610a70565b604051636eb1769f60e11b81523060048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116602483018190529395508a169350602081604481885afa80156103605786915f9161133c575b50916110866110476110789361108b9561087a565b60405163095ea7b360e01b60208201526001600160a01b038716602482015260448101919091529283906064820190565b03601f19810184528361076a565b6116ae565b6040516332dd704760e21b8152602081600481855afa908115610360575f916112f7575b509160206001600160a01b03936024604051809681936352b7631960e11b8352896004840152165afa928315610360575f936112c3575b5091927f0000000000000000000000000000000000000000000000000000000000000000929085805b61116d575050604080516001600160a01b0397881681529787166020890152870194909452505050509092166060830152907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b908060808101610c64565b858111156112bd57855b851561121857843b1561035457604051634701287760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528460448201528360648201525f60848201525f60a48201526107d060c48201525f8160e481838a5af1801561036057611208575b505b8103908111610887578061110f565b5f6112129161076a565b5f6111f7565b6040516337e9a82760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528460448201528360648201526020816084815f8a5af180156103605761127e575b506111f9565b6020813d82116112b5575b816112966020938361076a565b81010312610354575167ffffffffffffffff811603610354575f611278565b3d9150611289565b80611177565b9092506020813d6020116112ef575b816112df6020938361076a565b810103126103545751915f6110e6565b3d91506112d2565b90506020813d602011611334575b816113126020938361076a565b810103126103545751916001600160a01b0383168303610354579160206110af565b3d9150611305565b9150506020813d60201161136b575b816113586020938361076a565b8101031261035457518590611086611032565b3d915061134b565b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615156109ed565b7f00000000000000000000000000000000000000000000000000000000000000003a1161153a5760405190631c588c9d60e21b82527f000000000000000000000000000000000000000000000000000000000000000060048301523a602483015260448201527f000000000000000000000000000000000000000000000000000000000000000060648201526020816084816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610360575f91611508575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610354575f809160446040518094819363f3fef3a360e01b83526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048401528760248401525af18015610360576114fe575090565b5f6108779161076a565b90506020813d602011611532575b816115236020938361076a565b8101031261035457515f611471565b3d9150611516565b632ccc026d60e21b5f5260045ffd5b60405163095ea7b360e01b602082019081526001600160a01b0384166024830152604480830195909552938152919261158360648461076a565b5f806001600160a01b0384169285519082855af1906115a0611667565b82611606575b50816115fb575b50156115b857505050565b6110866115f9936001600160a01b036040519163095ea7b360e01b60208401521660248201525f6044820152604481526115f360648261076a565b826116ae565b565b90503b15155f6115ad565b8051919250811591821561161e575b5050905f6115a6565b6116319250602080918301019101611696565b5f80611615565b6001600160a01b039192826040519416602085015260408401521660608201526060815261087760808261076a565b3d15611691573d906116788261078c565b91611686604051938461076a565b82523d5f602084013e565b606090565b90816020910312610354575180151581036103545790565b906001600160a01b0361170f92165f80604051936116cd60408661076a565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af1611709611667565b9161173f565b8051908115918215611725575b50501561035457565b6117389250602080918301019101611696565b5f8061171c565b9192501561175b57815115611752575090565b3b156103545790565b50805190811561035457602001fdfea2646970667358221220f5d8d1e366de6644b135290ba5a299e7aeca3f5e1ba4c456164acadbdaee707e64736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_chainId","type":"uint256","internalType":"uint256"},{"name":"_bridgeHub","type":"address","internalType":"contract BridgeHubInterface"},{"name":"_circleUSDC","type":"address","internalType":"contract IERC20"},{"name":"_usdcSharedBridge","type":"address","internalType":"address"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_recipientCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l2RefundAddress","type":"address","internalType":"address"},{"name":"_customGasTokenFunder","type":"address","internalType":"contract FunderInterface"},{"name":"_l2GasLimit","type":"uint256","internalType":"uint256"},{"name":"_l1GasToL2GasPerPubDataLimit","type":"uint256","internalType":"uint256"},{"name":"_maxTxGasprice","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_HUB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BridgeHubInterface"}],"stateMutability":"view"},{"type":"function","name":"CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"CUSTOM_GAS_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"CUSTOM_GAS_TOKEN_FUNDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FunderInterface"}],"stateMutability":"view"},{"type":"function","name":"L1_GAS_TO_L2_GAS_PER_PUB_DATA_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"L2_REFUND_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"USDC_SHARED_BRIDGE","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":"ETHGasTokenNotAllowed","inputs":[]},{"type":"error","name":"InvalidBridgeConfig","inputs":[]},{"type":"error","name":"TransactionFeeTooHigh","inputs":[]}],"bytecode":"0x61024080604052346103805761018081611bf28038038091610021828561041a565b83398101031261038057805160208201516001600160a01b038116929190838103610380576040830151926001600160a01b038416908185036103805761006a6060820161043d565b94608082015160018060a01b038116948582036103805760a08401519063ffffffff821682036103805760c08501516001600160a01b0381168103610380576100b560e0870161043d565b610100870151939092906001600160a01b038516850361038057610120880151956101606101408a01519901519760a05260c0526080525f80604051602081019063011a412160e61b82526004815261010f60248261041a565b51908c5afa3d15610413573d6001600160401b0381116103ff5760405190610141601f8201601f19166020018361041a565b81523d5f602083013e5b816103f3575b816103bd575b5060e0528961016052610180526101a0526101405261020052610100526102205261012052610397575b506020916101c052602460405180948193632cf632d160e11b835260048301525afa801561038c575f9061034e575b6101e08190526001600160a01b0316600114905061033f576040516117a0908161045282396080518181816104b00152818161119e0152611232015260a0518181816106be01526109c0015260c0518181816103fa01528181610feb015261137e015260e05181818161046f01526110eb0152610100518181816101300152818161056801526109f5015261012051818181610243015281816104eb01528181610b8101528181610da601528181610f12015261140d015261014051818181610276015281816106ff01528181610ba801528181610dd90152610f390152610160518181816102030152818161043501528181610b4f01528181610d5001528181610ee001526113dc015261018051818181610167015281816105aa01528181610a2d015261144101526101a05181818161067b0152610a7301526101c05181818161052d0152610e9f01526101e0518181816101be015281816105ed01528181610af501528181610ce901526114c30152610200518181816103b7015261147c015261022051816113a70152f35b63958e6ea160e01b5f5260045ffd5b506020813d602011610384575b816103686020938361041a565b810103126103805761037b60019161043d565b6101b0565b5f80fd5b3d915061035b565b6040513d5f823e3d90fd5b156001600160a01b03831615146103ae575f610181565b635110d79160e01b5f5260045ffd5b90506020815191015190602081106103e2575b506001600160a01b031615155f610157565b5f199060200360031b1b165f6103d0565b80516020149150610151565b634e487b7160e01b5f52604160045260245ffd5b606061014b565b601f909101601f19168101906001600160401b038211908210176103ff57604052565b51906001600160a01b03821682036103805756fe6080806040526004361015610012575f80fd5b5f3560e01c90816303c05019146106e25750806311eac8551461069f5780631efd482a1461065c57806352c8c75c1461061157806358f76b65146105ce5780635d4edca71461058b5780635e743ef71461055157806368c551ad1461050e5780636c9075b7146104d45780636e40098314610494578063775c0d031461045857806385e1f4d01461041e5780639748cf7c146103db578063e58921a2146103985763e6eb8ade146100c1575f80fd5b6040366003190112610354576100d5610723565b60243567ffffffffffffffff811161035457366023820112156103545780600401356101008161078c565b9161010e604051938461076a565b818352366024838301011161035457815f9260246020930183860137830101527f0000000000000000000000000000000000000000000000000000000000000000610158816113a5565b60405163070e40ef60e31b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa928315610360575f966101e3826020966102b8968b9161036b575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611549565b6001600160a01b036101f361089b565b916040519361020185610739565b7f0000000000000000000000000000000000000000000000000000000000000000855287850152169586604084015288606084015287608084015260a08301527f000000000000000000000000000000000000000000000000000000000000000060c083015260e08201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661010082015260405196878094819363d52471c160e01b8352600483016108ce565b03925af180156103605761030b575b7f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4925061030660405192839283526040602084015260408301906107d6565b0390a1005b6020833d602011610358575b816103246020938361076a565b81010312610354577f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac492506102c7565b5f80fd5b3d9150610317565b6040513d5f823e3d90fd5b61038b9150883d8a11610391575b610383818361076a565b8101906107a8565b5f6101b3565b503d610379565b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610354575f3660031901126103545760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b34610354575f36600319011261035457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b608036600319011261035457610625610723565b602435906001600160a01b038216820361035457606435906001600160a01b03821682036103545761065a92604435916109ae565b005b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f3660031901126103545760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610354575f366003190112610354576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361035457565b610120810190811067ffffffffffffffff82111761075657604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761075657604052565b67ffffffffffffffff811161075657601f01601f191660200190565b9081602091031261035457516001600160a01b03811681036103545790565b90816020910312610354575190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b610140610100610877936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a08501526001600160a01b0360a08201511660c08501526001600160a01b0360c08201511660e085015260e0810151828501520151916101208082015201906107d6565b90565b9190820180921161088757565b634e487b7160e01b5f52601160045260245ffd5b604051906108aa60208361076a565b5f80835282815b8281106108bd57505050565b8060606020809385010152016108b1565b6020815281516020820152602082015160408201526001600160a01b0360408301511660608201526060820151608082015261091b608083015161012060a08401526101408301906107d6565b9160a081015160c083015260c081015160e083015260e081015192601f1983820301610100840152835180825260208201916020808360051b8301019601925f915b8383106109815750505050506001600160a01b036101006101209201511691015290565b909192939660208061099f600193601f198682030187528b516107d6565b9901930193019193929061095d565b92939290916001600160a01b038083167f0000000000000000000000000000000000000000000000000000000000000000918216818114928380611373575b610fce5750507f0000000000000000000000000000000000000000000000000000000000000000610a1d816113a5565b60405163070e40ef60e31b8152927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290602085600481875afa908115610360575f955f92610fad575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031696818803610cd0575050853b15610354575f8096602460405180998193632e1a7d4d60e01b83528c60048401525af19182156103605787968c93610ca4575b50916001600160a01b038260209694610b1a87610bfb9896857f000000000000000000000000000000000000000000000000000000000000000016611549565b826040519460018a8701528a604087015216606085015260608452610b4060808561076a565b60405194610b4d86610739565b7f000000000000000000000000000000000000000000000000000000000000000086528886015288604086015260608501527f00000000000000000000000000000000000000000000000000000000000000006080850152817f00000000000000000000000000000000000000000000000000000000000000001660a08501521660c08301528660e08301526101008201526040519586809481936324fd57fb60e01b8352600483016107fa565b03925af1908115610c985750917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b959691610c6493610c69575b505b604080516001600160a01b0395861681529585166020870152850152909116606083015281906080820190565b0390a1565b610c8a9060203d602011610c91575b610c82818361076a565b8101906107c7565b505f610c35565b503d610c78565b604051903d90823e3d90fd5b60209593919650610bfb9492610cc25f6001600160a01b039361076a565b5f9792949650929450610ada565b5f9b9c9750602096509188926001600160a01b039695967f000000000000000000000000000000000000000000000000000000000000000016908184148e14610e7657505094610d328392610e1b97610d2c610d37968561087a565b91611549565b61087a565b90610d4061089b565b9060405192610d4e84610739565b7f00000000000000000000000000000000000000000000000000000000000000008452868401526001600160a01b0387166040840152876060840152604051610d97878261076a565b8b8152608084015260a08301527f000000000000000000000000000000000000000000000000000000000000000060c083015260e08201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661010082015260405198898094819363d52471c160e01b8352600483016108ce565b03925af1918215610360577fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b95610c6493610e57575b50610c37565b610e6f9060203d602011610c9157610c82818361076a565b505f610e51565b96949390968d14610f8c575090610e99846001600160a01b0393610e1b98611549565b610ec5897f00000000000000000000000000000000000000000000000000000000000000008093611549565b610ed0898b8a611638565b9260405194610ede86610739565b7f00000000000000000000000000000000000000000000000000000000000000008652888601528c604086015260608501527f00000000000000000000000000000000000000000000000000000000000000006080850152817f00000000000000000000000000000000000000000000000000000000000000001660a08501521660c08301528960e08301526101008201526040519889809481936324fd57fb60e01b8352600483016107fa565b610ec590826001600160a01b0394610fa88883610e1b9c611549565b611549565b610fc791925060203d60201161039157610383818361076a565b905f610a70565b604051636eb1769f60e11b81523060048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116602483018190529395508a169350602081604481885afa80156103605786915f9161133c575b50916110866110476110789361108b9561087a565b60405163095ea7b360e01b60208201526001600160a01b038716602482015260448101919091529283906064820190565b03601f19810184528361076a565b6116ae565b6040516332dd704760e21b8152602081600481855afa908115610360575f916112f7575b509160206001600160a01b03936024604051809681936352b7631960e11b8352896004840152165afa928315610360575f936112c3575b5091927f0000000000000000000000000000000000000000000000000000000000000000929085805b61116d575050604080516001600160a01b0397881681529787166020890152870194909452505050509092166060830152907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b908060808101610c64565b858111156112bd57855b851561121857843b1561035457604051634701287760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528460448201528360648201525f60848201525f60a48201526107d060c48201525f8160e481838a5af1801561036057611208575b505b8103908111610887578061110f565b5f6112129161076a565b5f6111f7565b6040516337e9a82760e11b815281600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528460448201528360648201526020816084815f8a5af180156103605761127e575b506111f9565b6020813d82116112b5575b816112966020938361076a565b81010312610354575167ffffffffffffffff811603610354575f611278565b3d9150611289565b80611177565b9092506020813d6020116112ef575b816112df6020938361076a565b810103126103545751915f6110e6565b3d91506112d2565b90506020813d602011611334575b816113126020938361076a565b810103126103545751916001600160a01b0383168303610354579160206110af565b3d9150611305565b9150506020813d60201161136b575b816113586020938361076a565b8101031261035457518590611086611032565b3d915061134b565b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615156109ed565b7f00000000000000000000000000000000000000000000000000000000000000003a1161153a5760405190631c588c9d60e21b82527f000000000000000000000000000000000000000000000000000000000000000060048301523a602483015260448201527f000000000000000000000000000000000000000000000000000000000000000060648201526020816084816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610360575f91611508575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610354575f809160446040518094819363f3fef3a360e01b83526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048401528760248401525af18015610360576114fe575090565b5f6108779161076a565b90506020813d602011611532575b816115236020938361076a565b8101031261035457515f611471565b3d9150611516565b632ccc026d60e21b5f5260045ffd5b60405163095ea7b360e01b602082019081526001600160a01b0384166024830152604480830195909552938152919261158360648461076a565b5f806001600160a01b0384169285519082855af1906115a0611667565b82611606575b50816115fb575b50156115b857505050565b6110866115f9936001600160a01b036040519163095ea7b360e01b60208401521660248201525f6044820152604481526115f360648261076a565b826116ae565b565b90503b15155f6115ad565b8051919250811591821561161e575b5050905f6115a6565b6116319250602080918301019101611696565b5f80611615565b6001600160a01b039192826040519416602085015260408401521660608201526060815261087760808261076a565b3d15611691573d906116788261078c565b91611686604051938461076a565b82523d5f602084013e565b606090565b90816020910312610354575180151581036103545790565b906001600160a01b0361170f92165f80604051936116cd60408661076a565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af1611709611667565b9161173f565b8051908115918215611725575b50501561035457565b6117389250602080918301019101611696565b5f8061171c565b9192501561175b57815115611752575090565b3b156103545790565b50805190811561035457602001fdfea2646970667358221220f04fdacf2cf898043887520b561bd0b6ba985f30de3262d868af19f9d3a398f264736f6c634300081e0033"}