@across-protocol/contracts 5.0.11 → 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 (64) hide show
  1. package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
  2. package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
  3. package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
  4. package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
  5. package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
  6. package/contracts/test/MockCCTP.sol +10 -0
  7. package/dist/broadcast/deployed-addresses.json +172 -102
  8. package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  9. package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  10. package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  11. package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  12. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  13. package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  14. package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
  15. package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  16. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  17. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  18. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  19. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  20. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  21. package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  22. package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  23. package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  24. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  25. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  26. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  27. package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  28. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  29. package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  30. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  31. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  32. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  33. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  34. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
  35. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
  36. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
  37. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
  38. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  39. package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  40. package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
  41. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  42. package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  43. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  44. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  45. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  46. package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  47. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  48. package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  49. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  50. package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  51. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  52. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  53. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -1
  54. package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  55. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  56. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  57. package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  58. package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  59. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  60. package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  61. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  62. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  63. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_wrappedNativeToken","type":"address","internalType":"contract WETH9Interface"},{"name":"_destinationCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l2Gateway","type":"address","internalType":"address"},{"name":"_tokenRecipient","type":"address","internalType":"address"},{"name":"_spokePool","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"L2_TOKEN_GATEWAY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WRAPPED_NATIVE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"__WithdrawalHelper_init","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"spokePool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"view"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawToken","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amountToReturn","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"_crossDomainAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]}],"bytecode":"0x6101c0806040523461029d5760e081611d088038038091610020828561034a565b83398101031261029d5780516001600160a01b038116810361029d5760208201516001600160a01b0381169290919083830361029d576040810151916001600160a01b038316830361029d5760608201519363ffffffff8516850361029d5761008b6080840161036d565b9160c061009a60a0860161036d565b940151966001600160a01b0388169687890361029d575f93849360a05260c052608052604051602081019063011a412160e61b8252600481526100de60248261034a565b51915afa3d15610343573d6001600160401b03811161032f576040519061010f601f8201601f19166020018361034a565b81523d5f602083013e5b81610323575b816102ed575b5060e05230610100526101605261014052610120525f549060ff8260081c1661029d576004928260ff8060209516036102b4575b506101805260405163e322921160e01b815292839182905afa9081156102a9575f9161026b575b506101a05260405161198690816103828239608051818181610a57015281816113c90152611471015260a051818181610350015281816106b501526112b0015260c05181818161062c01528181610af701526112d9015260e051818181610a92015261136f0152610100518181816107c9015281816109eb0152610e760152610120518181816101e3015281816106f8015261155a0152610140518181816102a5015281816103870152818161049001528181610521015261073b0152610160518161077e0152610180518181816101880152610c2301526101a05181818161027d0152610de60152f35b90506020813d6020116102a1575b816102866020938361034a565b8101031261029d576102979061036d565b5f610180565b5f80fd5b3d9150610279565b6040513d5f823e3d90fd5b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024988360405160ff8152a15f610159565b9050602081519101519060208110610312575b506001600160a01b031615155f610125565b5f199060200360031b1b165f610300565b8051602014915061011f565b634e487b7160e01b5f52604160045260245ffd5b6060610119565b601f909101601f19168101906001600160401b0382119082101761032f57604052565b51906001600160a01b038216820361029d5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301e336671461013957806311eac855146101345780631b3f8c5e1461012f578063203ddfdf1461012a57806327679177146101255780633659cfe6146101205780634f1ef2861461011b5780635285e0581461011657806352d1902d146101115780636e4009831461010c578063775c0d0314610107578063927ede2d146101025780639748cf7c146100fd578063ac9650d8146100f8578063afdac3d6146100f3578063c42a8dbd146100ee578063c4d66de8146100e95763e32292110361000e57610dc7565b610cd4565b610c47565b610c04565b610b92565b610ad8565b610ab7565b610a7b565b610a3b565b6109d1565b6109ab565b610930565b6107a2565b61075f565b61071c565b6106d9565b610696565b610153565b6001600160a01b0381160361014f57565b5f80fd5b3461014f57606036600319011261014f5761016f60043561013e565b60243561017b8161013e565b6044356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040519263766e070360e01b8452602084600481855afa93841561032d575f9461065b575b506001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f1461034657509050610216611550565b803b1561014f57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af1801561032d57610332575b507342000000000000000000000000000000000000103b1561014f57604051631474f2a960e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001660248201526044810182905263ffffffff92909216606483015260a060848301525f60a4830181905290829060c49082907342000000000000000000000000000000000000105af1801561032d5761031957005b806103275f610018936108ed565b8061068c565b610e26565b806103275f610340936108ed565b5f61024a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016821480610629575b156103ab5750505061001891507f00000000000000000000000000000000000000000000000000000000000000006112a4565b60405162b27a4360e81b81526001600160a01b0382166004820152929392602081602481885afa801561032d576001600160a01b03915f9161060a575b50166105ab576001600160a01b037342000000000000000000000000000000000000105b604051630c5d5f7360e01b81526001600160a01b03841660048201529591169290602090869060249082905afa94851561032d575f9561057a575b506001600160a01b038516156104f5578383610462926111e4565b813b1561014f5760405163540abf7360e01b81526001600160a01b03918216600482015293811660248501527f0000000000000000000000000000000000000000000000000000000000000000166044840152606483019190915263ffffffff909216608482015260c060a48201525f60c482018190529091829081838160e481015b03925af1801561032d5761031957005b509250809391933b1561014f57604051631474f2a960e31b81526001600160a01b0393841660048201527f00000000000000000000000000000000000000000000000000000000000000009093166024840152604483019390935263ffffffff16606482015260a060848201525f60a482018190529091829081838160c481016104e5565b61059d91955060203d6020116105a4575b61059581836108ed565b810190610e31565b935f610447565b503d61058b565b60405162b27a4360e81b81526001600160a01b0382166004820152602081602481885afa801561032d576001600160a01b03915f916105eb575b5061040c565b610604915060203d6020116105a45761059581836108ed565b5f6105e5565b610623915060203d6020116105a45761059581836108ed565b5f6103e8565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610378565b61067e91945060203d602011610685575b61067681836108ed565b810190610e0a565b925f6101cd565b503d61066c565b5f91031261014f57565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f576004356107bf8161013e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f916108ab575b506001600160a01b036108836108776065546001600160a01b031690565b6001600160a01b031690565b91160361089c5761001890610896610e50565b906115b8565b6336a816d960e01b5f5260045ffd5b6108c4915060203d6020116105a45761059581836108ed565b5f610859565b63253a6fc960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761090f57604052565b6108d9565b67ffffffffffffffff811161090f57601f01601f191660200190565b604036600319011261014f576004356109488161013e565b6024359067ffffffffffffffff821161014f573660238301121561014f5781600401359061097582610914565b9161098360405193846108ed565b808352366024828601011161014f576020815f92602461001897018387013784010152610e6b565b3461014f575f36600319011261014f5760206001600160a01b0360655416604051908152f35b3461014f575f36600319011261014f576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361014f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b3461014f575f36600319011261014f57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b3461014f575f36600319011261014f5760206040516007602160991b018152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b4d57505050505090565b909192939460208080600193603f19868203018752818a518051918291828552018484015e5f828201840152601f01601f191601019701959491909101920190610b3e565b3461014f57602036600319011261014f5760043567ffffffffffffffff811161014f573660238201121561014f5780600401359067ffffffffffffffff821161014f573660248360051b8301011161014f57610c00916024610bf492016110c4565b60405191829182610b1b565b0390f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f57600435610c648161013e565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2005b63ba97b39d60e01b5f5260045ffd5b3461014f57602036600319011261014f57600435610cf18161013e565b610d3f5f5491610d25610d0f610d0b8560ff9060081c1690565b1590565b80948195610db9575b8115610d99575b50610e49565b82610d36600160ff195f5416175f55565b610d825761114e565b610d4557005b610d5361ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610d9461010061ff00195f5416175f55565b61114e565b303b15915081610dab575b505f610d1f565b60ff1660011490505f610da4565b600160ff8216109150610d18565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9081602091031261014f575163ffffffff8116810361014f5790565b6040513d5f823e3d90fd5b9081602091031261014f5751610e468161013e565b90565b1561014f57565b60405190610e5f6020836108ed565b5f808352366020840137565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f91610f36575b506001600160a01b03610f246108776065546001600160a01b031690565b91160361089c57610f349161166e565b565b610f4f915060203d6020116105a45761059581836108ed565b5f610f06565b67ffffffffffffffff811161090f5760051b60200190565b90610f7782610f55565b610f8460405191826108ed565b8281528092610f95601f1991610f55565b01905f5b828110610fa557505050565b806060602080938501015201610f99565b634e487b7160e01b5f52603260045260245ffd5b919081101561100c5760051b81013590601e198136030182121561014f57019081359167ffffffffffffffff831161014f57602001823603811361014f579190565b610fb6565b908092918237015f815290565b3d15611048573d9061102f82610914565b9161103d60405193846108ed565b82523d5f602084013e565b606090565b60208183031261014f5780519067ffffffffffffffff821161014f570181601f8201121561014f5780519061108182610914565b9261108f60405194856108ed565b8284526020838301011161014f57815f9260208093018386015e8301015290565b805182101561100c5760209160051b010190565b9190916110d083610f6d565b925f5b8181106110df57505050565b5f806110ec838587610fca565b906110fc60405180938193611011565b0390305af461110961101e565b901561112f579060019161111d82886110b0565b5261112881876110b0565b50016110d3565b604481511061014f5780602480600461014f940151830101910161104d565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b9081602091031261014f575190565b634e487b7160e01b5f52601160045260245ffd5b919082018092116111df57565b6111be565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa90811561032d57610f34946112709261123c925f91611275575b506111d2565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836108ed565b611725565b611297915060203d60201161129d575b61128f81836108ed565b8101906111af565b5f611236565b503d611285565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926113058385846111e4565b6040516332dd704760e21b815291602083600481885afa92831561032d575f93611526575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa92831561032d575f93611505575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b61139c57505050505050565b838111156114ff57835b851561145b57863b1561014f57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561032d5761144193611447575b506117df565b80611390565b806103275f611455936108ed565b5f61143b565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561032d57611441936114d157506117df565b6114f19060203d81116114f8575b6114e981836108ed565b8101906117bf565b505f61143b565b503d6114df565b806113a6565b61151f91935060203d60201161129d5761128f81836108ed565b915f61136a565b6001600160a01b039193506115499060203d6020116105a45761059581836108ed565b929061132a565b4761155757565b477f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561014f575f90600460405180948193630d0e30db60e41b83525af1801561032d576115ae575b50565b5f610f34916108ed565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115ec57610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161164d575b5061161c575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34915f916117ec565b61166791925060203d60201161129d5761128f81836108ed565b905f611613565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116a257610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611704575b506116d2575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34916001916117ec565b61171e91925060203d60201161129d5761128f81836108ed565b905f6116c9565b906001600160a01b0361178692165f80604051936117446040866108ed565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161178061101e565b91611925565b805190811591821561179c575b50501561014f57565b819250906020918101031261014f5760200151801515810361014f575f80611793565b9081602091031261014f575167ffffffffffffffff8116810361014f5790565b919082039182116111df57565b916117f6836118b7565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916118af575b50611839575050565b6115ab915f806040519361184e6060866108ed565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af461178061101e565b90505f611830565b803b1561014f576001600160a01b031673ffffffffffffffffffffffffffffffffffffffff197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9192501561194157815115611938575090565b3b1561014f5790565b50805190811561014f57602001fdfea26469706673582212203f99a06bf47bb785b7d3afee3cc14d6590e6dc52b1397d3f0cd56fcd1094bc2d64736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_wrappedNativeToken","type":"address","internalType":"contract WETH9Interface"},{"name":"_destinationCircleDomainId","type":"uint32","internalType":"uint32"},{"name":"_l2Gateway","type":"address","internalType":"address"},{"name":"_tokenRecipient","type":"address","internalType":"address"},{"name":"_spokePool","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"L2_TOKEN_GATEWAY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WRAPPED_NATIVE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"__WithdrawalHelper_init","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_crossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"spokePool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOvm_SpokePool"}],"stateMutability":"view"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawToken","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amountToReturn","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"_crossDomainAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]}],"bytecode":"0x6101c0806040523461029d5760e081611d088038038091610020828561034a565b83398101031261029d5780516001600160a01b038116810361029d5760208201516001600160a01b0381169290919083830361029d576040810151916001600160a01b038316830361029d5760608201519363ffffffff8516850361029d5761008b6080840161036d565b9160c061009a60a0860161036d565b940151966001600160a01b0388169687890361029d575f93849360a05260c052608052604051602081019063011a412160e61b8252600481526100de60248261034a565b51915afa3d15610343573d6001600160401b03811161032f576040519061010f601f8201601f19166020018361034a565b81523d5f602083013e5b81610323575b816102ed575b5060e05230610100526101605261014052610120525f549060ff8260081c1661029d576004928260ff8060209516036102b4575b506101805260405163e322921160e01b815292839182905afa9081156102a9575f9161026b575b506101a05260405161198690816103828239608051818181610a57015281816113c90152611471015260a051818181610350015281816106b501526112b0015260c05181818161062c01528181610af701526112d9015260e051818181610a92015261136f0152610100518181816107c9015281816109eb0152610e760152610120518181816101e3015281816106f8015261155a0152610140518181816102a5015281816103870152818161049001528181610521015261073b0152610160518161077e0152610180518181816101880152610c2301526101a05181818161027d0152610de60152f35b90506020813d6020116102a1575b816102866020938361034a565b8101031261029d576102979061036d565b5f610180565b5f80fd5b3d9150610279565b6040513d5f823e3d90fd5b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024988360405160ff8152a15f610159565b9050602081519101519060208110610312575b506001600160a01b031615155f610125565b5f199060200360031b1b165f610300565b8051602014915061011f565b634e487b7160e01b5f52604160045260245ffd5b6060610119565b601f909101601f19168101906001600160401b0382119082101761032f57604052565b51906001600160a01b038216820361029d5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301e336671461013957806311eac855146101345780631b3f8c5e1461012f578063203ddfdf1461012a57806327679177146101255780633659cfe6146101205780634f1ef2861461011b5780635285e0581461011657806352d1902d146101115780636e4009831461010c578063775c0d0314610107578063927ede2d146101025780639748cf7c146100fd578063ac9650d8146100f8578063afdac3d6146100f3578063c42a8dbd146100ee578063c4d66de8146100e95763e32292110361000e57610dc7565b610cd4565b610c47565b610c04565b610b92565b610ad8565b610ab7565b610a7b565b610a3b565b6109d1565b6109ab565b610930565b6107a2565b61075f565b61071c565b6106d9565b610696565b610153565b6001600160a01b0381160361014f57565b5f80fd5b3461014f57606036600319011261014f5761016f60043561013e565b60243561017b8161013e565b6044356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040519263766e070360e01b8452602084600481855afa93841561032d575f9461065b575b506001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f1461034657509050610216611550565b803b1561014f57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af1801561032d57610332575b507342000000000000000000000000000000000000103b1561014f57604051631474f2a960e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001660248201526044810182905263ffffffff92909216606483015260a060848301525f60a4830181905290829060c49082907342000000000000000000000000000000000000105af1801561032d5761031957005b806103275f610018936108ed565b8061068c565b610e26565b806103275f610340936108ed565b5f61024a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016821480610629575b156103ab5750505061001891507f00000000000000000000000000000000000000000000000000000000000000006112a4565b60405162b27a4360e81b81526001600160a01b0382166004820152929392602081602481885afa801561032d576001600160a01b03915f9161060a575b50166105ab576001600160a01b037342000000000000000000000000000000000000105b604051630c5d5f7360e01b81526001600160a01b03841660048201529591169290602090869060249082905afa94851561032d575f9561057a575b506001600160a01b038516156104f5578383610462926111e4565b813b1561014f5760405163540abf7360e01b81526001600160a01b03918216600482015293811660248501527f0000000000000000000000000000000000000000000000000000000000000000166044840152606483019190915263ffffffff909216608482015260c060a48201525f60c482018190529091829081838160e481015b03925af1801561032d5761031957005b509250809391933b1561014f57604051631474f2a960e31b81526001600160a01b0393841660048201527f00000000000000000000000000000000000000000000000000000000000000009093166024840152604483019390935263ffffffff16606482015260a060848201525f60a482018190529091829081838160c481016104e5565b61059d91955060203d6020116105a4575b61059581836108ed565b810190610e31565b935f610447565b503d61058b565b60405162b27a4360e81b81526001600160a01b0382166004820152602081602481885afa801561032d576001600160a01b03915f916105eb575b5061040c565b610604915060203d6020116105a45761059581836108ed565b5f6105e5565b610623915060203d6020116105a45761059581836108ed565b5f6103e8565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610378565b61067e91945060203d602011610685575b61067681836108ed565b810190610e0a565b925f6101cd565b503d61066c565b5f91031261014f57565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f576004356107bf8161013e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f916108ab575b506001600160a01b036108836108776065546001600160a01b031690565b6001600160a01b031690565b91160361089c5761001890610896610e50565b906115b8565b6336a816d960e01b5f5260045ffd5b6108c4915060203d6020116105a45761059581836108ed565b5f610859565b63253a6fc960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761090f57604052565b6108d9565b67ffffffffffffffff811161090f57601f01601f191660200190565b604036600319011261014f576004356109488161013e565b6024359067ffffffffffffffff821161014f573660238301121561014f5781600401359061097582610914565b9161098360405193846108ed565b808352366024828601011161014f576020815f92602461001897018387013784010152610e6b565b3461014f575f36600319011261014f5760206001600160a01b0360655416604051908152f35b3461014f575f36600319011261014f576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361014f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b3461014f575f36600319011261014f57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f575f36600319011261014f5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b3461014f575f36600319011261014f5760206040516007602160991b018152f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b4d57505050505090565b909192939460208080600193603f19868203018752818a518051918291828552018484015e5f828201840152601f01601f191601019701959491909101920190610b3e565b3461014f57602036600319011261014f5760043567ffffffffffffffff811161014f573660238201121561014f5780600401359067ffffffffffffffff821161014f573660248360051b8301011161014f57610c00916024610bf492016110c4565b60405191829182610b1b565b0390f35b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461014f57602036600319011261014f57600435610c648161013e565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2005b63ba97b39d60e01b5f5260045ffd5b3461014f57602036600319011261014f57600435610cf18161013e565b610d3f5f5491610d25610d0f610d0b8560ff9060081c1690565b1590565b80948195610db9575b8115610d99575b50610e49565b82610d36600160ff195f5416175f55565b610d825761114e565b610d4557005b610d5361ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610d9461010061ff00195f5416175f55565b61114e565b303b15915081610dab575b505f610d1f565b60ff1660011490505f610da4565b600160ff8216109150610d18565b3461014f575f36600319011261014f5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9081602091031261014f575163ffffffff8116810361014f5790565b6040513d5f823e3d90fd5b9081602091031261014f5751610e468161013e565b90565b1561014f57565b60405190610e5f6020836108ed565b5f808352366020840137565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461014f576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361014f576007602160991b0133036108ca57604051636e296e4560e01b81526020816004816007602160991b015afa90811561032d575f91610f36575b506001600160a01b03610f246108776065546001600160a01b031690565b91160361089c57610f349161166e565b565b610f4f915060203d6020116105a45761059581836108ed565b5f610f06565b67ffffffffffffffff811161090f5760051b60200190565b90610f7782610f55565b610f8460405191826108ed565b8281528092610f95601f1991610f55565b01905f5b828110610fa557505050565b806060602080938501015201610f99565b634e487b7160e01b5f52603260045260245ffd5b919081101561100c5760051b81013590601e198136030182121561014f57019081359167ffffffffffffffff831161014f57602001823603811361014f579190565b610fb6565b908092918237015f815290565b3d15611048573d9061102f82610914565b9161103d60405193846108ed565b82523d5f602084013e565b606090565b60208183031261014f5780519067ffffffffffffffff821161014f570181601f8201121561014f5780519061108182610914565b9261108f60405194856108ed565b8284526020838301011161014f57815f9260208093018386015e8301015290565b805182101561100c5760209160051b010190565b9190916110d083610f6d565b925f5b8181106110df57505050565b5f806110ec838587610fca565b906110fc60405180938193611011565b0390305af461110961101e565b901561112f579060019161111d82886110b0565b5261112881876110b0565b50016110d3565b604481511061014f5780602480600461014f940151830101910161104d565b60ff5f5460081c161561014f576001600160a01b03168015610cc5578073ffffffffffffffffffffffffffffffffffffffff1960655416176065557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b9081602091031261014f575190565b634e487b7160e01b5f52601160045260245ffd5b919082018092116111df57565b6111be565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa90811561032d57610f34946112709261123c925f91611275575b506111d2565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836108ed565b611725565b611297915060203d60201161129d575b61128f81836108ed565b8101906111af565b5f611236565b503d611285565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926113058385846111e4565b6040516332dd704760e21b815291602083600481885afa92831561032d575f93611526575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa92831561032d575f93611505575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b61139c57505050505050565b838111156114ff57835b851561145b57863b1561014f57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561032d5761144193611447575b506117df565b80611390565b806103275f611455936108ed565b5f61143b565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561032d57611441936114d157506117df565b6114f19060203d81116114f8575b6114e981836108ed565b8101906117bf565b505f61143b565b503d6114df565b806113a6565b61151f91935060203d60201161129d5761128f81836108ed565b915f61136a565b6001600160a01b039193506115499060203d6020116105a45761059581836108ed565b929061132a565b4761155757565b477f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561014f575f90600460405180948193630d0e30db60e41b83525af1801561032d576115ae575b50565b5f610f34916108ed565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115ec57610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161164d575b5061161c575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34915f916117ec565b61166791925060203d60201161129d5761128f81836108ed565b905f611613565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116a257610f3491506118b7565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611704575b506116d2575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361014f57610f34916001916117ec565b61171e91925060203d60201161129d5761128f81836108ed565b905f6116c9565b906001600160a01b0361178692165f80604051936117446040866108ed565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161178061101e565b91611925565b805190811591821561179c575b50501561014f57565b819250906020918101031261014f5760200151801515810361014f575f80611793565b9081602091031261014f575167ffffffffffffffff8116810361014f5790565b919082039182116111df57565b916117f6836118b7565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916118af575b50611839575050565b6115ab915f806040519361184e6060866108ed565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af461178061101e565b90505f611830565b803b1561014f576001600160a01b031673ffffffffffffffffffffffffffffffffffffffff197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9192501561194157815115611938575090565b3b1561014f5790565b50805190811561014f57602001fdfea264697066735822122004d2a64651c6c4e8b8c18e758cb657d37b1982409042c86d352fbea8bed2cd8764736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_rootChainManager","type":"address","internalType":"contract IRootChainManager"},{"name":"_fxStateSender","type":"address","internalType":"contract IFxStateSender"},{"name":"_depositManager","type":"address","internalType":"contract DepositManager"},{"name":"_erc20Predicate","type":"address","internalType":"address"},{"name":"_l1Matic","type":"address","internalType":"address"},{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_adapterStore","type":"address","internalType":"address"},{"name":"_oftDstEid","type":"uint32","internalType":"uint32"},{"name":"_oftFeeCap","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEPOSIT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract DepositManager"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"ERC20_PREDICATE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FX_STATE_SENDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFxStateSender"}],"stateMutability":"view"},{"type":"function","name":"L1_MATIC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"OFT_ADAPTER_STORE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AdapterStore"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROOT_CHAIN_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRootChainManager"}],"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":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]}],"bytecode":"0x61022080604052346102ee5761016081611871803803809161002182856102f2565b8339810103126102ee5780516001600160a01b03811681036102ee5760208201516001600160a01b03811681036102ee5760408301516001600160a01b03811681036102ee5761007360608501610315565b9161008060808601610315565b60a0860151959094906001600160a01b03871687036102ee5760c08101516001600160a01b03811681036102ee5760e08201516001600160a01b038116908181036102ee576100d26101008501610315565b936101208101519263ffffffff841684036102ee575f92610140849301519560a05260c0526007608052604051602081019063011a412160e61b82526004815261011d6024826102f2565b51915afa3d156102e7573d6001600160401b0381116102d3576040519061014e601f8201601f1916602001836102f2565b81523d5f602083013e5b816102c7575b81610291575b5060e05261012052610100526001600160a01b03166101405261016052610180526101a0526101c0526101e05261020052604051611547908161032a82396080518181816104680152818161085101526108ff015260a051818181610737015281816110670152611178015260c0518181816103a901526106f9015260e0518181816103e501526107c60152610100518181816104a40152610b45015261012051818181610427015261054c015261014051818181610365015261058b0152610160518181816103210152818161062c0152610f5e01526101805181818161013401526101bb01526101a051818181610e7601526110f401526101c05181818160ed0152610f2f01526101e0518181816102980152610e3d0152610200518181816105bf01526111370152f35b90506020815191015190602081106102b6575b506001600160a01b031615155f610164565b5f199060200360031b1b165f6102a4565b8051602014915061015e565b634e487b7160e01b5f52604160045260245ffd5b6060610158565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102d357604052565b51906001600160a01b03821682036102ee5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461115b575080631efd482a1461111857806337a9c983146110d557806352c8c75c146104c757806361a04d301461048c5780636e4009831461044b5780636fd5c10e1461040a578063775c0d03146103cd5780639748cf7c14610389578063a6ec815e14610345578063aeeeae9b14610301578063b4c0d7ab146102bc578063c55e9e3614610278578063e6eb8ade14610158578063f5ebf4c4146101145763fd5f2d83146100ce575f80fd5b3461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b80fd5b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060403660031901126101115761016d61119c565b60243567ffffffffffffffff811161027457366023820112156102745780600401359167ffffffffffffffff8311610261576024820191602484369201011161026157836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156102705781604051809263b472047760e01b82528183816102048b8b8b60048501611244565b03925af180156102655761024c575b50506102467f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac49360405193849384611244565b0390a180f35b81610256916111fe565b61026157835f610213565b8380fd5b6040513d84823e3d90fd5b5080fd5b8280fd5b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101115780600319360112610111576020604051916102dd82846111fe565b8252601f19810136828401376102fd604051928284938452830190611220565b0390f35b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b5034610111578060031936011261011157602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610111578060031936011261011157602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5060803660031901126109cb576104dc61119c565b602435906001600160a01b0382168092036109cb5760443591606435906001600160a01b0382168092036109cb576040516323df66fb60e21b81527f4f46545f4d455353454e4745520000000000000000000000000000000000000060048201526001600160a01b0363ffffffff7f0000000000000000000000000000000000000000000000000000000000000000169485602484015216938460448301526020826064816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa80156110515787925f9161108e575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316918683036106f3575050803b1561027057818091602460405180948193632e1a7d4d60e01b83528b60048401525af18015610265576106de575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610270578186916024604051809481936327d5451360e11b83528960048401525af18015610265576106bf575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b816106cd91959493956111fe565b6106da579091845f61067c565b8480fd5b816106e8916111fe565b6106da57845f610621565b959694957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316935091508215158061105c575b15610a2d5750507f00000000000000000000000000000000000000000000000000000000000000009061076284828461127a565b6040516332dd704760e21b815291602083600481855afa9283156109d75788936109e2575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa9182156109d757889261099f575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b61081f575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93916080936106a6565b8481111561099957845b84156108e957833b156108e5578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af18015610265576108d0575b50505b81039081116108bc57806107ea565b634e487b7160e01b8a52601160045260248afd5b816108da916111fe565b6108e5578a5f6108aa565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af1801561098e57610952575b506108ad565b6020813d8211610986575b8161096a602093836111fe565b810103126109825761097b90611492565b505f61094c565b8b80fd5b3d915061095d565b6040513d8e823e3d90fd5b80610829565b9091506020813d6020116109cf575b816109bb602093836111fe565b810103126109cb5751905f6107c1565b5f80fd5b3d91506109ae565b6040513d8a823e3d90fd5b9092506020813d602011610a25575b816109fe602093836111fe565b81010312610a215751906001600160a01b0382168203610a215790916020610787565b8780fd5b3d91506109f1565b9091506001600160a01b03168015610e3557606060c0604051610a4f816111b2565b89815289602082015289604082015289838201528260808201528260a08201520152866020604051610a80816111e2565b8281520152604051602091610a9583836111fe565b888252601f198301803685850137604051610ab085826111fe565b8a815281368683013760405191610ac786846111fe565b8b8352368684013760405195610adc876111b2565b865288858701526040860193888552886060880152608087015260a086015260c085015260405193633b6f743b60e01b85526040600486015260408580610b266044820185611422565b8d60248301520381855afa948515610e2a578a95610def575b508451907f00000000000000000000000000000000000000000000000000000000000000008211610de057478211610dd157848601938451610dc2578a9695949260c094928d610bc8610c2094519a82808d610bd68d60405196879182019363095ea7b360e01b85528d60248401602090939291936001600160a01b0360408201951681520152565b03601f1981018752866111fe565b84519082855af1610be56114a7565b81610d92575b5080610d88575b15610d44575b5050506040519788958694859363c7c7f5b360e01b8552608060048601526084850190611422565b9151602484015251604483015230606483015203925af19182156109d7578892610c9e575b508101518203610c8f575103610c8157917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93916080936106a6565b623c548b60ea1b8552600485fd5b631bfc3cb560e11b8752600487fd5b90915060c03d60c011610d3d575b610cb681836111fe565b81019080820360c08112610d3957608013610d35576040516060810181811067ffffffffffffffff821117610d215760405281518152610d1a9291608091610cff868301611492565b868201526040610d11858285016113fa565b910152016113fa565b905f610c45565b634e487b7160e01b8b52604160045260248bfd5b8880fd5b8980fd5b503d610cac565b610d7b610d80936040519063095ea7b360e01b8d830152896024830152604482015260448152610d756064826111fe565b82611369565b611369565b8d5f8e610bf8565b50803b1515610bf2565b8051801592508c908315610daa575b5050505f610beb565b610dba9350820181019101611351565b5f8b81610da1565b630e282ec960e21b8c5260048cfd5b63a6226f8560e01b8b5260048bfd5b631754d7a960e01b8b5260048bfd5b90945060403d604011610e23575b610e0781836111fe565b81016040828203126108e557610e1c916113fa565b935f610b3f565b503d610dfd565b6040513d8c823e3d90fd5b5091939291507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168303610f2657846001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610ea186828761127a565b803b1561027057818091606460405180948193638b9e4f9360e01b83528a60048401528960248401528b60448401525af1801561026557610f0b575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093926106a6565b81610f1991959493956111fe565b6106da579091845f610edd565b610f54849293947f00000000000000000000000000000000000000000000000000000000000000008661127a565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040519083602083015260208252610f976040836111fe565b803b156109cb57610fd65f9291839260405194858094819363e3dec8fb60e01b83528b60048401528c6024840152606060448401526064830190611220565b03925af1801561105157611012575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93916080936106a6565b608093919550916110455f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946111fe565b5f959193509193610fe5565b6040513d5f823e3d90fd5b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016871461072e565b919250506020813d6020116110cd575b816110ab602093836111fe565b810103126109cb5751906001600160a01b03821682036109cb5786915f6105bc565b3d915061109e565b346109cb575f3660031901126109cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346109cb575f3660031901126109cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346109cb575f3660031901126109cb576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b03821682036109cb57565b60e0810190811067ffffffffffffffff8211176111ce57604052565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176111ce57604052565b90601f8019910116810190811067ffffffffffffffff8211176111ce57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b91926060936001600160a01b03829316845260406020850152816040850152848401375f828201840152601f01601f1916010190565b91909160405191636eb1769f60e11b83523060048401526001600160a01b03841660248401526020836044816001600160a01b0386165afa928315611051575f9361131d575b5082018092116113095760405163095ea7b360e01b60208201526001600160a01b039390931660248401526044808401929092529082526113079190610d7b6064836111fe565b565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011611349575b81611339602093836111fe565b810103126109cb5751915f6112c0565b3d915061132c565b908160209103126109cb575180151581036109cb5790565b906001600160a01b036113ca92165f80604051936113886040866111fe565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af16113c46114a7565b916114e6565b80519081159182156113e0575b5050156109cb57565b6113f39250602080918301019101611351565b5f806113d7565b91908260409103126109cb57604051611412816111e2565b6020808294805184520151910152565b61148f9163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c061147e61146c608085015160e0608086015260e0850190611220565b60a085015184820360a0860152611220565b9201519060c0818403910152611220565b90565b519067ffffffffffffffff821682036109cb57565b3d156114e1573d9067ffffffffffffffff82116111ce57604051916114d6601f8201601f1916602001846111fe565b82523d5f602084013e565b606090565b91925015611502578151156114f9575090565b3b156109cb5790565b5080519081156109cb57602001fdfea26469706673582212208d1bbb546616c95d5a218dae286edd827a4ca169f9266ebf7a8f3618c0fc390764736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_rootChainManager","type":"address","internalType":"contract IRootChainManager"},{"name":"_fxStateSender","type":"address","internalType":"contract IFxStateSender"},{"name":"_depositManager","type":"address","internalType":"contract DepositManager"},{"name":"_erc20Predicate","type":"address","internalType":"address"},{"name":"_l1Matic","type":"address","internalType":"address"},{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_adapterStore","type":"address","internalType":"address"},{"name":"_oftDstEid","type":"uint32","internalType":"uint32"},{"name":"_oftFeeCap","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEPOSIT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract DepositManager"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"ERC20_PREDICATE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FX_STATE_SENDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFxStateSender"}],"stateMutability":"view"},{"type":"function","name":"L1_MATIC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"OFT_ADAPTER_STORE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AdapterStore"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROOT_CHAIN_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRootChainManager"}],"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":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]}],"bytecode":"0x61022080604052346102ee5761016081611871803803809161002182856102f2565b8339810103126102ee5780516001600160a01b03811681036102ee5760208201516001600160a01b03811681036102ee5760408301516001600160a01b03811681036102ee5761007360608501610315565b9161008060808601610315565b60a0860151959094906001600160a01b03871687036102ee5760c08101516001600160a01b03811681036102ee5760e08201516001600160a01b038116908181036102ee576100d26101008501610315565b936101208101519263ffffffff841684036102ee575f92610140849301519560a05260c0526007608052604051602081019063011a412160e61b82526004815261011d6024826102f2565b51915afa3d156102e7573d6001600160401b0381116102d3576040519061014e601f8201601f1916602001836102f2565b81523d5f602083013e5b816102c7575b81610291575b5060e05261012052610100526001600160a01b03166101405261016052610180526101a0526101c0526101e05261020052604051611547908161032a82396080518181816104680152818161085101526108ff015260a051818181610737015281816110670152611178015260c0518181816103a901526106f9015260e0518181816103e501526107c60152610100518181816104a40152610b45015261012051818181610427015261054c015261014051818181610365015261058b0152610160518181816103210152818161062c0152610f5e01526101805181818161013401526101bb01526101a051818181610e7601526110f401526101c05181818160ed0152610f2f01526101e0518181816102980152610e3d0152610200518181816105bf01526111370152f35b90506020815191015190602081106102b6575b506001600160a01b031615155f610164565b5f199060200360031b1b165f6102a4565b8051602014915061015e565b634e487b7160e01b5f52604160045260245ffd5b6060610158565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102d357604052565b51906001600160a01b03821682036102ee5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461115b575080631efd482a1461111857806337a9c983146110d557806352c8c75c146104c757806361a04d301461048c5780636e4009831461044b5780636fd5c10e1461040a578063775c0d03146103cd5780639748cf7c14610389578063a6ec815e14610345578063aeeeae9b14610301578063b4c0d7ab146102bc578063c55e9e3614610278578063e6eb8ade14610158578063f5ebf4c4146101145763fd5f2d83146100ce575f80fd5b3461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b80fd5b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060403660031901126101115761016d61119c565b60243567ffffffffffffffff811161027457366023820112156102745780600401359167ffffffffffffffff8311610261576024820191602484369201011161026157836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156102705781604051809263b472047760e01b82528183816102048b8b8b60048501611244565b03925af180156102655761024c575b50506102467f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac49360405193849384611244565b0390a180f35b81610256916111fe565b61026157835f610213565b8380fd5b6040513d84823e3d90fd5b5080fd5b8280fd5b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101115780600319360112610111576020604051916102dd82846111fe565b8252601f19810136828401376102fd604051928284938452830190611220565b0390f35b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b5034610111578060031936011261011157602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610111578060031936011261011157602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461011157806003193601126101115760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5060803660031901126109cb576104dc61119c565b602435906001600160a01b0382168092036109cb5760443591606435906001600160a01b0382168092036109cb576040516323df66fb60e21b81527f4f46545f4d455353454e4745520000000000000000000000000000000000000060048201526001600160a01b0363ffffffff7f0000000000000000000000000000000000000000000000000000000000000000169485602484015216938460448301526020826064816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa80156110515787925f9161108e575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316918683036106f3575050803b1561027057818091602460405180948193632e1a7d4d60e01b83528b60048401525af18015610265576106de575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610270578186916024604051809481936327d5451360e11b83528960048401525af18015610265576106bf575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b816106cd91959493956111fe565b6106da579091845f61067c565b8480fd5b816106e8916111fe565b6106da57845f610621565b959694957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316935091508215158061105c575b15610a2d5750507f00000000000000000000000000000000000000000000000000000000000000009061076284828461127a565b6040516332dd704760e21b815291602083600481855afa9283156109d75788936109e2575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa9182156109d757889261099f575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b61081f575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93916080936106a6565b8481111561099957845b84156108e957833b156108e5578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af18015610265576108d0575b50505b81039081116108bc57806107ea565b634e487b7160e01b8a52601160045260248afd5b816108da916111fe565b6108e5578a5f6108aa565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af1801561098e57610952575b506108ad565b6020813d8211610986575b8161096a602093836111fe565b810103126109825761097b90611492565b505f61094c565b8b80fd5b3d915061095d565b6040513d8e823e3d90fd5b80610829565b9091506020813d6020116109cf575b816109bb602093836111fe565b810103126109cb5751905f6107c1565b5f80fd5b3d91506109ae565b6040513d8a823e3d90fd5b9092506020813d602011610a25575b816109fe602093836111fe565b81010312610a215751906001600160a01b0382168203610a215790916020610787565b8780fd5b3d91506109f1565b9091506001600160a01b03168015610e3557606060c0604051610a4f816111b2565b89815289602082015289604082015289838201528260808201528260a08201520152866020604051610a80816111e2565b8281520152604051602091610a9583836111fe565b888252601f198301803685850137604051610ab085826111fe565b8a815281368683013760405191610ac786846111fe565b8b8352368684013760405195610adc876111b2565b865288858701526040860193888552886060880152608087015260a086015260c085015260405193633b6f743b60e01b85526040600486015260408580610b266044820185611422565b8d60248301520381855afa948515610e2a578a95610def575b508451907f00000000000000000000000000000000000000000000000000000000000000008211610de057478211610dd157848601938451610dc2578a9695949260c094928d610bc8610c2094519a82808d610bd68d60405196879182019363095ea7b360e01b85528d60248401602090939291936001600160a01b0360408201951681520152565b03601f1981018752866111fe565b84519082855af1610be56114a7565b81610d92575b5080610d88575b15610d44575b5050506040519788958694859363c7c7f5b360e01b8552608060048601526084850190611422565b9151602484015251604483015230606483015203925af19182156109d7578892610c9e575b508101518203610c8f575103610c8157917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93916080936106a6565b623c548b60ea1b8552600485fd5b631bfc3cb560e11b8752600487fd5b90915060c03d60c011610d3d575b610cb681836111fe565b81019080820360c08112610d3957608013610d35576040516060810181811067ffffffffffffffff821117610d215760405281518152610d1a9291608091610cff868301611492565b868201526040610d11858285016113fa565b910152016113fa565b905f610c45565b634e487b7160e01b8b52604160045260248bfd5b8880fd5b8980fd5b503d610cac565b610d7b610d80936040519063095ea7b360e01b8d830152896024830152604482015260448152610d756064826111fe565b82611369565b611369565b8d5f8e610bf8565b50803b1515610bf2565b8051801592508c908315610daa575b5050505f610beb565b610dba9350820181019101611351565b5f8b81610da1565b630e282ec960e21b8c5260048cfd5b63a6226f8560e01b8b5260048bfd5b631754d7a960e01b8b5260048bfd5b90945060403d604011610e23575b610e0781836111fe565b81016040828203126108e557610e1c916113fa565b935f610b3f565b503d610dfd565b6040513d8c823e3d90fd5b5091939291507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168303610f2657846001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610ea186828761127a565b803b1561027057818091606460405180948193638b9e4f9360e01b83528a60048401528960248401528b60448401525af1801561026557610f0b575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093926106a6565b81610f1991959493956111fe565b6106da579091845f610edd565b610f54849293947f00000000000000000000000000000000000000000000000000000000000000008661127a565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040519083602083015260208252610f976040836111fe565b803b156109cb57610fd65f9291839260405194858094819363e3dec8fb60e01b83528b60048401528c6024840152606060448401526064830190611220565b03925af1801561105157611012575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93916080936106a6565b608093919550916110455f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946111fe565b5f959193509193610fe5565b6040513d5f823e3d90fd5b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016871461072e565b919250506020813d6020116110cd575b816110ab602093836111fe565b810103126109cb5751906001600160a01b03821682036109cb5786915f6105bc565b3d915061109e565b346109cb575f3660031901126109cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346109cb575f3660031901126109cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346109cb575f3660031901126109cb576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b03821682036109cb57565b60e0810190811067ffffffffffffffff8211176111ce57604052565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176111ce57604052565b90601f8019910116810190811067ffffffffffffffff8211176111ce57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b91926060936001600160a01b03829316845260406020850152816040850152848401375f828201840152601f01601f1916010190565b91909160405191636eb1769f60e11b83523060048401526001600160a01b03841660248401526020836044816001600160a01b0386165afa928315611051575f9361131d575b5082018092116113095760405163095ea7b360e01b60208201526001600160a01b039390931660248401526044808401929092529082526113079190610d7b6064836111fe565b565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011611349575b81611339602093836111fe565b810103126109cb5751915f6112c0565b3d915061132c565b908160209103126109cb575180151581036109cb5790565b906001600160a01b036113ca92165f80604051936113886040866111fe565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af16113c46114a7565b916114e6565b80519081159182156113e0575b5050156109cb57565b6113f39250602080918301019101611351565b5f806113d7565b91908260409103126109cb57604051611412816111e2565b6020808294805184520151910152565b61148f9163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c061147e61146c608085015160e0608086015260e0850190611220565b60a085015184820360a0860152611220565b9201519060c0818403910152611220565b90565b519067ffffffffffffffff821682036109cb57565b3d156114e1573d9067ffffffffffffffff82116111ce57604051916114d6601f8201601f1916602001846111fe565b82523d5f602084013e565b606090565b91925015611502578151156114f9575090565b3b156109cb5790565b5080519081156109cb57602001fdfea264697066735822122040d99c06d8146bce24611180f9dc03530e86ac22a55017cfdd623f15a5a9e3c464736f6c634300081e0033"}