@across-protocol/contracts 5.0.6-alpha.0 → 5.0.6-alpha.2
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.
- package/contracts/test/AcrossMessageHandlerMock.sol +14 -0
- package/contracts/test/ArbitrumMocks.sol +169 -0
- package/contracts/test/ExpandedERC20WithBlacklist.sol +19 -0
- package/contracts/test/LineaMocks.sol +83 -0
- package/contracts/test/MerkleLibTest.sol +65 -0
- package/contracts/test/MockBedrockStandardBridge.sol +115 -0
- package/contracts/test/MockBlastUsdYieldManager.sol +20 -0
- package/contracts/test/MockCCTP.sol +212 -0
- package/contracts/test/MockCaller.sol +20 -0
- package/contracts/test/MockERC1271.sol +21 -0
- package/contracts/test/MockERC20.sol +87 -0
- package/contracts/test/MockEndpoint.sol +16 -0
- package/contracts/test/MockHubPool.sol +100 -0
- package/contracts/test/MockOFTMessenger.sol +88 -0
- package/contracts/test/MockOptimism_SpokePool.sol +22 -0
- package/contracts/test/MockPermit2.sol +188 -0
- package/contracts/test/MockSpokePool.sol +263 -0
- package/contracts/test/MockSpokePoolV2.sol +27 -0
- package/contracts/test/MockZkStackBridgeHub.sol +43 -0
- package/contracts/test/PolygonERC20Test.sol +16 -0
- package/contracts/test/PolygonMocks.sol +82 -0
- package/contracts/test/PolygonZkEVMMocks.sol +72 -0
- package/contracts/test/ScrollMocks.sol +109 -0
- package/contracts/test/V2MerkleLib.sol +18 -0
- package/contracts/test/ZkSyncMocks.sol +78 -0
- package/contracts/test/interfaces/IHyperCoreFlowExecutor.sol +189 -0
- package/contracts/test/interfaces/MockV2SpokePoolInterface.sol +38 -0
- package/dist/abi/AccessControl.sol/AccessControl.json +1 -1
- package/dist/abi/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -1
- package/dist/abi/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +1 -1
- package/dist/abi/AcrossConfigStore.sol/AcrossConfigStore.json +1 -1
- package/dist/abi/AcrossEventEmitter.sol/AcrossEventEmitter.json +1 -1
- package/dist/abi/AcrossMerkleDistributor.sol/AcrossMerkleDistributor.json +1 -1
- package/dist/abi/AcrossMessageHandlerMock.sol/AcrossMessageHandlerMock.json +1 -0
- package/dist/abi/AdapterInterface.sol/AdapterInterface.json +1 -1
- package/dist/abi/AdapterStore.sol/AdapterStore.json +1 -1
- package/dist/abi/AdapterStore.sol/MessengerTypes.json +1 -1
- package/dist/abi/Address.sol/Address.json +1 -1
- package/dist/abi/AddressConverters.sol/Bytes32ToAddress.json +1 -1
- package/dist/abi/AddressWhitelistInterface.sol/AddressWhitelistInterface.json +1 -1
- package/dist/abi/AdminRelayTokensAdapter.sol/AdminRelayTokensAdapter.json +1 -1
- package/dist/abi/AdminWithdrawManager.sol/AdminWithdrawManager.json +1 -1
- package/dist/abi/ArbitraryEVMFlowExecutor.sol/ArbitraryEVMFlowExecutor.json +1 -1
- package/dist/abi/ArbitrumBridge.sol/ArbitrumCustomGasTokenInbox.json +1 -1
- package/dist/abi/ArbitrumBridge.sol/ArbitrumERC20Bridge.json +1 -1
- package/dist/abi/ArbitrumBridge.sol/ArbitrumInboxLike.json +1 -1
- package/dist/abi/ArbitrumBridge.sol/ArbitrumL1ERC20GatewayLike.json +1 -1
- package/dist/abi/ArbitrumBridge.sol/ArbitrumL2ERC20GatewayLike.json +1 -1
- package/dist/abi/ArbitrumMocks.sol/ArbitrumMockErc20GatewayRouter.json +1 -0
- package/dist/abi/ArbitrumMocks.sol/Inbox.json +1 -0
- package/dist/abi/ArbitrumMocks.sol/L2GatewayRouter.json +1 -0
- package/dist/abi/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
- package/dist/abi/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
- package/dist/abi/Arbitrum_CustomGasToken_Adapter.sol/FunderInterface.json +1 -1
- package/dist/abi/Arbitrum_Forwarder.sol/Arbitrum_Forwarder.json +1 -1
- package/dist/abi/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
- package/dist/abi/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
- package/dist/abi/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
- package/dist/abi/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
- package/dist/abi/AuthorizedFundedFlow.sol/AuthorizedFundedFlow.json +1 -1
- package/dist/abi/BaseModuleHandler.sol/BaseModuleHandler.json +1 -1
- package/dist/abi/BaseSimulatorTest.sol/BaseSimulatorTest.json +1 -1
- package/dist/abi/Base_Adapter.sol/Base_Adapter.json +1 -1
- package/dist/abi/BeaconProxy.sol/BeaconProxy.json +1 -1
- package/dist/abi/Blast_Adapter.sol/Blast_Adapter.json +1 -1
- package/dist/abi/Blast_Adapter.sol/IL1ERC20Bridge.json +1 -1
- package/dist/abi/Blast_DaiRetriever.sol/Blast_DaiRetriever.json +1 -1
- package/dist/abi/Blast_DaiRetriever.sol/USDYieldManager.json +1 -1
- package/dist/abi/Blast_RescueAdapter.sol/Blast_RescueAdapter.json +1 -1
- package/dist/abi/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
- package/dist/abi/Blast_SpokePool.sol/IBlast.json +1 -1
- package/dist/abi/Blast_SpokePool.sol/IERC20Rebasing.json +1 -1
- package/dist/abi/Blast_SpokePool.sol/IUSDBL2Bridge.json +1 -1
- package/dist/abi/Boba_Adapter.sol/Boba_Adapter.json +1 -1
- package/dist/abi/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
- package/dist/abi/BondToken.sol/BondToken.json +1 -1
- package/dist/abi/BondToken.sol/ExtendedHubPoolInterface.json +1 -1
- package/dist/abi/BytesLib.sol/BytesLib.json +1 -1
- package/dist/abi/CCTPInterfaces.sol/IMessageTransmitter.json +1 -1
- package/dist/abi/CCTPInterfaces.sol/IMessageTransmitterV2.json +1 -1
- package/dist/abi/CCTPInterfaces.sol/ITokenMessenger.json +1 -1
- package/dist/abi/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
- package/dist/abi/CCTPInterfaces.sol/ITokenMinter.json +1 -1
- package/dist/abi/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
- package/dist/abi/CircleCCTPAdapter.sol/CircleCCTPAdapter.json +1 -1
- package/dist/abi/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
- package/dist/abi/Clones.sol/Clones.json +1 -1
- package/dist/abi/Constants.sol/Constants.json +1 -1
- package/dist/abi/Constants.sol/OptimisticOracleConstraints.json +1 -1
- package/dist/abi/Constants.sol/OracleInterfaces.json +1 -1
- package/dist/abi/ContextUpgradeable.sol/ContextUpgradeable.json +1 -1
- package/dist/abi/CoreExecution.sol/CoreExecution.json +1 -1
- package/dist/abi/CoreSimulatorLib.sol/HypeSystemContract.json +1 -1
- package/dist/abi/CoreState.sol/CoreState.json +1 -1
- package/dist/abi/CoreView.sol/CoreView.json +1 -1
- package/dist/abi/CoreWriterLib.sol/CoreWriterLib.json +1 -1
- package/dist/abi/CoreWriterSim.sol/CoreWriterSim.json +1 -1
- package/dist/abi/CounterfactualDeposit.sol/CounterfactualDeposit.json +1 -1
- package/dist/abi/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
- package/dist/abi/CounterfactualDepositCCTP.sol/ISponsoredCCTPSrcPeriphery.json +1 -1
- package/dist/abi/CounterfactualDepositFactory.sol/CounterfactualDepositFactory.json +1 -1
- package/dist/abi/CounterfactualDepositFactoryTron.sol/CounterfactualDepositFactoryTron.json +1 -1
- package/dist/abi/CounterfactualDepositOFT.sol/CounterfactualDepositOFT.json +1 -1
- package/dist/abi/CounterfactualDepositOFT.sol/ISponsoredOFTSrcPeriphery.json +1 -1
- package/dist/abi/CounterfactualDepositSpokePool.sol/CounterfactualDepositSpokePool.json +1 -1
- package/dist/abi/Create2.sol/Create2.json +1 -1
- package/dist/abi/CrossDomainEnabled.sol/CrossDomainEnabled.json +1 -1
- package/dist/abi/DeployedAddresses.sol/DeployedAddresses.json +1 -1
- package/dist/abi/DeploymentUtils.sol/DeploymentUtils.json +1 -1
- package/dist/abi/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
- package/dist/abi/DonationBox.sol/DonationBox.json +1 -1
- package/dist/abi/DstOFTHandler.sol/DstOFTHandler.json +1 -1
- package/dist/abi/ECDSA.sol/ECDSA.json +1 -1
- package/dist/abi/EIP712.sol/EIP712.json +1 -1
- package/dist/abi/EIP712CrossChainUpgradeable.sol/EIP712CrossChainUpgradeable.json +1 -1
- package/dist/abi/ERC1155.sol/ERC1155.json +1 -1
- package/dist/abi/ERC165.sol/ERC165.json +1 -1
- package/dist/abi/ERC165Upgradeable.sol/ERC165Upgradeable.json +1 -1
- package/dist/abi/ERC1967Proxy.sol/ERC1967Proxy.json +1 -1
- package/dist/abi/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -1
- package/dist/abi/ERC1967UpgradeUpgradeable.sol/ERC1967UpgradeUpgradeable.json +1 -1
- package/dist/abi/ERC1967Utils.sol/ERC1967Utils.json +1 -1
- package/dist/abi/ERC20.sol/ERC20.json +1 -1
- package/dist/abi/ERC20Permit.sol/ERC20Permit.json +1 -1
- package/dist/abi/ERC7683.sol/IDestinationSettler.json +1 -1
- package/dist/abi/Errors.sol/Errors.json +1 -1
- package/dist/abi/Ethereum_Adapter.sol/Ethereum_Adapter.json +1 -1
- package/dist/abi/Ethereum_RescueAdapter.sol/Ethereum_RescueAdapter.json +1 -1
- package/dist/abi/Ethereum_SpokePool.sol/Ethereum_SpokePool.json +1 -1
- package/dist/abi/ExpandedERC20.sol/ExpandedERC20.json +1 -1
- package/dist/abi/ExpandedERC20WithBlacklist.sol/ExpandedERC20WithBlacklist.json +1 -1
- package/dist/abi/ExpandedIERC20.sol/ExpandedIERC20.json +1 -1
- package/dist/abi/FinderInterface.sol/FinderInterface.json +1 -1
- package/dist/abi/ForwarderBase.sol/ForwarderBase.json +1 -1
- package/dist/abi/ForwarderInterface.sol/ForwarderInterface.json +1 -1
- package/dist/abi/HLConstants.sol/HLConstants.json +1 -1
- package/dist/abi/HLConversions.sol/HLConversions.json +1 -1
- package/dist/abi/HubPool.sol/HubPool.json +1 -1
- package/dist/abi/HubPoolInterface.sol/HubPoolInterface.json +1 -1
- package/dist/abi/HubPoolStore.sol/HubPoolStore.json +1 -1
- package/dist/abi/HubPoolStore.sol/IHubPool.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/HubPoolTestBase.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/MockAddressWhitelist.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/MockFinder.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/MockIdentifierWhitelist.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/MockLpTokenFactory.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/MockOptimisticOracle.json +1 -1
- package/dist/abi/HubPoolTestBase.sol/MockStore.json +1 -1
- package/dist/abi/HyperCore.sol/HyperCore.json +1 -1
- package/dist/abi/HyperCoreFlowExecutor.sol/HyperCoreFlowExecutor.json +1 -1
- package/dist/abi/HyperCoreFlowRoles.sol/HyperCoreFlowRoles.json +1 -1
- package/dist/abi/HyperCoreLib.sol/HyperCoreLib.json +1 -1
- package/dist/abi/HyperCoreLib.sol/ICoreWriter.json +1 -1
- package/dist/abi/HyperCoreMockHelper.sol/HyperCoreMockHelper.json +1 -0
- package/dist/abi/HyperliquidDepositHandler.sol/HyperliquidDepositHandler.json +1 -1
- package/dist/abi/IAccessControl.sol/IAccessControl.json +1 -1
- package/dist/abi/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -1
- package/dist/abi/IBeacon.sol/IBeacon.json +1 -1
- package/dist/abi/IBeaconUpgradeable.sol/IBeaconUpgradeable.json +1 -1
- package/dist/abi/ICoreDepositWallet.sol/ICoreDepositWallet.json +1 -1
- package/dist/abi/ICoreDepositWallet.sol/IForwardDepositReceiver.json +1 -1
- package/dist/abi/ICoreWriter.sol/ICoreWriter.json +1 -1
- package/dist/abi/ICounterfactualDeposit.sol/ICounterfactualDeposit.json +1 -1
- package/dist/abi/ICounterfactualDepositFactory.sol/ICounterfactualDepositFactory.json +1 -1
- package/dist/abi/ICounterfactualImplementation.sol/ICounterfactualImplementation.json +1 -1
- package/dist/abi/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -1
- package/dist/abi/ICrossDomainMessengerUpgradeable.sol/ICrossDomainMessengerUpgradeable.json +1 -1
- package/dist/abi/IERC1155.sol/IERC1155.json +1 -1
- package/dist/abi/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -1
- package/dist/abi/IERC1155Receiver.sol/IERC1155Receiver.json +1 -1
- package/dist/abi/IERC1271.sol/IERC1271.json +1 -1
- package/dist/abi/IERC1363.sol/IERC1363.json +1 -1
- package/dist/abi/IERC165.sol/IERC165.json +1 -1
- package/dist/abi/IERC1967.sol/IERC1967.json +1 -1
- package/dist/abi/IERC1967Upgradeable.sol/IERC1967Upgradeable.json +1 -1
- package/dist/abi/IERC20.sol/IERC20.json +1 -1
- package/dist/abi/IERC20Auth.sol/IERC20Auth.json +1 -1
- package/dist/abi/IERC20Metadata.sol/IERC20Metadata.json +1 -1
- package/dist/abi/IERC20Permit.sol/IERC20Permit.json +1 -1
- package/dist/abi/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +1 -1
- package/dist/abi/IERC20Upgradeable.sol/IERC20Upgradeable.json +1 -1
- package/dist/abi/IERC5267.sol/IERC5267.json +1 -1
- package/dist/abi/IHelios.sol/IHelios.json +1 -1
- package/dist/abi/IHypXERC20Router.sol/IHypXERC20Router.json +1 -1
- package/dist/abi/IHyperCoreFlowExecutor.sol/IHyperCoreFlowExecutor.json +1 -1
- package/dist/abi/IL1ERC20Bridge.sol/IL1ERC20Bridge.json +1 -1
- package/dist/abi/IL1ERC20Gateway.sol/IL1ERC20Gateway.json +1 -1
- package/dist/abi/IL1ETHGateway.sol/IL1ETHGateway.json +1 -1
- package/dist/abi/IL1GatewayRouter.sol/IL1GatewayRouter.json +1 -1
- package/dist/abi/IL1ScrollMessenger.sol/IL1ScrollMessenger.json +1 -1
- package/dist/abi/IL1StandardBridge.sol/IL1StandardBridge.json +1 -1
- package/dist/abi/IL2ERC20Gateway.sol/IL2ERC20Gateway.json +1 -1
- package/dist/abi/IL2ETHGateway.sol/IL2ETHGateway.json +1 -1
- package/dist/abi/IL2GasPriceOracle.sol/IL2GasPriceOracle.json +1 -1
- package/dist/abi/IL2GatewayRouter.sol/IL2GatewayRouter.json +1 -1
- package/dist/abi/ILayerZeroComposer.sol/ILayerZeroComposer.json +1 -1
- package/dist/abi/IMulticall3.sol/IMulticall3.json +1 -1
- package/dist/abi/IOFT.sol/IEndpoint.json +1 -1
- package/dist/abi/IOFT.sol/IOAppCore.json +1 -1
- package/dist/abi/IOFT.sol/IOFT.json +1 -1
- package/dist/abi/IOpUSDCBridgeAdapter.sol/IOpUSDCBridgeAdapter.json +1 -1
- package/dist/abi/IPermit2.sol/IPermit2.json +1 -1
- package/dist/abi/IPolygonZkEVMBridge.sol/IPolygonZkEVMBridge.json +1 -1
- package/dist/abi/IProxyAdmin.sol/IProxyAdmin.json +1 -1
- package/dist/abi/ISP1Verifier.sol/ISP1Verifier.json +1 -1
- package/dist/abi/ISP1Verifier.sol/ISP1VerifierWithHash.json +1 -1
- package/dist/abi/IScrollMessenger.sol/IScrollMessenger.json +1 -1
- package/dist/abi/ISpokePool.sol/ISpokePool.json +1 -1
- package/dist/abi/ITokenRegistry.sol/ITokenRegistry.json +1 -1
- package/dist/abi/IUpgradeableBeacon.sol/IUpgradeableBeacon.json +1 -1
- package/dist/abi/IUpgradeableProxy.sol/IUpgradeableProxy.json +1 -1
- package/dist/abi/IdentifierWhitelistInterface.sol/IdentifierWhitelistInterface.json +1 -1
- package/dist/abi/Initializable.sol/Initializable.json +1 -1
- package/dist/abi/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
- package/dist/abi/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
- package/dist/abi/LibVariable.sol/LibVariable.json +1 -1
- package/dist/abi/LineaInterfaces.sol/IMessageService.json +1 -1
- package/dist/abi/LineaInterfaces.sol/ITokenBridge.json +1 -1
- package/dist/abi/LineaInterfaces.sol/IUSDCBridge.json +1 -1
- package/dist/abi/LineaMocks.sol/MockL2MessageService.json +1 -0
- package/dist/abi/LineaMocks.sol/MockL2TokenBridge.json +1 -0
- package/dist/abi/Linea_Adapter.sol/Linea_Adapter.json +1 -1
- package/dist/abi/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
- package/dist/abi/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
- package/dist/abi/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
- package/dist/abi/Lockable.sol/Lockable.json +1 -1
- package/dist/abi/LpTokenFactory.sol/LpTokenFactory.json +1 -1
- package/dist/abi/LpTokenFactoryInterface.sol/LpTokenFactoryInterface.json +1 -1
- package/dist/abi/Merkle.sol/Merkle.json +1 -1
- package/dist/abi/MerkleDistributor.sol/MerkleDistributor.json +1 -1
- package/dist/abi/MerkleDistributorInterface.sol/MerkleDistributorInterface.json +1 -1
- package/dist/abi/MerkleLibTest.sol/MerkleLibTest.json +1 -1
- package/dist/abi/MerkleProof.sol/MerkleProof.json +1 -1
- package/dist/abi/MinimalLZOptions.sol/MinimalLZOptions.json +1 -1
- package/dist/abi/MintableERC1155.sol/MintableERC1155.json +1 -1
- package/dist/abi/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -0
- package/dist/abi/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -0
- package/dist/abi/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -0
- package/dist/abi/MockBlastUsdYieldManager.sol/MockBlastUsdYieldManager.json +1 -0
- package/dist/abi/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -0
- package/dist/abi/MockCCTP.sol/MockCCTPMessenger.json +1 -0
- package/dist/abi/MockCCTP.sol/MockCCTPMessengerV2.json +1 -0
- package/dist/abi/MockCCTP.sol/MockCCTPMinter.json +1 -0
- package/dist/abi/MockCaller.sol/MockCaller.json +1 -0
- package/dist/abi/MockERC1271.sol/MockERC1271.json +1 -0
- package/dist/abi/MockERC20.sol/MintableERC20.json +1 -0
- package/dist/abi/MockERC20.sol/MockERC20.json +1 -0
- package/dist/abi/MockEndpoint.sol/MockEndpoint.json +1 -0
- package/dist/abi/MockHubPool.sol/MockHubPool.json +1 -0
- package/dist/abi/MockOFTMessenger.sol/MockOFTMessenger.json +1 -0
- package/dist/abi/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -0
- package/dist/abi/MockPermit2.sol/MockPermit2.json +1 -0
- package/dist/abi/MockPermit2.sol/Permit2EIP712.json +1 -0
- package/dist/abi/MockPermit2.sol/SignatureVerification.json +1 -0
- package/dist/abi/MockSpokePool.sol/MockSpokePool.json +1 -0
- package/dist/abi/MockSpokePoolV2.sol/MockSpokePoolV2.json +1 -0
- package/dist/abi/MockZkStackBridgeHub.sol/MockBridgeHub.json +1 -0
- package/dist/abi/Mock_Adapter.sol/Mock_Adapter.json +1 -0
- package/dist/abi/Mock_Adapter.sol/Mock_Bridge.json +1 -0
- package/dist/abi/Mode_Adapter.sol/Mode_Adapter.json +1 -1
- package/dist/abi/MultiCaller.sol/MultiCaller.json +1 -1
- package/dist/abi/MultiCallerUpgradeable.sol/MultiCallerUpgradeable.json +1 -1
- package/dist/abi/MultiRole.sol/MultiRole.json +1 -1
- package/dist/abi/Multicall3.sol/Multicall3.json +1 -1
- package/dist/abi/MulticallHandler.sol/MulticallHandler.json +1 -1
- package/dist/abi/MurkyBase.sol/MurkyBase.json +1 -1
- package/dist/abi/OFTCoreMath.sol/OFTCoreMath.json +1 -1
- package/dist/abi/OFTTransportAdapter.sol/OFTTransportAdapter.json +1 -1
- package/dist/abi/OFTTransportAdapterWithStore.sol/OFTTransportAdapterWithStore.json +1 -1
- package/dist/abi/OP_Adapter.sol/OP_Adapter.json +1 -1
- package/dist/abi/OP_SpokePool.sol/OP_SpokePool.json +1 -1
- package/dist/abi/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
- package/dist/abi/Optimism_Adapter.sol/SynthetixBridgeToOptimism.json +1 -1
- package/dist/abi/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
- package/dist/abi/Optimism_SpokePool.sol/SynthetixBridgeToBase.json +1 -1
- package/dist/abi/OptimisticOracleInterface.sol/OptimisticOracleInterface.json +1 -1
- package/dist/abi/Ovm_Forwarder.sol/Ovm_Forwarder.json +1 -1
- package/dist/abi/Ovm_SpokePool.sol/IL2ERC20Bridge.json +1 -1
- package/dist/abi/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
- package/dist/abi/Ovm_WithdrawalHelper.sol/IOvm_SpokePool.json +1 -1
- package/dist/abi/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
- package/dist/abi/Ownable.sol/Ownable.json +1 -1
- package/dist/abi/OwnableUpgradeable.sol/OwnableUpgradeable.json +1 -1
- package/dist/abi/PeripherySigningLib.sol/PeripherySigningLib.json +1 -1
- package/dist/abi/PermissionSplitterProxy.sol/PermissionSplitterProxy.json +1 -1
- package/dist/abi/PermissionedMulticallHandler.sol/PermissionedMulticallHandler.json +1 -1
- package/dist/abi/PolygonERC20Test.sol/PolygonERC20Test.json +1 -1
- package/dist/abi/PolygonMocks.sol/DepositManagerMock.json +1 -0
- package/dist/abi/PolygonMocks.sol/FxStateSenderMock.json +1 -0
- package/dist/abi/PolygonMocks.sol/PolygonERC20Mock.json +1 -0
- package/dist/abi/PolygonMocks.sol/PolygonERC20PredicateMock.json +1 -0
- package/dist/abi/PolygonMocks.sol/PolygonRegistryMock.json +1 -0
- package/dist/abi/PolygonMocks.sol/RootChainManagerMock.json +1 -0
- package/dist/abi/PolygonTokenBridger.sol/MaticToken.json +1 -1
- package/dist/abi/PolygonTokenBridger.sol/PolygonERC20Predicate.json +1 -1
- package/dist/abi/PolygonTokenBridger.sol/PolygonIERC20Upgradeable.json +1 -1
- package/dist/abi/PolygonTokenBridger.sol/PolygonRegistry.json +1 -1
- package/dist/abi/PolygonTokenBridger.sol/PolygonTokenBridger.json +1 -1
- package/dist/abi/PolygonZkEVMMocks.sol/MockPolygonZkEVMBridge.json +1 -0
- package/dist/abi/PolygonZkEVM_Adapter.sol/PolygonZkEVM_Adapter.json +1 -1
- package/dist/abi/PolygonZkEVM_SpokePool.sol/IBridgeMessageReceiver.json +1 -1
- package/dist/abi/PolygonZkEVM_SpokePool.sol/PolygonZkEVM_SpokePool.json +1 -1
- package/dist/abi/Polygon_Adapter.sol/DepositManager.json +1 -1
- package/dist/abi/Polygon_Adapter.sol/IFxStateSender.json +1 -1
- package/dist/abi/Polygon_Adapter.sol/IRootChainManager.json +1 -1
- package/dist/abi/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
- package/dist/abi/Polygon_SpokePool.sol/IFxMessageProcessor.json +1 -1
- package/dist/abi/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
- package/dist/abi/PrecompileLib.sol/PrecompileLib.json +1 -1
- package/dist/abi/PrecompileSim.sol/PrecompileSim.json +1 -1
- package/dist/abi/Proxy.sol/Proxy.json +1 -1
- package/dist/abi/ProxyAdmin.sol/ProxyAdmin.json +1 -1
- package/dist/abi/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
- package/dist/abi/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +1 -1
- package/dist/abi/Router_Adapter.sol/Router_Adapter.json +1 -1
- package/dist/abi/SP1AutoVerifier.sol/SP1AutoVerifier.json +1 -1
- package/dist/abi/SP1Helios.sol/SP1Helios.json +1 -1
- package/dist/abi/SP1MockVerifier.sol/SP1MockVerifier.json +1 -0
- package/dist/abi/SafeCast.sol/SafeCast.json +1 -1
- package/dist/abi/SafeERC20.sol/SafeERC20.json +1 -1
- package/dist/abi/ScrollMocks.sol/MockScrollL2GatewayRouter.json +1 -0
- package/dist/abi/ScrollMocks.sol/MockScrollMessenger.json +1 -0
- package/dist/abi/Scroll_Adapter.sol/Scroll_Adapter.json +1 -1
- package/dist/abi/Scroll_SpokePool.sol/IL2GatewayRouterExtended.json +1 -1
- package/dist/abi/Scroll_SpokePool.sol/Scroll_SpokePool.json +1 -1
- package/dist/abi/ShortStrings.sol/ShortStrings.json +1 -1
- package/dist/abi/SkinnyOptimisticOracleInterface.sol/SkinnyOptimisticOracleInterface.json +1 -1
- package/dist/abi/Solana_Adapter.sol/Solana_Adapter.json +1 -1
- package/dist/abi/SpokePool.sol/SpokePool.json +1 -1
- package/dist/abi/SpokePoolInterface.sol/SpokePoolInterface.json +1 -1
- package/dist/abi/SpokePoolMessageHandler.sol/AcrossMessageHandler.json +1 -1
- package/dist/abi/SpokePoolPeriphery.sol/SpokePoolPeriphery.json +1 -1
- package/dist/abi/SpokePoolPeriphery.sol/SwapProxy.json +1 -1
- package/dist/abi/SpokePoolPeripheryInterface.sol/SpokePoolPeripheryInterface.json +1 -1
- package/dist/abi/SpokePoolVerifier.sol/SpokePoolVerifier.json +1 -1
- package/dist/abi/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
- package/dist/abi/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
- package/dist/abi/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
- package/dist/abi/SponsoredOFTInterface.sol/SponsoredOFTInterface.json +1 -1
- package/dist/abi/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
- package/dist/abi/StdConfig.sol/StdConfig.json +1 -1
- package/dist/abi/StoreInterface.sol/StoreInterface.json +1 -1
- package/dist/abi/Strings.sol/Strings.json +1 -1
- package/dist/abi/SwapHandler.sol/SwapHandler.json +1 -1
- package/dist/abi/Testable.sol/Testable.json +1 -1
- package/dist/abi/Timer.sol/Timer.json +1 -1
- package/dist/abi/TransferProxy.sol/TransferProxy.json +1 -1
- package/dist/abi/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
- package/dist/abi/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -1
- package/dist/abi/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -1
- package/dist/abi/Universal_Adapter.sol/IOwnable.json +1 -1
- package/dist/abi/Universal_Adapter.sol/Universal_Adapter.json +1 -1
- package/dist/abi/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
- package/dist/abi/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -1
- package/dist/abi/V3SpokePoolInterface.sol/V3SpokePoolInterface.json +1 -1
- package/dist/abi/WETH9.sol/WETH9.json +1 -1
- package/dist/abi/WETH9Interface.sol/WETH9Interface.json +1 -1
- package/dist/abi/WithdrawImplementation.sol/WithdrawImplementation.json +1 -1
- package/dist/abi/WithdrawalHelperBase.sol/WithdrawalHelperBase.json +1 -1
- package/dist/abi/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
- package/dist/abi/ZkStackBridgeHub.sol/BridgeHubInterface.json +1 -1
- package/dist/abi/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
- package/dist/abi/ZkStack_CustomGasToken_Adapter.sol/FunderInterface.json +1 -1
- package/dist/abi/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
- package/dist/abi/ZkSyncMocks.sol/MockL2Eth.json +1 -0
- package/dist/abi/ZkSyncMocks.sol/MockZkBridge.json +1 -0
- package/dist/abi/ZkSync_SpokePool.sol/IL2AssetRouter.json +1 -1
- package/dist/abi/ZkSync_SpokePool.sol/IL2ETH.json +1 -1
- package/dist/abi/ZkSync_SpokePool.sol/ZkBridgeLike.json +1 -1
- package/dist/abi/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
- package/dist/abi/Zora_Adapter.sol/Zora_Adapter.json +1 -1
- package/dist/abi/draft-IERC1822.sol/IERC1822Proxiable.json +1 -1
- package/dist/abi/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.json +1 -1
- package/dist/abi/eraVM_EIP7702.sol/SimpleContract.json +1 -1
- package/dist/abi/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
- package/dist/abi/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @notice Mock ZkSync ERC20 bridge for testing.
|
|
6
|
+
* @dev Mimics the ZkBridgeLike interface used by ZkSync_SpokePool.
|
|
7
|
+
*/
|
|
8
|
+
contract MockZkBridge {
|
|
9
|
+
// Call tracking for test assertions (smock-like behavior)
|
|
10
|
+
uint256 public withdrawCallCount;
|
|
11
|
+
|
|
12
|
+
event Withdrawal(address indexed l1Receiver, address indexed l2Token, uint256 amount);
|
|
13
|
+
|
|
14
|
+
struct WithdrawCall {
|
|
15
|
+
address l1Receiver;
|
|
16
|
+
address l2Token;
|
|
17
|
+
uint256 amount;
|
|
18
|
+
}
|
|
19
|
+
WithdrawCall public lastWithdrawCall;
|
|
20
|
+
|
|
21
|
+
// Store all calls for multi-call verification
|
|
22
|
+
WithdrawCall[] public withdrawCalls;
|
|
23
|
+
|
|
24
|
+
function withdraw(address _l1Receiver, address _l2Token, uint256 _amount) external {
|
|
25
|
+
withdrawCallCount++;
|
|
26
|
+
lastWithdrawCall = WithdrawCall(_l1Receiver, _l2Token, _amount);
|
|
27
|
+
withdrawCalls.push(lastWithdrawCall);
|
|
28
|
+
emit Withdrawal(_l1Receiver, _l2Token, _amount);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @notice Get a specific withdraw call by index.
|
|
33
|
+
*/
|
|
34
|
+
function getWithdrawCall(
|
|
35
|
+
uint256 index
|
|
36
|
+
) external view returns (address l1Receiver, address l2Token, uint256 amount) {
|
|
37
|
+
WithdrawCall memory call = withdrawCalls[index];
|
|
38
|
+
return (call.l1Receiver, call.l2Token, call.amount);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice Mock ZkSync L2 ETH contract for testing.
|
|
44
|
+
* @dev Mimics the IL2ETH interface - ETH on ZkSync implements ERC-20 subset with L1 bridge support.
|
|
45
|
+
*/
|
|
46
|
+
contract MockL2Eth {
|
|
47
|
+
// Call tracking for test assertions (smock-like behavior)
|
|
48
|
+
uint256 public withdrawCallCount;
|
|
49
|
+
|
|
50
|
+
event EthWithdrawal(address indexed l1Receiver, uint256 amount);
|
|
51
|
+
|
|
52
|
+
struct WithdrawCall {
|
|
53
|
+
address l1Receiver;
|
|
54
|
+
uint256 amount;
|
|
55
|
+
}
|
|
56
|
+
WithdrawCall public lastWithdrawCall;
|
|
57
|
+
|
|
58
|
+
// Store all calls for multi-call verification
|
|
59
|
+
WithdrawCall[] public withdrawCalls;
|
|
60
|
+
|
|
61
|
+
function withdraw(address _l1Receiver) external payable {
|
|
62
|
+
withdrawCallCount++;
|
|
63
|
+
lastWithdrawCall = WithdrawCall(_l1Receiver, msg.value);
|
|
64
|
+
withdrawCalls.push(lastWithdrawCall);
|
|
65
|
+
emit EthWithdrawal(_l1Receiver, msg.value);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @notice Get a specific withdraw call by index.
|
|
70
|
+
*/
|
|
71
|
+
function getWithdrawCall(uint256 index) external view returns (address l1Receiver, uint256 amount) {
|
|
72
|
+
WithdrawCall memory call = withdrawCalls[index];
|
|
73
|
+
return (call.l1Receiver, call.amount);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Allow receiving ETH
|
|
77
|
+
receive() external payable {}
|
|
78
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import { CommonFlowParams } from "../../periphery/mintburn/Structs.sol";
|
|
5
|
+
import { DonationBox } from "../../chain-adapters/DonationBox.sol";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @title IHyperCoreFlowExecutor
|
|
9
|
+
* @notice Interface for HyperCoreFlowExecutor contract handling HyperCore interactions for transfer-to-core or swap-with-core actions after stablecoin bridge transactions
|
|
10
|
+
* @custom:security-contact bugs@across.to
|
|
11
|
+
*/
|
|
12
|
+
interface IHyperCoreFlowExecutor {
|
|
13
|
+
/**************************************
|
|
14
|
+
* PUBLIC VARIABLE GETTERS *
|
|
15
|
+
**************************************/
|
|
16
|
+
|
|
17
|
+
/// @notice Common decimals scalars - parts per million decimals
|
|
18
|
+
/// @return PPM_DECIMALS Parts per million decimals (6)
|
|
19
|
+
function PPM_DECIMALS() external returns (uint256);
|
|
20
|
+
|
|
21
|
+
/// @notice Parts per million scalar (10^6)
|
|
22
|
+
/// @return PPM_SCALAR Parts per million scalar
|
|
23
|
+
function PPM_SCALAR() external returns (uint256);
|
|
24
|
+
|
|
25
|
+
/// @notice Decimals to use for Price calculations in limit order-related calculation functions
|
|
26
|
+
/// @return PX_D Price decimals (8)
|
|
27
|
+
function PX_D() external returns (uint8);
|
|
28
|
+
|
|
29
|
+
/// @notice One in 1e8 format (10^8)
|
|
30
|
+
/// @return ONEX1e8 One in 1e8 format
|
|
31
|
+
function ONEX1e8() external returns (uint64);
|
|
32
|
+
|
|
33
|
+
/// @notice The donation box contract.
|
|
34
|
+
/// @return donationBox Address of the donation box contract
|
|
35
|
+
function donationBox() external returns (DonationBox);
|
|
36
|
+
|
|
37
|
+
/// @notice All operations performed in this contract are relative to this baseToken
|
|
38
|
+
/// @return baseToken Address of the base token
|
|
39
|
+
function baseToken() external returns (address);
|
|
40
|
+
|
|
41
|
+
/**************************************
|
|
42
|
+
* FLOW FUNCTIONS *
|
|
43
|
+
**************************************/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @notice External entrypoint to execute flow when called via delegatecall from a handler. Works with params
|
|
47
|
+
* checked by a handler. Params authorization by a handler is enforced via `onlyAuthorizedFlow` modifier
|
|
48
|
+
* @param params Common flow parameters
|
|
49
|
+
* @param maxUserSlippageBps Maximum user slippage in basis points
|
|
50
|
+
*/
|
|
51
|
+
function executeFlow(CommonFlowParams memory params, uint256 maxUserSlippageBps) external;
|
|
52
|
+
|
|
53
|
+
/// @notice External entrypoint to execute simple transfer flow (see `executeFlow` comment for details)
|
|
54
|
+
/// @param params Common flow parameters
|
|
55
|
+
function executeSimpleTransferFlow(CommonFlowParams memory params) external;
|
|
56
|
+
|
|
57
|
+
/// @notice External entrypoint to execute fallback evm flow (see `executeFlow` comment for details)
|
|
58
|
+
/// @param params Common flow parameters
|
|
59
|
+
function fallbackHyperEVMFlow(CommonFlowParams memory params) external;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @notice Finalizes multiple swap flows associated with a final token, subject to the L1 Hyperliquid balance
|
|
63
|
+
* @dev Caller is responsible for providing correct limitOrderOutput amounts per assosicated swap flow. The caller
|
|
64
|
+
* has to estimate how much final tokens it received on core based on the input of the corresponding quote nonce
|
|
65
|
+
* swap flow
|
|
66
|
+
* @param finalToken The final token address
|
|
67
|
+
* @param quoteNonces Array of quote nonces to finalize
|
|
68
|
+
* @param limitOrderOuts Array of limit order outputs corresponding to each quote nonce
|
|
69
|
+
* @return finalized Number of swaps successfully finalized
|
|
70
|
+
*/
|
|
71
|
+
function finalizeSwapFlows(
|
|
72
|
+
address finalToken,
|
|
73
|
+
bytes32[] calldata quoteNonces,
|
|
74
|
+
uint64[] calldata limitOrderOuts
|
|
75
|
+
) external returns (uint256 finalized);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @notice Activates a user account on Core by funding the account activation fee.
|
|
79
|
+
* @param quoteNonce The nonce of the quote that is used to identify the user.
|
|
80
|
+
* @param finalRecipient The address of the recipient of the funds.
|
|
81
|
+
* @param fundingToken The address of the token that is used to fund the account activation fee.
|
|
82
|
+
*/
|
|
83
|
+
function activateUserAccount(bytes32 quoteNonce, address finalRecipient, address fundingToken) external;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @notice Cancells a pending limit order by `cloid` with an intention to submit a new limit order in its place. To
|
|
87
|
+
* be used for stale limit orders to speed up executing user transactions
|
|
88
|
+
* @param finalToken The final token address
|
|
89
|
+
* @param cloid The client order ID to cancel
|
|
90
|
+
*/
|
|
91
|
+
function cancelLimitOrderByCloid(address finalToken, uint128 cloid) external;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @notice Submits a limit order from the bot
|
|
95
|
+
* @param finalToken The final token address
|
|
96
|
+
* @param priceX1e8 Price in 1e8 format
|
|
97
|
+
* @param sizeX1e8 Size in 1e8 format
|
|
98
|
+
* @param cloid The client order ID
|
|
99
|
+
*/
|
|
100
|
+
function submitLimitOrderFromBot(address finalToken, uint64 priceX1e8, uint64 sizeX1e8, uint128 cloid) external;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* @notice Set or update information for the token to use it in this contract
|
|
104
|
+
* @dev To be able to use the token in the swap flow, FinalTokenInfo has to be set as well
|
|
105
|
+
* @dev Setting core token info to incorrect values can lead to loss of funds. Should NEVER be unset while the
|
|
106
|
+
* finalTokenParams are not unset
|
|
107
|
+
* @param token The token address
|
|
108
|
+
* @param coreIndex The HyperCore index of the token
|
|
109
|
+
* @param canBeUsedForAccountActivation Whether the token can be used for account activation
|
|
110
|
+
* @param accountActivationFeeCore The account activation fee in core units
|
|
111
|
+
* @param bridgeSafetyBufferCore The bridge safety buffer in core units
|
|
112
|
+
*/
|
|
113
|
+
function setCoreTokenInfo(
|
|
114
|
+
address token,
|
|
115
|
+
uint32 coreIndex,
|
|
116
|
+
bool canBeUsedForAccountActivation,
|
|
117
|
+
uint64 accountActivationFeeCore,
|
|
118
|
+
uint64 bridgeSafetyBufferCore
|
|
119
|
+
) external;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @notice Sets the parameters for a final token.
|
|
123
|
+
* @dev This function deploys a new SwapHandler contract if one is not already set. If the final token
|
|
124
|
+
* can't be used for account activation, the handler will be left unactivated and would need to be activated by the caller.
|
|
125
|
+
* @param finalToken The address of the final token.
|
|
126
|
+
* @param assetIndex The index of the asset in the Hyperliquid market.
|
|
127
|
+
* @param isBuy Whether the final token is a buy or a sell.
|
|
128
|
+
* @param feePpm The fee in parts per million.
|
|
129
|
+
* @param suggestedDiscountBps The suggested slippage in basis points.
|
|
130
|
+
* @param accountActivationFeeToken A token to pay account activation fee in. Only used if adding a new final token
|
|
131
|
+
*/
|
|
132
|
+
function setFinalTokenInfo(
|
|
133
|
+
address finalToken,
|
|
134
|
+
uint32 assetIndex,
|
|
135
|
+
bool isBuy,
|
|
136
|
+
uint32 feePpm,
|
|
137
|
+
uint32 suggestedDiscountBps,
|
|
138
|
+
address accountActivationFeeToken
|
|
139
|
+
) external;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @notice Predicts the deterministic address of a SwapHandler for a given finalToken using CREATE2
|
|
143
|
+
* @param finalToken The final token address
|
|
144
|
+
* @return The predicted address of the SwapHandler
|
|
145
|
+
*/
|
|
146
|
+
function predictSwapHandler(address finalToken) external view returns (address);
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @notice Used for ad-hoc sends of sponsorship funds to associated SwapHandler @ HyperCore
|
|
150
|
+
* @param token The final token for which we want to fund the SwapHandler
|
|
151
|
+
* @param amount The amount to send
|
|
152
|
+
*/
|
|
153
|
+
function sendSponsorshipFundsToSwapHandler(address token, uint256 amount) external;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @notice Sweeps ERC20 tokens from the contract
|
|
157
|
+
* @param token The token address to sweep
|
|
158
|
+
* @param amount The amount to sweep
|
|
159
|
+
*/
|
|
160
|
+
function sweepErc20(address token, uint256 amount) external;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @notice Sweeps ERC20 tokens from the donation box
|
|
164
|
+
* @param token The token address to sweep
|
|
165
|
+
* @param amount The amount to sweep
|
|
166
|
+
*/
|
|
167
|
+
function sweepErc20FromDonationBox(address token, uint256 amount) external;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* @notice Sweeps ERC20 tokens from a SwapHandler
|
|
171
|
+
* @param token The token address to sweep
|
|
172
|
+
* @param amount The amount to sweep
|
|
173
|
+
*/
|
|
174
|
+
function sweepERC20FromSwapHandler(address token, uint256 amount) external;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @notice Sweeps tokens from Core
|
|
178
|
+
* @param token The token address
|
|
179
|
+
* @param amount The amount to sweep in core units
|
|
180
|
+
*/
|
|
181
|
+
function sweepOnCore(address token, uint64 amount) external;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* @notice Sweeps tokens from Core from a SwapHandler
|
|
185
|
+
* @param token The token address
|
|
186
|
+
* @param amount The amount to sweep in core units
|
|
187
|
+
*/
|
|
188
|
+
function sweepOnCoreFromSwapHandler(address token, uint64 amount) external;
|
|
189
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @notice Contains common data structures and functions used by all SpokePool implementations.
|
|
6
|
+
*/
|
|
7
|
+
interface MockV2SpokePoolInterface {
|
|
8
|
+
struct RelayData {
|
|
9
|
+
bytes32 depositor;
|
|
10
|
+
bytes32 recipient;
|
|
11
|
+
bytes32 destinationToken;
|
|
12
|
+
uint256 amount;
|
|
13
|
+
uint256 originChainId;
|
|
14
|
+
uint256 destinationChainId;
|
|
15
|
+
int64 realizedLpFeePct;
|
|
16
|
+
int64 relayerFeePct;
|
|
17
|
+
uint32 depositId;
|
|
18
|
+
bytes message;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
struct RelayExecution {
|
|
22
|
+
RelayData relay;
|
|
23
|
+
bytes32 relayHash;
|
|
24
|
+
int64 updatedRelayerFeePct;
|
|
25
|
+
bytes32 updatedRecipient;
|
|
26
|
+
bytes updatedMessage;
|
|
27
|
+
uint256 repaymentChainId;
|
|
28
|
+
uint256 maxTokensToSend;
|
|
29
|
+
uint256 maxCount;
|
|
30
|
+
bool slowFill;
|
|
31
|
+
int256 payoutAdjustmentPct;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
struct SlowFill {
|
|
35
|
+
RelayData relayData;
|
|
36
|
+
int256 payoutAdjustmentPct;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":"0x"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleMember","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRoleMemberCount","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleMember","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRoleMemberCount","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":"0x"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]}],"bytecode":"0x"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"globalConfig","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"l1TokenConfig","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateGlobalConfig","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenConfig","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedGlobalConfig","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"value","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"UpdatedTokenConfig","inputs":[{"name":"key","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"string","indexed":false,"internalType":"string"}],"anonymous":false}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"globalConfig","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"l1TokenConfig","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateGlobalConfig","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTokenConfig","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedGlobalConfig","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"value","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"UpdatedTokenConfig","inputs":[{"name":"key","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"string","indexed":false,"internalType":"string"}],"anonymous":false}],"bytecode":"0x608080604052346059575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3610af4908161005e8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806350fbbd0114610094578063715018a61461008f5780638098b8751461008a5780638da5cb5b146100855780639fdd403a14610080578063ac9650d81461007b578063e5e818ae146100765763f2fde38b14610071575f80fd5b61054d565b6104ee565b610480565b610361565b61033c565b6102be565b61023e565b346100dc5760203660031901126100dc576001600160a01b036100b56100e0565b165f5260016020526100d86100cc60405f20610169565b6040519182918261022d565b0390f35b5f80fd5b600435906001600160a01b03821682036100dc57565b90600182811c92168015610124575b602083101461011057565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610105565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761016457604052565b61012e565b60405190815f82549261017b846100f6565b80845293600181169081156101e757506001146101a3575b506101a092500382610142565b90565b90505f9291925260205f20905f915b8183106101cb5750509060206101a0928201015f610193565b60209193508060019154838588010152019101909183926101b2565b9050602092506101a094915060ff191682840152151560051b8201015f610193565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206101a0928181520190610209565b346100dc575f3660031901126100dc57610256610aab565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b67ffffffffffffffff811161016457601f01601f191660200190565b346100dc5760403660031901126100dc576102d76100e0565b6024359067ffffffffffffffff82116100dc57366023830112156100dc57816004013590610304826102a2565b916103126040519384610142565b80835236602482860101116100dc576020815f92602461033a970183870137840101526105ca565b005b346100dc575f3660031901126100dc5760206001600160a01b035f5416604051908152f35b346100dc5760203660031901126100dc576004355f52600260205260405f20604051905f90805490610392826100f6565b80855291600181169081156103fa57506001146103ba575b6100d8846100cc81860382610142565b5f90815260208120939250905b8082106103e0575090915081016020016100cc826103aa565b9192600181602092548385880101520191019092916103c7565b60ff191660208087019190915292151560051b850190920192506100cc91508390506103aa565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061045357505050505090565b9091929394602080610471600193603f198682030187528951610209565b97019301930191939290610444565b346100dc5760203660031901126100dc5760043567ffffffffffffffff81116100dc57366023820112156100dc5780600401359067ffffffffffffffff82116100dc573660248360051b830101116100dc576100d89160246104e292016108ca565b60405191829182610421565b346100dc5760403660031901126100dc5760243560043567ffffffffffffffff82116100dc57366023830112156100dc5781600401359067ffffffffffffffff82116100dc5736602483850101116100dc57602461033a930190610954565b346100dc5760203660031901126100dc576001600160a01b0361056e6100e0565b610576610aab565b1680156100dc576001600160a01b035f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b6001600160a01b03906105db610aab565b1690815f52600160205260405f20815167ffffffffffffffff81116101645761060e8161060884546100f6565b8461070c565b6020601f821160011461067f5791610661827f2170feb790d9bf809ba50947096322ec651593149b6f78e673e51c1c67cfe3fd959361066f955f91610674575b508160011b915f199060031b1c19161790565b90556040519182918261022d565b0390a2565b90508401515f61064e565b601f19821690610692845f5260205f2090565b915f5b8181106106f457509261066f9492600192827f2170feb790d9bf809ba50947096322ec651593149b6f78e673e51c1c67cfe3fd9896106106dc575b5050811b0190556100cc565b8501515f1960f88460031b161c191690555f806106d0565b9192602060018192868a015181550194019201610695565b601f821161071957505050565b5f5260205f20906020601f840160051c83019310610751575b601f0160051c01905b818110610746575050565b5f815560010161073b565b9091508190610732565b67ffffffffffffffff81116101645760051b60200190565b9061077d8261075b565b61078a6040519182610142565b828152809261079b601f199161075b565b01905f5b8281106107ab57505050565b80606060208093850101520161079f565b634e487b7160e01b5f52603260045260245ffd5b91908110156108125760051b81013590601e19813603018212156100dc57019081359167ffffffffffffffff83116100dc5760200182360381136100dc579190565b6107bc565b908092918237015f815290565b3d1561084e573d90610835826102a2565b916108436040519384610142565b82523d5f602084013e565b606090565b6020818303126100dc5780519067ffffffffffffffff82116100dc570181601f820112156100dc57805190610887826102a2565b926108956040519485610142565b828452602083830101116100dc57815f9260208093018386015e8301015290565b80518210156108125760209160051b010190565b9190916108d683610773565b925f5b8181106108e557505050565b5f806108f28385876107d0565b9061090260405180938193610817565b0390305af461090f610824565b9015610935579060019161092382886108b6565b5261092e81876108b6565b50016108d9565b60448151106100dc578060248060046100dc9401518301019101610853565b90929161095f610aab565b815f52600260205260405f209367ffffffffffffffff82116101645761098f8261098987546100f6565b8761070c565b5f94601f83116001146109fb576109de83807f84c11a81ce8e8060e814e03c4606fe325e7a24ecc22ef7001254e27de3762f499697985f916109f057508160011b915f199060031b1c19161790565b90555b61066f60405192839283610a84565b90508401355f61064e565b601f19831695610a0e825f5260205f2090565b905f5b888110610a6c5750847f84c11a81ce8e8060e814e03c4606fe325e7a24ecc22ef7001254e27de3762f4996979810610a53575b5050600183811b0190556109e1565b8301355f19600386901b60f8161c191690555f80610a44565b90916020600181928588013581550193019101610a11565b90918060409360208452816020850152848401375f828201840152601f01601f1916010190565b6001600160a01b035f541633036100dc5756fea2646970667358221220fba68e2b9d26077007a7c7ffc0627c5959ce0d6b31ed922f6cdb0d186c30077464736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"emitData","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"MetadataEmitted","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"emitData","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"MetadataEmitted","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":"0x6080806040523460145760f990816100198239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c63d836083e146023575f80fd5b3460bf57602036600319011260bf576004359067ffffffffffffffff821160bf573660238301121560bf57816004013567ffffffffffffffff811160bf57366024828501011160bf57801560bf57818160409260247fc28009f405f9b451f5155492167b1ad5ab376d991bea880cb5049e924e5b823c966020855282602086015201848401375f828201840152601f01601f19168101030190a1005b5f80fdfea264697066735822122099cbec53770bc7972a8200cad1b39f795a25ec396983a11ba17e71bac9e00c6564736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"claim","inputs":[{"name":"_claim","type":"tuple","internalType":"struct MerkleDistributorInterface.Claim","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimFor","inputs":[{"name":"_claim","type":"tuple","internalType":"struct MerkleDistributorInterface.Claim","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimMulti","inputs":[{"name":"claims","type":"tuple[]","internalType":"struct MerkleDistributorInterface.Claim[]","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteWindow","inputs":[{"name":"windowIndex","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRewardTokenForWindow","inputs":[{"name":"windowIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isClaimed","inputs":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"merkleWindows","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"remainingAmount","type":"uint256","internalType":"uint256"},{"name":"rewardToken","type":"address","internalType":"contract IERC20"},{"name":"ipfsHash","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextCreatedIndex","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWindow","inputs":[{"name":"rewardsToDeposit","type":"uint256","internalType":"uint256"},{"name":"rewardToken","type":"address","internalType":"address"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyClaim","inputs":[{"name":"_claim","type":"tuple","internalType":"struct MerkleDistributorInterface.Claim","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"whitelistClaimer","inputs":[{"name":"newContract","type":"address","internalType":"address"},{"name":"whitelist","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelistedClaimers","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"withdrawRewards","inputs":[{"name":"rewardCurrency","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimFor","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"windowIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"accountIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Claimed","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"windowIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"accountIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CreatedWindow","inputs":[{"name":"windowIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"rewardsDeposited","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeleteWindow","inputs":[{"name":"windowIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistedClaimer","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"whitelist","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"WithdrawRewards","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"claim","inputs":[{"name":"_claim","type":"tuple","internalType":"struct MerkleDistributorInterface.Claim","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimFor","inputs":[{"name":"_claim","type":"tuple","internalType":"struct MerkleDistributorInterface.Claim","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimMulti","inputs":[{"name":"claims","type":"tuple[]","internalType":"struct MerkleDistributorInterface.Claim[]","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteWindow","inputs":[{"name":"windowIndex","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRewardTokenForWindow","inputs":[{"name":"windowIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isClaimed","inputs":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"merkleWindows","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"remainingAmount","type":"uint256","internalType":"uint256"},{"name":"rewardToken","type":"address","internalType":"contract IERC20"},{"name":"ipfsHash","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextCreatedIndex","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWindow","inputs":[{"name":"rewardsToDeposit","type":"uint256","internalType":"uint256"},{"name":"rewardToken","type":"address","internalType":"address"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyClaim","inputs":[{"name":"_claim","type":"tuple","internalType":"struct MerkleDistributorInterface.Claim","components":[{"name":"windowIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"accountIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"whitelistClaimer","inputs":[{"name":"newContract","type":"address","internalType":"address"},{"name":"whitelist","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelistedClaimers","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"withdrawRewards","inputs":[{"name":"rewardCurrency","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ClaimFor","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"windowIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"accountIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Claimed","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"windowIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"accountIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CreatedWindow","inputs":[{"name":"windowIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"rewardsDeposited","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardToken","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeleteWindow","inputs":[{"name":"windowIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistedClaimer","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"whitelist","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"WithdrawRewards","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":"0x608080604052346059575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3611052908161005e8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80634f51215114610b2e5780636be651791461095c57806370b53aee1461091f578063715018a6146108bb578063743817a014610843578063761b42971461080d57806388f038a214610718578063891b0d711461060d5780638da5cb5b146105e85780639f5a96721461052d578063a198496c146104b1578063d45118681461021f578063d6ef7af0146101b4578063e2e441a314610197578063f2fde38b1461011a5763f364c90c146100c9575f80fd5b3461011657604036600319011261011657602061010c6024356004355f52600360205260405f208160081c5f52602052600160ff60405f205492161b8091161490565b6040519015158152f35b5f80fd5b34610116576020366003190112610116576001600160a01b0361013b610b8b565b610143610dcb565b168015610116576001600160a01b035f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b34610116575f366003190112610116576020600254604051908152f35b34610116576040366003190112610116576004356001600160a01b03811690818103610116576101f160243580926101ea610dcb565b3390610efb565b6040519081527ffb0872526787ac1be379aa37eaa9913b47d6d50c3f5fe5ec67ffe4282493670e60203392a3005b3461011657608036600319011261011657600435602435906001600160a01b038216809203610116576064359167ffffffffffffffff831161011657366023840112156101165782600401359067ffffffffffffffff82116101165736602483860101116101165761028f610dcb565b600254916001830180841161049d575f916020916002558060246102b282610daf565b986102c06040519a8b610b69565b828a52018389013786010152815f52600160205260405f20916044358355836001840155600360028401938373ffffffffffffffffffffffffffffffffffffffff1986541617855501855167ffffffffffffffff8111610489576103248254610c8c565b601f811161044e575b506020601f82116001146103dd5790806001600160a01b0396959493926103d0995f926103d2575b50508160011b915f199060031b1c19161790555b7f521fe5bce65ac6af752c1083ec77facc5b6c13f40693e96eeca3747726fee9ad60408051878152336020820152a35416604051916323b872dd60e01b60208401523360248401523060448401526064830152606482526103cb608483610b69565b610f34565b005b015190508980610355565b601f19821697835f52815f20985f5b81811061043657509860019284926001600160a01b0399989796956103d09c1061041e575b505050811b019055610369565b01515f1960f88460031b161c19169055898080610411565b838301518b556001909a0199602093840193016103ec565b61047990835f5260205f20601f840160051c8101916020851061047f575b601f0160051c0190610d99565b8761032d565b909150819061046c565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b346101165760203660031901126101165760043567ffffffffffffffff8111610116576104e2903690600401610bb9565b606081016001600160a01b03815116330361011657816105046103d093610dde565b80515f52600160205260206001600160a01b0380600260405f2001541693511691015191610efb565b3461011657602036600319011261011657600435610549610dcb565b805f526001602052600360405f205f81555f60018201555f6002820155016105718154610c8c565b90816105a5575b827f8fea52000ecb40f2262c672496dfadccc9d6290439bac487e084de8c57682d666020604051338152a2005b81601f5f93116001146105bc5750555b8180610578565b818352602083206105d891601f0160051c810190600101610d99565b80825281602081209155556105b5565b34610116575f3660031901126101165760206001600160a01b035f5416604051908152f35b34610116576020366003190112610116576004355f52600160205260405f20805460018201549060036001600160a01b0360028501541693016040515f9482549261065784610c8c565b9081845260208401946001811690815f146106fb57506001146106c1575b50506106868260a096970383610b69565b604051958694855260208501526040840152608060608401525180918160808501528484015e5f828201840152601f01601f19168101030190f35b9096505f5260205f205f905b8782106106e557508201602001955061068682610675565b60018160209254838588010152019101906106cd565b60ff191686525050151560051b8201602001955061068682610675565b346101165760203660031901126101165760043567ffffffffffffffff811161011657610749903690600401610bb9565b335f52600460205260ff60405f205416156101165761076781610dde565b80515f5260016020526001600160a01b03600260405f200154169061079460208201928351903390610efb565b80517fcfb930b6b49765485460cb1c6853ec3437a78b18d8c9a25b9fed2eea3b6756a960406001600160a01b036060850151169301519351825f5260016020526001600160a01b03600260405f20015416946108086040519283923396846040919493926060820195825260208201520152565b0390a4005b34610116576020366003190112610116576004355f52600160205260206001600160a01b03600260405f20015416604051908152f35b346101165760403660031901126101165761085c610b8b565b60243590811515809203610116576001600160a01b039061087b610dcb565b16805f52600460205260405f2060ff1981541660ff84161790557fbaa2323ab54d3ecd5bd63d3c3cfc23d7ef896edcbc927b7b7867407f32a3ba295f80a3005b34610116575f366003190112610116576108d3610dcb565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610116576020366003190112610116576001600160a01b03610940610b8b565b165f526004602052602060ff60405f2054166040519015158152f35b346101165760203660031901126101165760043567ffffffffffffffff8111610116573660238201121561011657806004013561099881610ba1565b916109a66040519384610b69565b8183526024602084019260051b820101903682116101165760248101925b828410610afe578480515f5b818110610ad857825f81515f5b8181106109e657005b6109f08185610d71565b51926109fb84610dde565b6020840151810180911161049d578093600183019081841161049d5780515f5260016020526001600160a01b03600260405f2001541691858114908115610aa8575b8115610a7a575b50610a55575b5050506001016109dd565b610a6f93955060606001600160a01b039101511690610efb565b5f9160018580610a4a565b610a85915088610d71565b51515f526001602052816001600160a01b03600260405f20015416141588610a44565b90506001600160a01b036060610abe838b610d71565b510151166001600160a01b03606084015116141590610a3d565b336001600160a01b036060610aed8487610d71565b5101511603610116576001016109d0565b833567ffffffffffffffff811161011657602091610b23839260243691870101610bb9565b8152019301926109c4565b346101165760203660031901126101165760043567ffffffffffffffff81116101165761010c610b646020923690600401610bb9565b610cc4565b90601f8019910116810190811067ffffffffffffffff82111761048957604052565b600435906001600160a01b038216820361011657565b67ffffffffffffffff81116104895760051b60200190565b919060a0838203126101165760405160a0810181811067ffffffffffffffff82111761048957604052809380358252602081013560208301526040810135604083015260608101356001600160a01b038116810361011657606083015260808101359067ffffffffffffffff821161011657019180601f84011215610116578235610c4381610ba1565b93610c516040519586610b69565b81855260208086019260051b82010192831161011657602001905b828210610c7c5750505060800152565b8135815260209182019101610c6c565b90600182811c92168015610cba575b6020831014610ca657565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610c9b565b906060820151602083015160408401516040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152610d0b607482610b69565b51902090608083015192515f52600160205260405f205491905f915b8451831015610d6957610d3a8386610d71565b519081811015610d58575f52602052600160405f205b920191610d27565b905f52602052600160405f20610d50565b915092501490565b8051821015610d855760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b818110610da4575050565b5f8155600101610d99565b67ffffffffffffffff811161048957601f01601f191660200190565b6001600160a01b035f5416330361011657565b610de781610cc4565b15610116578051610e2060408301918251905f52600360205260405f208160081c5f52602052600160ff60405f205492161b8091161490565b610116578151600160ff83518060081c845f52600360205260405f20815f5260205260405f2054945f52600360205260405f20905f52602052161b1760405f20556020820191825181515f526001602052600160405f2001805491820391821161049d57557f18bdb6adb84039f917775d1fb8e7b7e7737ad5915d12eef0e4654b85e18d07b46001600160a01b03606083519301511692519351825f5260016020526001600160a01b03600260405f2001541694610ef66040519283923396846040919493926060820195825260208201520152565b0390a4565b610f32926001600160a01b036040519363a9059cbb60e01b60208601521660248401526044830152604482526103cb606483610b69565b565b906001600160a01b03610fb492165f8060405193610f53604086610b69565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af13d15610fed573d91610f9883610daf565b92610fa66040519485610b69565b83523d5f602085013e610ff1565b8051908115918215610fca575b50501561011657565b819250906020918101031261011657602001518015158103610116575f80610fc1565b6060915b9192501561100d57815115611004575090565b3b156101165790565b50805190811561011657602001fdfea2646970667358221220b941a3dddd027721d7e831952c77fa7dc2dfe159e3275fb9cdffa50e21c70fb864736f6c634300081e0033"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"abi":[{"type":"function","name":"handleV3AcrossMessage","inputs":[{"name":"tokenSent","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"relayer","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":"0x60808060405234601557610154908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c633a5be8cb14610025575f80fd5b346100c05760803660031901126100c05761003e6100d8565b506100476100fb565b5060643567ffffffffffffffff81116100c057366023820112156100c057806004013567ffffffffffffffff81116100c457601f8101601f19908116603f0116830167ffffffffffffffff8111848210176100c45760405280835236602482840101116100c0575f928160246020940184830137010152005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100c057565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036100c05756fea264697066735822122032b5cad3b224b740b9bbc0a4125dce4280d93cccf959dd369258d68703564b2164736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"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":"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}]}
|
|
1
|
+
{"abi":[{"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":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":"0x"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"batchSetMessengers","inputs":[{"name":"messengerTypes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dstDomainIds","type":"uint256[]","internalType":"uint256[]"},{"name":"srcChainTokens","type":"address[]","internalType":"address[]"},{"name":"srcChainMessengers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossChainMessengers","inputs":[{"name":"messengerType","type":"bytes32","internalType":"bytes32"},{"name":"dstDomainId","type":"uint256","internalType":"uint256"},{"name":"srcChainToken","type":"address","internalType":"address"}],"outputs":[{"name":"messengerAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMessenger","inputs":[{"name":"messengerType","type":"bytes32","internalType":"bytes32"},{"name":"dstDomainId","type":"uint256","internalType":"uint256"},{"name":"srcChainToken","type":"address","internalType":"address"},{"name":"srcChainMessenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"MessengerSet","inputs":[{"name":"messengerType","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstDomainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"srcChainToken","type":"address","indexed":true,"internalType":"address"},{"name":"srcChainMessenger","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ArrayLengthMismatch","inputs":[]},{"type":"error","name":"IOFTTokenMismatch","inputs":[]},{"type":"error","name":"NonExistentMessengerType","inputs":[]}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"batchSetMessengers","inputs":[{"name":"messengerTypes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dstDomainIds","type":"uint256[]","internalType":"uint256[]"},{"name":"srcChainTokens","type":"address[]","internalType":"address[]"},{"name":"srcChainMessengers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossChainMessengers","inputs":[{"name":"messengerType","type":"bytes32","internalType":"bytes32"},{"name":"dstDomainId","type":"uint256","internalType":"uint256"},{"name":"srcChainToken","type":"address","internalType":"address"}],"outputs":[{"name":"messengerAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMessenger","inputs":[{"name":"messengerType","type":"bytes32","internalType":"bytes32"},{"name":"dstDomainId","type":"uint256","internalType":"uint256"},{"name":"srcChainToken","type":"address","internalType":"address"},{"name":"srcChainMessenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"MessengerSet","inputs":[{"name":"messengerType","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstDomainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"srcChainToken","type":"address","indexed":true,"internalType":"address"},{"name":"srcChainMessenger","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ArrayLengthMismatch","inputs":[]},{"type":"error","name":"IOFTTokenMismatch","inputs":[]},{"type":"error","name":"NonExistentMessengerType","inputs":[]}],"bytecode":"0x608080604052346059575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361057f908161005e8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c908163715018a6146102d95781638da5cb5b146102b7575080638f7d9bec1461025d57806395d59d1214610127578063d08a2d8f146100e25763f2fde38b1461005e575f80fd5b346100de5760203660031901126100de576004356001600160a01b0381168091036100de5761008b6103bc565b80156100de576001600160a01b035f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b5f80fd5b346100de5760803660031901126100de576100fb61033d565b6064356001600160a01b03811681036100de576101259161011a6103bc565b6024356004356103cf565b005b346100de5760803660031901126100de5760043567ffffffffffffffff81116100de57610158903690600401610353565b60243567ffffffffffffffff81116100de57610178903690600401610353565b919060443567ffffffffffffffff81116100de5761019a903690600401610353565b939060643567ffffffffffffffff81116100de576101bc903690600401610353565b9690926101c76103bc565b808614801590610253575b8015610249575b61023a575f5b8181106101e857005b80610234878b8761022e610222868f8f826102279261021b8f9d8f60019f826102229761021492610384565b359c610384565b3597610384565b6103a8565b948d610384565b926103cf565b016101df565b63512509d360e11b5f5260045ffd5b50878614156101d9565b50868614156101d2565b346100de5760603660031901126100de5761027661033d565b6004355f52600160205260405f206024355f526020526001600160a01b0360405f2091165f5260205260206001600160a01b0360405f205416604051908152f35b346100de575f3660031901126100de576020906001600160a01b035f54168152f35b346100de575f3660031901126100de576102f16103bc565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b604435906001600160a01b03821682036100de57565b9181601f840112156100de5782359167ffffffffffffffff83116100de576020808501948460051b0101116100de57565b91908110156103945760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036100de5790565b6001600160a01b035f541633036100de57565b9091926001600160a01b03169283610455575b60206001600160a01b037f444623aa961faed91435ed1429e49548d6cf597edc4121dacef3734bebd5984f92845f526001835260405f20865f52835260405f208282165f52835260405f208773ffffffffffffffffffffffffffffffffffffffff198254161790556040519687521694a4565b7f4f46545f4d455353454e47455200000000000000000000000000000000000000820361053a57604051637e062a3560e11b8152602081600481885afa90811561052f575f916104c3575b506001600160a01b03808316911603156103e2576344aa08b960e11b5f5260045ffd5b905060203d602011610528575b601f8101601f1916820167ffffffffffffffff811183821017610514576020918391604052810103126100de57516001600160a01b03811681036100de575f6104a0565b634e487b7160e01b5f52604160045260245ffd5b503d6104d0565b6040513d5f823e3d90fd5b63338fd8c760e21b5f5260045ffdfea2646970667358221220100aaca4ac0a52a88bbb6df62e0914a6fac280b8c8fb564c4c8053d633f8c54164736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"OFT_MESSENGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"OFT_MESSENGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":"0x60808060405234601757608f9081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c635b9cae35146023575f80fd5b5f366003190112605557807f4f46545f4d455353454e4745520000000000000000000000000000000000000060209252f35b5f80fdfea2646970667358221220cae44eb2f71462c9632cb0b103e15afb22fa4194d448a51710ee0d0d516420fb64736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]}]}
|
|
1
|
+
{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]}],"bytecode":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220e70eead8f12bdb1d7a6b9edfc8f1a316533215e52a63835fc61b2b55dac3954964736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"error","name":"InvalidBytes32","inputs":[]}]}
|
|
1
|
+
{"abi":[{"type":"error","name":"InvalidBytes32","inputs":[]}],"bytecode":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212207bba8b97d6bb0e780f7208b8b19ca6851ac447e5f21f00087f5637a0491e51b664736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"addToWhitelist","inputs":[{"name":"newElement","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getWhitelist","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"isOnWhitelist","inputs":[{"name":"newElement","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeFromWhitelist","inputs":[{"name":"newElement","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}]}
|
|
1
|
+
{"abi":[{"type":"function","name":"addToWhitelist","inputs":[{"name":"newElement","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getWhitelist","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"isOnWhitelist","inputs":[{"name":"newElement","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeFromWhitelist","inputs":[{"name":"newElement","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":"0x"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"underlyingAdapter","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"UNDERLYING_ADAPTER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"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":"DelegateCallFailed","inputs":[]},{"type":"error","name":"RelayTokensNotSupported","inputs":[]},{"type":"error","name":"TargetSpokeMismatch","inputs":[]}]}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"underlyingAdapter","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"UNDERLYING_ADAPTER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"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":"DelegateCallFailed","inputs":[]},{"type":"error","name":"RelayTokensNotSupported","inputs":[]},{"type":"error","name":"TargetSpokeMismatch","inputs":[]}],"bytecode":"0x60a034606c57601f61036438819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c576080526040516102df90816100858239608051818181605901526101640152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806352c8c75c146101fb578063e6eb8ade146100815763ecf698631461003a575f80fd5b3461007d575f36600319011261007d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b604036600319011261007d57610095610231565b60243567ffffffffffffffff811161007d573660238201121561007d57806004013567ffffffffffffffff811161007d57810136602482011161007d576080908290031261007d576001600160a01b03916100f260248301610273565b906100ff60448401610273565b908461010d60848601610273565b1694859116036101ec575f93606485946001600160a01b03604051948160208701976314b231d760e21b89521660248701521660448501520135606483015260848201526084815261016060a482610287565b51907f00000000000000000000000000000000000000000000000000000000000000005af43d156101e7573d67ffffffffffffffff81116101d357604051906101b3601f8201601f191660200183610287565b81525f60203d92013e5b156101c457005b6318cecad560e01b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b6101bd565b63d9050a2760e01b5f5260045ffd5b608036600319011261007d5761020f610231565b50610218610247565b5061022161025d565b506309be06e560e31b5f5260045ffd5b600435906001600160a01b038216820361007d57565b602435906001600160a01b038216820361007d57565b606435906001600160a01b038216820361007d57565b35906001600160a01b038216820361007d57565b90601f8019910116810190811067ffffffffffffffff8211176101d35760405256fea2646970667358221220de7a10d046065c884b809345ee75bb76140b3980f1c6d025e4ac31cc174b11a464736f6c634300081e0033"}
|