From ae5fe351b73a297269f3b38d25093116e0a9305b Mon Sep 17 00:00:00 2001 From: Michael Kaplan Date: Wed, 24 Jul 2024 13:50:29 -0400 Subject: [PATCH 1/3] Set EVM version to shanghai, and Solidity to 0.8.25 --- CONTRIBUTING.md | 2 +- contracts/foundry.toml | 3 ++- contracts/src/.solhint.json | 10 ++++++++-- contracts/src/governance/ValidatorSetSig.sol | 2 +- .../src/governance/tests/ValidatorSetSigTests.t.sol | 2 +- contracts/src/mocks/ExampleERC20.sol | 2 +- contracts/src/mocks/UnitTestMockERC20.sol | 2 +- contracts/src/teleporter/ITeleporterMessenger.sol | 2 +- contracts/src/teleporter/ITeleporterReceiver.sol | 2 +- contracts/src/teleporter/ReceiptQueue.sol | 2 +- contracts/src/teleporter/TeleporterMessenger.sol | 2 +- .../teleporter/registry/TeleporterOwnerUpgradeable.sol | 2 +- .../src/teleporter/registry/TeleporterRegistry.sol | 2 +- .../src/teleporter/registry/TeleporterUpgradeable.sol | 2 +- .../registry/tests/GetTeleporterMessengerTests.t.sol | 2 +- .../teleporter/registry/tests/NonReentrantTests.t.sol | 2 +- .../registry/tests/PauseTeleporterAddressTests.t.sol | 2 +- .../registry/tests/SendTeleporterMessageTests.t.sol | 2 +- .../tests/TeleporterOwnerUpgradeableTests.t.sol | 2 +- .../registry/tests/TeleporterRegistryTests.t.sol | 4 ++-- .../registry/tests/TeleporterUpgradeableTests.t.sol | 2 +- .../registry/tests/UnpauseTeleporterAddressTests.t.sol | 2 +- .../tests/UpdateMinTeleporterVersionTests.t.sol | 2 +- contracts/src/teleporter/tests/AddFeeAmountTests.t.sol | 2 +- .../teleporter/tests/CheckAllowedRelayerTests.t.sol | 2 +- .../src/teleporter/tests/FallbackReceiveTests.t.sol | 2 +- contracts/src/teleporter/tests/GetFeeInfoTests.t.sol | 2 +- .../src/teleporter/tests/GetMessageHashTests.t.sol | 2 +- .../src/teleporter/tests/GetNextMessageIdTests.t.sol | 2 +- .../tests/GetOutstandingReceiptsToSendTests.t.sol | 2 +- .../tests/GetRelayerRewardAddressTests.t.sol | 2 +- .../tests/HandleInitialMessageExecutionTests.t.sol | 2 +- .../teleporter/tests/InitializeBlockchainIDTests.t.sol | 2 +- contracts/src/teleporter/tests/MarkReceiptTests.t.sol | 2 +- .../src/teleporter/tests/MessageReceivedTests.t.sol | 2 +- .../src/teleporter/tests/ReceiptsQueueTests.t.sol | 2 +- .../tests/ReceiveCrossChainMessageTests.t.sol | 2 +- .../teleporter/tests/RedeemRelayerRewardsTests.t.sol | 2 +- .../src/teleporter/tests/ReentrancyGuardsTests.t.sol | 2 +- .../teleporter/tests/RetryMessageExecutionTests.t.sol | 2 +- .../tests/RetrySendCrossChainMessageTests.t.sol | 2 +- .../teleporter/tests/SendCrossChainMessageTests.t.sol | 2 +- .../teleporter/tests/SendSpecifiedReceiptsTests.t.sol | 2 +- .../src/teleporter/tests/TeleporterMessengerTest.t.sol | 2 +- contracts/src/teleporter/tests/TestMessenger.sol | 2 +- contracts/src/utilities/ReentrancyGuards.sol | 2 +- contracts/src/utilities/SafeERC20TransferFrom.sol | 2 +- 47 files changed, 56 insertions(+), 49 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d95507999..194294ad1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ ## Setup -To start developing on Teleporter, you'll need Solidity >= v0.8.23. [Foundry](https://book.getfoundry.sh/getting-started/installation) is the recommended development toolkit for working with Teleporter, and it comes bundled with the required Solidity version. To run the tests and linter locally, you'll need the dependencies described in [Setup](./README.md#setup), as well as [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +To start developing on Teleporter, you'll need Solidity >= v0.8.25. [Foundry](https://book.getfoundry.sh/getting-started/installation) is the recommended development toolkit for working with Teleporter, and it comes bundled with the required Solidity version. To run the tests and linter locally, you'll need the dependencies described in [Setup](./README.md#setup), as well as [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ## Issues diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 35c90f85b..fde748e1e 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -2,7 +2,8 @@ src = 'src' out = 'out' libs = ['lib'] -solc_version = '0.8.23' +solc_version = '0.8.25' +evm_version = 'shanghai' test = 'tests' [fmt] diff --git a/contracts/src/.solhint.json b/contracts/src/.solhint.json index f5ca48e32..5b8e9c7fb 100644 --- a/contracts/src/.solhint.json +++ b/contracts/src/.solhint.json @@ -1,7 +1,10 @@ { "extends": "solhint:recommended", "rules": { - "compiler-version": ["error", "0.8.23"], + "compiler-version": [ + "error", + "0.8.25" + ], "no-unused-vars": "error", "func-visibility": [ "error", @@ -29,7 +32,10 @@ "immutablesAsConstants": false } ], - "func-named-parameters": ["error", 5], + "func-named-parameters": [ + "error", + 5 + ], "one-contract-per-file": "off" } } diff --git a/contracts/src/governance/ValidatorSetSig.sol b/contracts/src/governance/ValidatorSetSig.sol index 35477d45b..e9ff5e7f3 100644 --- a/contracts/src/governance/ValidatorSetSig.sol +++ b/contracts/src/governance/ValidatorSetSig.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { WarpMessage, diff --git a/contracts/src/governance/tests/ValidatorSetSigTests.t.sol b/contracts/src/governance/tests/ValidatorSetSigTests.t.sol index ac88c2b6c..2bf98407f 100644 --- a/contracts/src/governance/tests/ValidatorSetSigTests.t.sol +++ b/contracts/src/governance/tests/ValidatorSetSigTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Test} from "forge-std/Test.sol"; import { diff --git a/contracts/src/mocks/ExampleERC20.sol b/contracts/src/mocks/ExampleERC20.sol index a0745122e..db4d6cb92 100644 --- a/contracts/src/mocks/ExampleERC20.sol +++ b/contracts/src/mocks/ExampleERC20.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; /** * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. diff --git a/contracts/src/mocks/UnitTestMockERC20.sol b/contracts/src/mocks/UnitTestMockERC20.sol index 5b91f3f2a..6e795fc1b 100644 --- a/contracts/src/mocks/UnitTestMockERC20.sol +++ b/contracts/src/mocks/UnitTestMockERC20.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; /** * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. diff --git a/contracts/src/teleporter/ITeleporterMessenger.sol b/contracts/src/teleporter/ITeleporterMessenger.sol index 76ed0f111..29054ebc1 100644 --- a/contracts/src/teleporter/ITeleporterMessenger.sol +++ b/contracts/src/teleporter/ITeleporterMessenger.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; // A message receipt identifies the message that was delivered by its nonce, // and the address that can redeem the reward for that message. diff --git a/contracts/src/teleporter/ITeleporterReceiver.sol b/contracts/src/teleporter/ITeleporterReceiver.sol index ffc78f889..f2214eaa1 100644 --- a/contracts/src/teleporter/ITeleporterReceiver.sol +++ b/contracts/src/teleporter/ITeleporterReceiver.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; /** * @dev Interface that cross-chain applications must implement to receive messages from Teleporter. diff --git a/contracts/src/teleporter/ReceiptQueue.sol b/contracts/src/teleporter/ReceiptQueue.sol index 86c12e9af..6bfdda581 100644 --- a/contracts/src/teleporter/ReceiptQueue.sol +++ b/contracts/src/teleporter/ReceiptQueue.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Math} from "@openzeppelin/contracts@5.0.2/utils/math/Math.sol"; import {TeleporterMessageReceipt} from "./ITeleporterMessenger.sol"; diff --git a/contracts/src/teleporter/TeleporterMessenger.sol b/contracts/src/teleporter/TeleporterMessenger.sol index 26a46b571..025b6180e 100644 --- a/contracts/src/teleporter/TeleporterMessenger.sol +++ b/contracts/src/teleporter/TeleporterMessenger.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {IERC20} from "@openzeppelin/contracts@5.0.2/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts@5.0.2/token/ERC20/utils/SafeERC20.sol"; diff --git a/contracts/src/teleporter/registry/TeleporterOwnerUpgradeable.sol b/contracts/src/teleporter/registry/TeleporterOwnerUpgradeable.sol index e726813e1..7adbaface 100644 --- a/contracts/src/teleporter/registry/TeleporterOwnerUpgradeable.sol +++ b/contracts/src/teleporter/registry/TeleporterOwnerUpgradeable.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeable} from "./TeleporterUpgradeable.sol"; import {OwnableUpgradeable} from diff --git a/contracts/src/teleporter/registry/TeleporterRegistry.sol b/contracts/src/teleporter/registry/TeleporterRegistry.sol index 1475cfbe7..9eb83a8e9 100644 --- a/contracts/src/teleporter/registry/TeleporterRegistry.sol +++ b/contracts/src/teleporter/registry/TeleporterRegistry.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {ITeleporterMessenger} from "@teleporter/ITeleporterMessenger.sol"; import { diff --git a/contracts/src/teleporter/registry/TeleporterUpgradeable.sol b/contracts/src/teleporter/registry/TeleporterUpgradeable.sol index cb4093523..940435840 100644 --- a/contracts/src/teleporter/registry/TeleporterUpgradeable.sol +++ b/contracts/src/teleporter/registry/TeleporterUpgradeable.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterRegistry} from "./TeleporterRegistry.sol"; import {ITeleporterReceiver} from "@teleporter/ITeleporterReceiver.sol"; diff --git a/contracts/src/teleporter/registry/tests/GetTeleporterMessengerTests.t.sol b/contracts/src/teleporter/registry/tests/GetTeleporterMessengerTests.t.sol index 174993fdb..320aa551c 100644 --- a/contracts/src/teleporter/registry/tests/GetTeleporterMessengerTests.t.sol +++ b/contracts/src/teleporter/registry/tests/GetTeleporterMessengerTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeableTest} from "./TeleporterUpgradeableTests.t.sol"; import {ITeleporterMessenger} from "@teleporter/ITeleporterMessenger.sol"; diff --git a/contracts/src/teleporter/registry/tests/NonReentrantTests.t.sol b/contracts/src/teleporter/registry/tests/NonReentrantTests.t.sol index 261074875..de00ced94 100644 --- a/contracts/src/teleporter/registry/tests/NonReentrantTests.t.sol +++ b/contracts/src/teleporter/registry/tests/NonReentrantTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeable} from "../TeleporterUpgradeable.sol"; import {TeleporterUpgradeableTest} from "./TeleporterUpgradeableTests.t.sol"; diff --git a/contracts/src/teleporter/registry/tests/PauseTeleporterAddressTests.t.sol b/contracts/src/teleporter/registry/tests/PauseTeleporterAddressTests.t.sol index 8f2bbcc14..b168c86d9 100644 --- a/contracts/src/teleporter/registry/tests/PauseTeleporterAddressTests.t.sol +++ b/contracts/src/teleporter/registry/tests/PauseTeleporterAddressTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeableTest} from "./TeleporterUpgradeableTests.t.sol"; import {TeleporterMessenger} from "@teleporter/TeleporterMessenger.sol"; diff --git a/contracts/src/teleporter/registry/tests/SendTeleporterMessageTests.t.sol b/contracts/src/teleporter/registry/tests/SendTeleporterMessageTests.t.sol index afdebc3f4..7d211c219 100644 --- a/contracts/src/teleporter/registry/tests/SendTeleporterMessageTests.t.sol +++ b/contracts/src/teleporter/registry/tests/SendTeleporterMessageTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterUpgradeableTest, ExampleUpgradeableApp diff --git a/contracts/src/teleporter/registry/tests/TeleporterOwnerUpgradeableTests.t.sol b/contracts/src/teleporter/registry/tests/TeleporterOwnerUpgradeableTests.t.sol index 4a7eea2d8..c9649aba2 100644 --- a/contracts/src/teleporter/registry/tests/TeleporterOwnerUpgradeableTests.t.sol +++ b/contracts/src/teleporter/registry/tests/TeleporterOwnerUpgradeableTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterOwnerUpgradeable} from "../TeleporterOwnerUpgradeable.sol"; import {TeleporterUpgradeable} from "../TeleporterUpgradeable.sol"; diff --git a/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol b/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol index c2148415b..d43df4e71 100644 --- a/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol +++ b/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Test} from "forge-std/Test.sol"; import {TeleporterRegistry, ProtocolRegistryEntry} from "../TeleporterRegistry.sol"; @@ -319,7 +319,7 @@ contract TeleporterRegistryTest is Test { payload: abi.encode( ProtocolRegistryEntry({version: version, protocolAddress: protocolAddress}), registryAddress - ) + ) }); } diff --git a/contracts/src/teleporter/registry/tests/TeleporterUpgradeableTests.t.sol b/contracts/src/teleporter/registry/tests/TeleporterUpgradeableTests.t.sol index f7ceb265e..7170a7b43 100644 --- a/contracts/src/teleporter/registry/tests/TeleporterUpgradeableTests.t.sol +++ b/contracts/src/teleporter/registry/tests/TeleporterUpgradeableTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeable} from "../TeleporterUpgradeable.sol"; import {TeleporterRegistryTest} from "./TeleporterRegistryTests.t.sol"; diff --git a/contracts/src/teleporter/registry/tests/UnpauseTeleporterAddressTests.t.sol b/contracts/src/teleporter/registry/tests/UnpauseTeleporterAddressTests.t.sol index d9008e496..29db02a2e 100644 --- a/contracts/src/teleporter/registry/tests/UnpauseTeleporterAddressTests.t.sol +++ b/contracts/src/teleporter/registry/tests/UnpauseTeleporterAddressTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeableTest} from "./TeleporterUpgradeableTests.t.sol"; import {TeleporterMessenger} from "@teleporter/TeleporterMessenger.sol"; diff --git a/contracts/src/teleporter/registry/tests/UpdateMinTeleporterVersionTests.t.sol b/contracts/src/teleporter/registry/tests/UpdateMinTeleporterVersionTests.t.sol index c90e9d557..6b304253d 100644 --- a/contracts/src/teleporter/registry/tests/UpdateMinTeleporterVersionTests.t.sol +++ b/contracts/src/teleporter/registry/tests/UpdateMinTeleporterVersionTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterUpgradeableTest} from "./TeleporterUpgradeableTests.t.sol"; import {TeleporterMessenger, WarpMessage} from "@teleporter/TeleporterMessenger.sol"; diff --git a/contracts/src/teleporter/tests/AddFeeAmountTests.t.sol b/contracts/src/teleporter/tests/AddFeeAmountTests.t.sol index aa6623d3d..c449cb47b 100644 --- a/contracts/src/teleporter/tests/AddFeeAmountTests.t.sol +++ b/contracts/src/teleporter/tests/AddFeeAmountTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/CheckAllowedRelayerTests.t.sol b/contracts/src/teleporter/tests/CheckAllowedRelayerTests.t.sol index a9ff0386a..805843a8b 100644 --- a/contracts/src/teleporter/tests/CheckAllowedRelayerTests.t.sol +++ b/contracts/src/teleporter/tests/CheckAllowedRelayerTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterMessenger} from "../TeleporterMessenger.sol"; import {Test} from "forge-std/Test.sol"; diff --git a/contracts/src/teleporter/tests/FallbackReceiveTests.t.sol b/contracts/src/teleporter/tests/FallbackReceiveTests.t.sol index 23c47fb66..94ceb1c6c 100644 --- a/contracts/src/teleporter/tests/FallbackReceiveTests.t.sol +++ b/contracts/src/teleporter/tests/FallbackReceiveTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/GetFeeInfoTests.t.sol b/contracts/src/teleporter/tests/GetFeeInfoTests.t.sol index f0bdd8fff..e8aa4f9a9 100644 --- a/contracts/src/teleporter/tests/GetFeeInfoTests.t.sol +++ b/contracts/src/teleporter/tests/GetFeeInfoTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterMessengerTest, TeleporterMessageReceipt} from "./TeleporterMessengerTest.t.sol"; diff --git a/contracts/src/teleporter/tests/GetMessageHashTests.t.sol b/contracts/src/teleporter/tests/GetMessageHashTests.t.sol index 0c14036a7..b37b2bf12 100644 --- a/contracts/src/teleporter/tests/GetMessageHashTests.t.sol +++ b/contracts/src/teleporter/tests/GetMessageHashTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/GetNextMessageIdTests.t.sol b/contracts/src/teleporter/tests/GetNextMessageIdTests.t.sol index 6a00de21c..896d97c8d 100644 --- a/contracts/src/teleporter/tests/GetNextMessageIdTests.t.sol +++ b/contracts/src/teleporter/tests/GetNextMessageIdTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/GetOutstandingReceiptsToSendTests.t.sol b/contracts/src/teleporter/tests/GetOutstandingReceiptsToSendTests.t.sol index 96fda6a2c..c1c9664c5 100644 --- a/contracts/src/teleporter/tests/GetOutstandingReceiptsToSendTests.t.sol +++ b/contracts/src/teleporter/tests/GetOutstandingReceiptsToSendTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/GetRelayerRewardAddressTests.t.sol b/contracts/src/teleporter/tests/GetRelayerRewardAddressTests.t.sol index 8c5696b04..752b0737f 100644 --- a/contracts/src/teleporter/tests/GetRelayerRewardAddressTests.t.sol +++ b/contracts/src/teleporter/tests/GetRelayerRewardAddressTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterMessengerTest, TeleporterMessageReceipt} from "./TeleporterMessengerTest.t.sol"; diff --git a/contracts/src/teleporter/tests/HandleInitialMessageExecutionTests.t.sol b/contracts/src/teleporter/tests/HandleInitialMessageExecutionTests.t.sol index a67ffeb88..890950851 100644 --- a/contracts/src/teleporter/tests/HandleInitialMessageExecutionTests.t.sol +++ b/contracts/src/teleporter/tests/HandleInitialMessageExecutionTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/InitializeBlockchainIDTests.t.sol b/contracts/src/teleporter/tests/InitializeBlockchainIDTests.t.sol index a48ba6194..8e9d084e9 100644 --- a/contracts/src/teleporter/tests/InitializeBlockchainIDTests.t.sol +++ b/contracts/src/teleporter/tests/InitializeBlockchainIDTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Test} from "forge-std/Test.sol"; import { diff --git a/contracts/src/teleporter/tests/MarkReceiptTests.t.sol b/contracts/src/teleporter/tests/MarkReceiptTests.t.sol index 24696d140..aba701173 100644 --- a/contracts/src/teleporter/tests/MarkReceiptTests.t.sol +++ b/contracts/src/teleporter/tests/MarkReceiptTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/MessageReceivedTests.t.sol b/contracts/src/teleporter/tests/MessageReceivedTests.t.sol index 879aade99..cd33f58fa 100644 --- a/contracts/src/teleporter/tests/MessageReceivedTests.t.sol +++ b/contracts/src/teleporter/tests/MessageReceivedTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterMessengerTest, TeleporterMessageReceipt} from "./TeleporterMessengerTest.t.sol"; diff --git a/contracts/src/teleporter/tests/ReceiptsQueueTests.t.sol b/contracts/src/teleporter/tests/ReceiptsQueueTests.t.sol index 436064a01..3cbbe4221 100644 --- a/contracts/src/teleporter/tests/ReceiptsQueueTests.t.sol +++ b/contracts/src/teleporter/tests/ReceiptsQueueTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Test} from "forge-std/Test.sol"; import {ReceiptQueue} from "../ReceiptQueue.sol"; diff --git a/contracts/src/teleporter/tests/ReceiveCrossChainMessageTests.t.sol b/contracts/src/teleporter/tests/ReceiveCrossChainMessageTests.t.sol index 71987b21b..5b8084b16 100644 --- a/contracts/src/teleporter/tests/ReceiveCrossChainMessageTests.t.sol +++ b/contracts/src/teleporter/tests/ReceiveCrossChainMessageTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/RedeemRelayerRewardsTests.t.sol b/contracts/src/teleporter/tests/RedeemRelayerRewardsTests.t.sol index 6667227c4..d756be83e 100644 --- a/contracts/src/teleporter/tests/RedeemRelayerRewardsTests.t.sol +++ b/contracts/src/teleporter/tests/RedeemRelayerRewardsTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/ReentrancyGuardsTests.t.sol b/contracts/src/teleporter/tests/ReentrancyGuardsTests.t.sol index de0907f99..e5aee7ca6 100644 --- a/contracts/src/teleporter/tests/ReentrancyGuardsTests.t.sol +++ b/contracts/src/teleporter/tests/ReentrancyGuardsTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Test} from "forge-std/Test.sol"; import {ReentrancyGuards} from "@utilities/ReentrancyGuards.sol"; diff --git a/contracts/src/teleporter/tests/RetryMessageExecutionTests.t.sol b/contracts/src/teleporter/tests/RetryMessageExecutionTests.t.sol index 52113efb3..890640f75 100644 --- a/contracts/src/teleporter/tests/RetryMessageExecutionTests.t.sol +++ b/contracts/src/teleporter/tests/RetryMessageExecutionTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/RetrySendCrossChainMessageTests.t.sol b/contracts/src/teleporter/tests/RetrySendCrossChainMessageTests.t.sol index a2bdf16a9..9f80bb9db 100644 --- a/contracts/src/teleporter/tests/RetrySendCrossChainMessageTests.t.sol +++ b/contracts/src/teleporter/tests/RetrySendCrossChainMessageTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/SendCrossChainMessageTests.t.sol b/contracts/src/teleporter/tests/SendCrossChainMessageTests.t.sol index c2684a28d..3cd00a026 100644 --- a/contracts/src/teleporter/tests/SendCrossChainMessageTests.t.sol +++ b/contracts/src/teleporter/tests/SendCrossChainMessageTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/SendSpecifiedReceiptsTests.t.sol b/contracts/src/teleporter/tests/SendSpecifiedReceiptsTests.t.sol index ce8b382d5..dfdb41da3 100644 --- a/contracts/src/teleporter/tests/SendSpecifiedReceiptsTests.t.sol +++ b/contracts/src/teleporter/tests/SendSpecifiedReceiptsTests.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import { TeleporterMessengerTest, diff --git a/contracts/src/teleporter/tests/TeleporterMessengerTest.t.sol b/contracts/src/teleporter/tests/TeleporterMessengerTest.t.sol index 1dfd6aea6..e5b5e3831 100644 --- a/contracts/src/teleporter/tests/TeleporterMessengerTest.t.sol +++ b/contracts/src/teleporter/tests/TeleporterMessengerTest.t.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {Test} from "forge-std/Test.sol"; import { diff --git a/contracts/src/teleporter/tests/TestMessenger.sol b/contracts/src/teleporter/tests/TestMessenger.sol index b1adf5ee1..b762c6e92 100644 --- a/contracts/src/teleporter/tests/TestMessenger.sol +++ b/contracts/src/teleporter/tests/TestMessenger.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {TeleporterMessageInput, TeleporterFeeInfo} from "@teleporter/ITeleporterMessenger.sol"; import {SafeERC20TransferFrom, SafeERC20} from "@utilities/SafeERC20TransferFrom.sol"; diff --git a/contracts/src/utilities/ReentrancyGuards.sol b/contracts/src/utilities/ReentrancyGuards.sol index 3345d60e3..e1bb46b33 100644 --- a/contracts/src/utilities/ReentrancyGuards.sol +++ b/contracts/src/utilities/ReentrancyGuards.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; /** * @dev Abstract contract that helps implement reentrancy guards between functions for sending and receiving. diff --git a/contracts/src/utilities/SafeERC20TransferFrom.sol b/contracts/src/utilities/SafeERC20TransferFrom.sol index a422887ef..986606956 100644 --- a/contracts/src/utilities/SafeERC20TransferFrom.sol +++ b/contracts/src/utilities/SafeERC20TransferFrom.sol @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Ecosystem -pragma solidity 0.8.23; +pragma solidity 0.8.25; import {IERC20} from "@openzeppelin/contracts@5.0.2/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts@5.0.2/token/ERC20/utils/SafeERC20.sol"; From 17a0ea1e0656c7d6c744bbdae1fc5ed0cd0fd848 Mon Sep 17 00:00:00 2001 From: Michael Kaplan Date: Wed, 24 Jul 2024 13:58:47 -0400 Subject: [PATCH 2/3] Auto-formatter fix --- .../src/teleporter/registry/tests/TeleporterRegistryTests.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol b/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol index d43df4e71..a93cff447 100644 --- a/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol +++ b/contracts/src/teleporter/registry/tests/TeleporterRegistryTests.t.sol @@ -319,7 +319,7 @@ contract TeleporterRegistryTest is Test { payload: abi.encode( ProtocolRegistryEntry({version: version, protocolAddress: protocolAddress}), registryAddress - ) + ) }); } From 50e849b0c6af75c0594a42c5866a93eb7a378cfa Mon Sep 17 00:00:00 2001 From: Michael Kaplan Date: Wed, 24 Jul 2024 14:03:30 -0400 Subject: [PATCH 3/3] ABI Bindings --- abi-bindings/go/governance/ValidatorSetSig/ValidatorSetSig.go | 2 +- abi-bindings/go/mocks/ExampleERC20/ExampleERC20.go | 2 +- .../go/teleporter/TeleporterMessenger/TeleporterMessenger.go | 2 +- .../registry/TeleporterRegistry/TeleporterRegistry.go | 2 +- abi-bindings/go/teleporter/tests/TestMessenger/TestMessenger.go | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/abi-bindings/go/governance/ValidatorSetSig/ValidatorSetSig.go b/abi-bindings/go/governance/ValidatorSetSig/ValidatorSetSig.go index 637bb5d20..fb8be7b93 100644 --- a/abi-bindings/go/governance/ValidatorSetSig/ValidatorSetSig.go +++ b/abi-bindings/go/governance/ValidatorSetSig/ValidatorSetSig.go @@ -41,7 +41,7 @@ type ValidatorSetSigMessage struct { // ValidatorSetSigMetaData contains all meta data concerning the ValidatorSetSig contract. var ValidatorSetSigMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"validatorBlockchainID_\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"VALIDATORS_SOURCE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"executeCall\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"targetContractAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validateMessage\",\"inputs\":[{\"name\":\"message\",\"type\":\"tuple\",\"internalType\":\"structValidatorSetSigMessage\",\"components\":[{\"name\":\"targetBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorSetSigAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"targetContractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Delivered\",\"inputs\":[{\"name\":\"targetContractAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", - Bin: "0x60c060405234801561001057600080fd5b50604051610b4a380380610b4a83398101604081905261002f916100b6565b600160005560808190526040805163084279ef60e31b8152905173020000000000000000000000000000000000000591634213cf789160048083019260209291908290030181865afa158015610089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ad91906100b6565b60a052506100cf565b6000602082840312156100c857600080fd5b5051919050565b60805160a051610a4861010260003960008181610137015261047e015260008181610102015261023e0152610a486000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637ecebe001161005b5780637ecebe00146100cf5780638d6e579d146100fd578063b771b3bc14610124578063d127dc9b1461013257600080fd5b80630731775d146100825780635433da42146100a75780635f659d8d146100bc575b600080fd5b61008a600081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100ba6100b5366004610609565b610159565b005b6100ba6100ca36600461075c565b61047a565b6100ef6100dd366004610803565b60016020526000908152604090205481565b60405190815260200161009e565b6100ef7f000000000000000000000000000000000000000000000000000000000000000081565b61008a6005600160991b0181565b6100ef7f000000000000000000000000000000000000000000000000000000000000000081565b6101616105df565b6040516306f8253560e41b815263ffffffff8216600482015260009081906005600160991b0190636f82535090602401600060405180830381865afa1580156101ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101d69190810190610891565b915091508061023a5760405162461bcd60e51b815260206004820152602560248201527f56616c696461746f725365745369673a20696e76616c69642077617270206d65604482015264737361676560d81b60648201526084015b60405180910390fd5b81517f0000000000000000000000000000000000000000000000000000000000000000146102b95760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f725365745369673a20696e76616c696420736f75726365436044820152651a185a5b925160d21b6064820152608401610231565b60208201516001600160a01b03161561032a5760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f725365745369673a206e6f6e2d7a65726f206f726967696e60448201526c53656e6465724164647265737360981b6064820152608401610231565b600082604001518060200190518101906103449190610937565b905061034f8161047a565b606081015161035f9060016109cf565b604080830180516001600160a01b039081166000908152600160205283812094909455905160808501519251911691610397916109f6565b6000604051808303816000865af19150503d80600081146103d4576040519150601f19603f3d011682016040523d82523d6000602084013e6103d9565b606091505b505090508061042a5760405162461bcd60e51b815260206004820152601c60248201527f56616c696461746f725365745369673a2063616c6c206661696c6564000000006044820152606401610231565b816060015182604001516001600160a01b03167f5942a9a3968c7d49fc51c027041544ea295f5c1e395d6d8aa35c4369959f8ed960405160405180910390a3505050506104776001600055565b50565b80517f0000000000000000000000000000000000000000000000000000000000000000146104fe5760405162461bcd60e51b815260206004820152602b60248201527f56616c696461746f725365745369673a20696e76616c6964207461726765744260448201526a1b1bd8dad8da185a5b925160aa1b6064820152608401610231565b60208101516001600160a01b031630146105725760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f725365745369673a20696e76616c69642076616c6964617460448201526e6f725365745369674164647265737360881b6064820152608401610231565b60608101516040808301516001600160a01b0316600090815260016020522054146104775760405162461bcd60e51b815260206004820152601e60248201527f56616c696461746f725365745369673a20696e76616c6964206e6f6e636500006044820152606401610231565b60026000540361060257604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b60006020828403121561061b57600080fd5b813563ffffffff8116811461062f57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561066f5761066f610636565b60405290565b6040516060810167ffffffffffffffff8111828210171561066f5761066f610636565b604051601f8201601f1916810167ffffffffffffffff811182821017156106c1576106c1610636565b604052919050565b6001600160a01b038116811461047757600080fd5b600067ffffffffffffffff8211156106f8576106f8610636565b50601f01601f191660200190565b600082601f83011261071757600080fd5b813561072a610725826106de565b610698565b81815284602083860101111561073f57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561076e57600080fd5b813567ffffffffffffffff8082111561078657600080fd5b9083019060a0828603121561079a57600080fd5b6107a261064c565b8235815260208301356107b4816106c9565b602082015260408301356107c7816106c9565b6040820152606083810135908201526080830135828111156107e857600080fd5b6107f487828601610706565b60808301525095945050505050565b60006020828403121561081557600080fd5b813561062f816106c9565b60005b8381101561083b578181015183820152602001610823565b50506000910152565b600082601f83011261085557600080fd5b8151610863610725826106de565b81815284602083860101111561087857600080fd5b610889826020830160208701610820565b949350505050565b600080604083850312156108a457600080fd5b825167ffffffffffffffff808211156108bc57600080fd5b90840190606082870312156108d057600080fd5b6108d8610675565b8251815260208301516108ea816106c9565b602082015260408301518281111561090157600080fd5b61090d88828601610844565b6040830152508094505050506020830151801515811461092c57600080fd5b809150509250929050565b60006020828403121561094957600080fd5b815167ffffffffffffffff8082111561096157600080fd5b9083019060a0828603121561097557600080fd5b61097d61064c565b82518152602083015161098f816106c9565b602082015260408301516109a2816106c9565b6040820152606083810151908201526080830151828111156109c357600080fd5b6107f487828601610844565b808201808211156109f057634e487b7160e01b600052601160045260246000fd5b92915050565b60008251610a08818460208701610820565b919091019291505056fea26469706673582212208bf6410bd7cef3dd5dd844beb6cd65841466370b635764ecc189471fe3d8b62164736f6c63430008170033", + Bin: "0x60c060405234801561000f575f80fd5b50604051610b05380380610b0583398101604081905261002e916100b2565b60015f5560808190526040805163084279ef60e31b8152905173020000000000000000000000000000000000000591634213cf789160048083019260209291908290030181865afa158015610085573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a991906100b2565b60a052506100c9565b5f602082840312156100c2575f80fd5b5051919050565b60805160a051610a0e6100f75f395f8181610131015261046c01525f818160fc01526102330152610a0e5ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80637ecebe00116100585780637ecebe00146100ca5780638d6e579d146100f7578063b771b3bc1461011e578063d127dc9b1461012c575f80fd5b80630731775d1461007e5780635433da42146100a25780635f659d8d146100b7575b5f80fd5b6100855f81565b6040516001600160a01b0390911681526020015b60405180910390f35b6100b56100b03660046105f4565b610153565b005b6100b56100c536600461073c565b610468565b6100e96100d83660046107de565b60016020525f908152604090205481565b604051908152602001610099565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6100856005600160991b0181565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b61015b6105cc565b6040516306f8253560e41b815263ffffffff821660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156101a4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526101cb9190810190610865565b915091508061022f5760405162461bcd60e51b815260206004820152602560248201527f56616c696461746f725365745369673a20696e76616c69642077617270206d65604482015264737361676560d81b60648201526084015b60405180910390fd5b81517f0000000000000000000000000000000000000000000000000000000000000000146102ae5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f725365745369673a20696e76616c696420736f75726365436044820152651a185a5b925160d21b6064820152608401610226565b60208201516001600160a01b03161561031f5760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f725365745369673a206e6f6e2d7a65726f206f726967696e60448201526c53656e6465724164647265737360981b6064820152608401610226565b5f82604001518060200190518101906103389190610905565b905061034381610468565b6060810151610353906001610998565b604080830180516001600160a01b039081165f90815260016020528381209490945590516080850151925191169161038a916109bd565b5f604051808303815f865af19150503d805f81146103c3576040519150601f19603f3d011682016040523d82523d5f602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601c60248201527f56616c696461746f725365745369673a2063616c6c206661696c6564000000006044820152606401610226565b816060015182604001516001600160a01b03167f5942a9a3968c7d49fc51c027041544ea295f5c1e395d6d8aa35c4369959f8ed960405160405180910390a35050505061046560015f55565b50565b80517f0000000000000000000000000000000000000000000000000000000000000000146104ec5760405162461bcd60e51b815260206004820152602b60248201527f56616c696461746f725365745369673a20696e76616c6964207461726765744260448201526a1b1bd8dad8da185a5b925160aa1b6064820152608401610226565b60208101516001600160a01b031630146105605760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f725365745369673a20696e76616c69642076616c6964617460448201526e6f725365745369674164647265737360881b6064820152608401610226565b60608101516040808301516001600160a01b03165f90815260016020522054146104655760405162461bcd60e51b815260206004820152601e60248201527f56616c696461746f725365745369673a20696e76616c6964206e6f6e636500006044820152606401610226565b60025f54036105ee57604051633ee5aeb560e01b815260040160405180910390fd5b60025f55565b5f60208284031215610604575f80fd5b813563ffffffff81168114610617575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156106555761065561061e565b60405290565b6040516060810167ffffffffffffffff811182821017156106555761065561061e565b604051601f8201601f1916810167ffffffffffffffff811182821017156106a7576106a761061e565b604052919050565b6001600160a01b0381168114610465575f80fd5b5f67ffffffffffffffff8211156106dc576106dc61061e565b50601f01601f191660200190565b5f82601f8301126106f9575f80fd5b813561070c610707826106c3565b61067e565b818152846020838601011115610720575f80fd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561074c575f80fd5b813567ffffffffffffffff80821115610763575f80fd5b9083019060a08286031215610776575f80fd5b61077e610632565b823581526020830135610790816106af565b602082015260408301356107a3816106af565b6040820152606083810135908201526080830135828111156107c3575f80fd5b6107cf878286016106ea565b60808301525095945050505050565b5f602082840312156107ee575f80fd5b8135610617816106af565b5f5b838110156108135781810151838201526020016107fb565b50505f910152565b5f82601f83011261082a575f80fd5b8151610838610707826106c3565b81815284602083860101111561084c575f80fd5b61085d8260208301602087016107f9565b949350505050565b5f8060408385031215610876575f80fd5b825167ffffffffffffffff8082111561088d575f80fd5b90840190606082870312156108a0575f80fd5b6108a861065b565b8251815260208301516108ba816106af565b60208201526040830151828111156108d0575f80fd5b6108dc8882860161081b565b604083015250809450505050602083015180151581146108fa575f80fd5b809150509250929050565b5f60208284031215610915575f80fd5b815167ffffffffffffffff8082111561092c575f80fd5b9083019060a0828603121561093f575f80fd5b610947610632565b825181526020830151610959816106af565b6020820152604083015161096c816106af565b60408201526060838101519082015260808301518281111561098c575f80fd5b6107cf8782860161081b565b808201808211156109b757634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82516109ce8184602087016107f9565b919091019291505056fea26469706673582212207c2f37bfaac3d19c6939f706062920b1511cb3cdfc0f9c0f54cc943a5f8b005f64736f6c63430008190033", } // ValidatorSetSigABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/mocks/ExampleERC20/ExampleERC20.go b/abi-bindings/go/mocks/ExampleERC20/ExampleERC20.go index 7605a86ba..1db4eb719 100644 --- a/abi-bindings/go/mocks/ExampleERC20/ExampleERC20.go +++ b/abi-bindings/go/mocks/ExampleERC20/ExampleERC20.go @@ -32,7 +32,7 @@ var ( // ExampleERC20MetaData contains all meta data concerning the ExampleERC20 contract. var ExampleERC20MetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016926b7b1b5902a37b5b2b760b11b81525060405180604001604052806004815260200163045584d560e41b8152508160039081620000639190620002b5565b506004620000728282620002b5565b50505062000093336b204fce5e3e250261100000006200009960201b60201c565b620003a9565b6001600160a01b038216620000c95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000d760008383620000db565b5050565b6001600160a01b0383166200010a578060026000828254620000fe919062000381565b909155506200017e9050565b6001600160a01b038316600090815260208190526040902054818110156200015f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000c0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200019c57600280548290039055620001bb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020191815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200023957607f821691505b6020821081036200025a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b0576000816000526020600020601f850160051c810160208610156200028b5750805b601f850160051c820191505b81811015620002ac5782815560010162000297565b5050505b505050565b81516001600160401b03811115620002d157620002d16200020e565b620002e981620002e2845462000224565b8462000260565b602080601f831160018114620003215760008415620003085750858301515b600019600386901b1c1916600185901b178555620002ac565b600085815260208120601f198616915b82811015620003525788860151825594840194600190910190840162000331565b5085821015620003715787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620003a357634e487b7160e01b600052601160045260246000fd5b92915050565b61088980620003b96000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461014357806379cc67901461016c57806395d89b411461017f578063a0712d6814610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f57806342966c681461012e575b600080fd5b6100c16101e6565b6040516100ce91906106b9565b60405180910390f35b6100ea6100e5366004610724565b610278565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461074e565b610292565b604051601281526020016100ce565b61014161013c36600461078a565b6102b6565b005b6100fe6101513660046107a3565b6001600160a01b031660009081526020819052604090205490565b61014161017a366004610724565b6102c3565b6100c16102dc565b61014161019536600461078a565b6102eb565b6100ea6101a8366004610724565b610351565b6100fe6101bb3660046107c5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906107f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906107f8565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b60003361028681858561035f565b60019150505b92915050565b6000336102a0858285610371565b6102ab8585856103ef565b506001949350505050565b6102c0338261044e565b50565b6102ce823383610371565b6102d8828261044e565b5050565b6060600480546101f5906107f8565b662386f26fc100008111156103475760405162461bcd60e51b815260206004820152601f60248201527f4578616d706c6545524332303a206d6178206d696e742065786365656465640060448201526064015b60405180910390fd5b6102c03382610484565b6000336102868185856103ef565b61036c83838360016104ba565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146103e957818110156103da57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161033e565b6103e9848484840360006104ba565b50505050565b6001600160a01b03831661041957604051634b637e8f60e11b81526000600482015260240161033e565b6001600160a01b0382166104435760405163ec442f0560e01b81526000600482015260240161033e565b61036c83838361058f565b6001600160a01b03821661047857604051634b637e8f60e11b81526000600482015260240161033e565b6102d88260008361058f565b6001600160a01b0382166104ae5760405163ec442f0560e01b81526000600482015260240161033e565b6102d86000838361058f565b6001600160a01b0384166104e45760405163e602df0560e01b81526000600482015260240161033e565b6001600160a01b03831661050e57604051634a1406b160e11b81526000600482015260240161033e565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103e957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058191815260200190565b60405180910390a350505050565b6001600160a01b0383166105ba5780600260008282546105af9190610832565b9091555061062c9050565b6001600160a01b0383166000908152602081905260409020548181101561060d5760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161033e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661064857600280548290039055610667565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106ac91815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b818110156106e7578581018301518582016040015282016106cb565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461071f57600080fd5b919050565b6000806040838503121561073757600080fd5b61074083610708565b946020939093013593505050565b60008060006060848603121561076357600080fd5b61076c84610708565b925061077a60208501610708565b9150604084013590509250925092565b60006020828403121561079c57600080fd5b5035919050565b6000602082840312156107b557600080fd5b6107be82610708565b9392505050565b600080604083850312156107d857600080fd5b6107e183610708565b91506107ef60208401610708565b90509250929050565b600181811c9082168061080c57607f821691505b60208210810361082c57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220f0efb1b76cc5804981b1eff3e0d8653f046aee826f527925187d6e757c73bbf164736f6c63430008170033", + Bin: "0x608060405234801561000f575f80fd5b506040518060400160405280600a81526020016926b7b1b5902a37b5b2b760b11b81525060405180604001604052806004815260200163045584d560e41b815250816003908161005f919061028b565b50600461006c828261028b565b50505061008b336b204fce5e3e2502611000000061009060201b60201c565b61036f565b6001600160a01b0382166100be5760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6100c95f83836100cd565b5050565b6001600160a01b0383166100f7578060025f8282546100ec919061034a565b909155506101679050565b6001600160a01b0383165f90815260208190526040902054818110156101495760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100b5565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610183576002805482900390556101a1565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101e691815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061021b57607f821691505b60208210810361023957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561028657805f5260205f20601f840160051c810160208510156102645750805b601f840160051c820191505b81811015610283575f8155600101610270565b50505b505050565b81516001600160401b038111156102a4576102a46101f3565b6102b8816102b28454610207565b8461023f565b602080601f8311600181146102eb575f84156102d45750858301515b5f19600386901b1c1916600185901b178555610342565b5f85815260208120601f198616915b82811015610319578886015182559484019460019091019084016102fa565b508582101561033657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b8082018082111561036957634e487b7160e01b5f52601160045260245ffd5b92915050565b61085b8061037c5f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c806370a082311161006e57806370a082311461013f57806379cc67901461016757806395d89b411461017a578063a0712d6814610182578063a9059cbb14610195578063dd62ed3e146101a8575f80fd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd14610108578063313ce5671461011b57806342966c681461012a575b5f80fd5b6100bd6101e0565b6040516100ca919061069e565b60405180910390f35b6100e66100e1366004610705565b610270565b60405190151581526020016100ca565b6002545b6040519081526020016100ca565b6100e661011636600461072d565b610289565b604051601281526020016100ca565b61013d610138366004610766565b6102ac565b005b6100fa61014d36600461077d565b6001600160a01b03165f9081526020819052604090205490565b61013d610175366004610705565b6102b9565b6100bd6102d2565b61013d610190366004610766565b6102e1565b6100e66101a3366004610705565b610347565b6100fa6101b636600461079d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101ef906107ce565b80601f016020809104026020016040519081016040528092919081815260200182805461021b906107ce565b80156102665780601f1061023d57610100808354040283529160200191610266565b820191905f5260205f20905b81548152906001019060200180831161024957829003601f168201915b5050505050905090565b5f3361027d818585610354565b60019150505b92915050565b5f33610296858285610366565b6102a18585856103e1565b506001949350505050565b6102b6338261043e565b50565b6102c4823383610366565b6102ce828261043e565b5050565b6060600480546101ef906107ce565b662386f26fc1000081111561033d5760405162461bcd60e51b815260206004820152601f60248201527f4578616d706c6545524332303a206d6178206d696e742065786365656465640060448201526064015b60405180910390fd5b6102b63382610472565b5f3361027d8185856103e1565b61036183838360016104a6565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146103db57818110156103cd57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610334565b6103db84848484035f6104a6565b50505050565b6001600160a01b03831661040a57604051634b637e8f60e11b81525f6004820152602401610334565b6001600160a01b0382166104335760405163ec442f0560e01b81525f6004820152602401610334565b610361838383610578565b6001600160a01b03821661046757604051634b637e8f60e11b81525f6004820152602401610334565b6102ce825f83610578565b6001600160a01b03821661049b5760405163ec442f0560e01b81525f6004820152602401610334565b6102ce5f8383610578565b6001600160a01b0384166104cf5760405163e602df0560e01b81525f6004820152602401610334565b6001600160a01b0383166104f857604051634a1406b160e11b81525f6004820152602401610334565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103db57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161056a91815260200190565b60405180910390a350505050565b6001600160a01b0383166105a2578060025f8282546105979190610806565b909155506106129050565b6001600160a01b0383165f90815260208190526040902054818110156105f45760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610334565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661062e5760028054829003905561064c565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161069191815260200190565b60405180910390a3505050565b5f602080835283518060208501525f5b818110156106ca578581018301518582016040015282016106ae565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610700575f80fd5b919050565b5f8060408385031215610716575f80fd5b61071f836106ea565b946020939093013593505050565b5f805f6060848603121561073f575f80fd5b610748846106ea565b9250610756602085016106ea565b9150604084013590509250925092565b5f60208284031215610776575f80fd5b5035919050565b5f6020828403121561078d575f80fd5b610796826106ea565b9392505050565b5f80604083850312156107ae575f80fd5b6107b7836106ea565b91506107c5602084016106ea565b90509250929050565b600181811c908216806107e257607f821691505b60208210810361080057634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561028357634e487b7160e01b5f52601160045260245ffdfea2646970667358221220aed33836b6bba9071d1cd3311c057055991cba8c0d43c954888b77eb65b6830e64736f6c63430008190033", } // ExampleERC20ABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/teleporter/TeleporterMessenger/TeleporterMessenger.go b/abi-bindings/go/teleporter/TeleporterMessenger/TeleporterMessenger.go index fcf854bb1..d8d863dcc 100644 --- a/abi-bindings/go/teleporter/TeleporterMessenger/TeleporterMessenger.go +++ b/abi-bindings/go/teleporter/TeleporterMessenger/TeleporterMessenger.go @@ -66,7 +66,7 @@ type TeleporterMessageReceipt struct { // TeleporterMessengerMetaData contains all meta data concerning the TeleporterMessenger contract. var TeleporterMessengerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addFeeAmount\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"additionalFeeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateMessageID\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkRelayerRewardAmount\",\"inputs\":[{\"name\":\"relayer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeAsset\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getFeeInfo\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMessageHash\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNextMessageID\",\"inputs\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getReceiptAtIndex\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structTeleporterMessageReceipt\",\"components\":[{\"name\":\"receivedMessageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getReceiptQueueSize\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRelayerRewardAddress\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"messageNonce\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"messageReceived\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiptQueues\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"first\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"last\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveCrossChainMessage\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receivedFailedMessageHashes\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redeemRelayerRewards\",\"inputs\":[{\"name\":\"feeAsset\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"retryMessageExecution\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"message\",\"type\":\"tuple\",\"internalType\":\"structTeleporterMessage\",\"components\":[{\"name\":\"messageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"receipts\",\"type\":\"tuple[]\",\"internalType\":\"structTeleporterMessageReceipt[]\",\"components\":[{\"name\":\"receivedMessageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"retrySendCrossChainMessage\",\"inputs\":[{\"name\":\"message\",\"type\":\"tuple\",\"internalType\":\"structTeleporterMessage\",\"components\":[{\"name\":\"messageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"receipts\",\"type\":\"tuple[]\",\"internalType\":\"structTeleporterMessageReceipt[]\",\"components\":[{\"name\":\"receivedMessageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendCrossChainMessage\",\"inputs\":[{\"name\":\"messageInput\",\"type\":\"tuple\",\"internalType\":\"structTeleporterMessageInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeInfo\",\"type\":\"tuple\",\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendSpecifiedReceipts\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"messageIDs\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"feeInfo\",\"type\":\"tuple\",\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sentMessageInfo\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"feeInfo\",\"type\":\"tuple\",\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AddFeeAmount\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"updatedFeeInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BlockchainIDInitialized\",\"inputs\":[{\"name\":\"blockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MessageExecuted\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MessageExecutionFailed\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"message\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structTeleporterMessage\",\"components\":[{\"name\":\"messageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"receipts\",\"type\":\"tuple[]\",\"internalType\":\"structTeleporterMessageReceipt[]\",\"components\":[{\"name\":\"receivedMessageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceiptReceived\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"feeInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceiveCrossChainMessage\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"deliverer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"rewardRedeemer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structTeleporterMessage\",\"components\":[{\"name\":\"messageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"receipts\",\"type\":\"tuple[]\",\"internalType\":\"structTeleporterMessageReceipt[]\",\"components\":[{\"name\":\"receivedMessageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RelayerRewardsRedeemed\",\"inputs\":[{\"name\":\"redeemer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"asset\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SendCrossChainMessage\",\"inputs\":[{\"name\":\"messageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"message\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structTeleporterMessage\",\"components\":[{\"name\":\"messageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"allowedRelayerAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"receipts\",\"type\":\"tuple[]\",\"internalType\":\"structTeleporterMessageReceipt[]\",\"components\":[{\"name\":\"receivedMessageNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"relayerRewardAddress\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"feeInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x608060405234801561001057600080fd5b50600160008190558055613228806100296000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a8898181116100c3578063df20e8bc1161007c578063df20e8bc1461033b578063e69d606a1461034e578063e6e67bd5146103b6578063ebc3b1ba146103f2578063ecc7042814610415578063fc2d61971461041e57600080fd5b8063a8898181146102b2578063a9a85614146102c5578063b771b3bc146102d8578063c473eef8146102e6578063ccb5f8091461031f578063d127dc9b1461033257600080fd5b8063399b77da11610115578063399b77da1461021957806362448850146102395780638245a1b01461024c578063860a3b061461025f578063892bf4121461027f5780638ac0fd041461029f57600080fd5b80630af5b4ff1461015257806322296c3a1461016d5780632bc8b0bf146101825780632ca40f55146101955780632e27c223146101ee575b600080fd5b61015a610431565b6040519081526020015b60405180910390f35b61018061017b3660046121a4565b610503565b005b61015a6101903660046121c1565b6105f8565b6101e06101a33660046121c1565b6005602090815260009182526040918290208054835180850190945260018201546001600160a01b03168452600290910154918301919091529082565b6040516101649291906121da565b6102016101fc3660046121c1565b610615565b6040516001600160a01b039091168152602001610164565b61015a6102273660046121c1565b60009081526005602052604090205490565b61015a610247366004612201565b61069e565b61018061025a366004612254565b6106fc565b61015a61026d3660046121c1565b60066020526000908152604090205481565b61029261028d366004612288565b6108a7565b60405161016491906122aa565b6101806102ad3660046122ca565b6108da565b61015a6102c0366004612302565b610b19565b61015a6102d3366004612379565b610b5c565b6102016005600160991b0181565b61015a6102f4366004612411565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b61018061032d36600461244a565b610dfd565b61015a60025481565b61015a6103493660046121c1565b61122f565b61039761035c3660046121c1565b600090815260056020908152604091829020825180840190935260018101546001600160a01b03168084526002909101549290910182905291565b604080516001600160a01b039093168352602083019190915201610164565b6103dd6103c43660046121c1565b6004602052600090815260409020805460019091015482565b60408051928352602083019190915201610164565b6104056104003660046121c1565b611278565b6040519015158152602001610164565b61015a60035481565b61018061042c366004612471565b61128e565b600254600090806104fe576005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a591906124b7565b9050806104cd5760405162461bcd60e51b81526004016104c4906124d0565b60405180910390fd5b600281905560405181907f1eac640109dc937d2a9f42735a05f794b39a5e3759d681951d671aabbce4b10490600090a25b919050565b3360009081526009602090815260408083206001600160a01b0385168452909152902054806105855760405162461bcd60e51b815260206004820152602860248201527f54656c65706f727465724d657373656e6765723a206e6f2072657761726420746044820152676f2072656465656d60c01b60648201526084016104c4565b3360008181526009602090815260408083206001600160a01b03871680855290835281842093909355518481529192917f3294c84e5b0f29d9803655319087207bc94f4db29f7927846944822773780b88910160405180910390a36105f46001600160a01b03831633836114e9565b5050565b600081815260046020526040812061060f9061154d565b92915050565b6000818152600760205260408120546106825760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465724d657373656e6765723a206d657373616765206e6f74604482015268081c9958d95a5d995960ba1b60648201526084016104c4565b506000908152600860205260409020546001600160a01b031690565b60006001600054146106c25760405162461bcd60e51b81526004016104c490612517565b60026000556106f16106d38361275b565b833560009081526004602052604090206106ec90611560565b611661565b600160005592915050565b60016000541461071e5760405162461bcd60e51b81526004016104c490612517565b6002600081815590546107379060408401358435610b19565b6000818152600560209081526040918290208251808401845281548152835180850190945260018201546001600160a01b03168452600290910154838301529081019190915280519192509061079f5760405162461bcd60e51b81526004016104c4906127fe565b6000836040516020016107b29190612a8f565b60408051601f19818403018152919052825181516020830120919250146107eb5760405162461bcd60e51b81526004016104c490612aa2565b8360400135837f2a211ad4a59ab9d003852404f9c57c690704ee755f3c79d2c2812ad32da99df8868560200151604051610826929190612aeb565b60405180910390a360405163ee5b48eb60e01b81526005600160991b019063ee5b48eb90610858908490600401612b70565b6020604051808303816000875af1158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b91906124b7565b50506001600055505050565b604080518082019091526000808252602082015260008381526004602052604090206108d390836118a1565b9392505050565b6001600054146108fc5760405162461bcd60e51b81526004016104c490612517565b600260005560018054146109225760405162461bcd60e51b81526004016104c490612b83565b60026001558061098c5760405162461bcd60e51b815260206004820152602f60248201527f54656c65706f727465724d657373656e6765723a207a65726f2061646469746960448201526e1bdb985b0819995948185b5bdd5b9d608a1b60648201526084016104c4565b6001600160a01b0382166109b25760405162461bcd60e51b81526004016104c490612bc8565b6000838152600560205260409020546109dd5760405162461bcd60e51b81526004016104c4906127fe565b6000838152600560205260409020600101546001600160a01b03838116911614610a6f5760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465724d657373656e6765723a20696e76616c69642066656560448201527f20617373657420636f6e7472616374206164647265737300000000000000000060648201526084016104c4565b6000610a7b8383611966565b600085815260056020526040812060020180549293508392909190610aa1908490612c32565b909155505060008481526005602052604090819020905185917fc1bfd1f1208927dfbd414041dcb5256e6c9ad90dd61aec3249facbd34ff7b3e191610b03916001019081546001600160a01b0316815260019190910154602082015260400190565b60405180910390a2505060018080556000555050565b60408051306020820152908101849052606081018390526080810182905260009060a0016040516020818303038152906040528051906020012090509392505050565b6000600160005414610b805760405162461bcd60e51b81526004016104c490612517565b60026000818155905490866001600160401b03811115610ba257610ba261255a565b604051908082528060200260200182016040528015610be757816020015b6040805180820190915260008082526020820152815260200190600190039081610bc05790505b5090508660005b81811015610d665760008a8a83818110610c0a57610c0a612c45565b90506020020135905060006007600083815260200190815260200160002054905080600003610c8a5760405162461bcd60e51b815260206004820152602660248201527f54656c65706f727465724d657373656e6765723a2072656365697074206e6f7460448201526508199bdd5b9960d21b60648201526084016104c4565b610c958d8783610b19565b8214610d095760405162461bcd60e51b815260206004820152603a60248201527f54656c65706f727465724d657373656e6765723a206d6573736167652049442060448201527f6e6f742066726f6d20736f7572636520626c6f636b636861696e00000000000060648201526084016104c4565b6000828152600860209081526040918290205482518084019093528383526001600160a01b03169082018190528651909190879086908110610d4d57610d4d612c45565b6020026020010181905250505050806001019050610bee565b506040805160c0810182528b815260006020820152610dea918101610d90368b90038b018b612c5b565b81526020016000815260200188888080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509385525050604080519283526020808401909152909201525083611661565b60016000559a9950505050505050505050565b6001805414610e1e5760405162461bcd60e51b81526004016104c490612b83565b60026001556040516306f8253560e41b815263ffffffff8316600482015260009081906005600160991b0190636f82535090602401600060405180830381865afa158015610e70573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e989190810190612cd7565b9150915080610efb5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465724d657373656e6765723a20696e76616c69642077617260448201526870206d65737361676560b81b60648201526084016104c4565b60208201516001600160a01b03163014610f725760405162461bcd60e51b815260206004820152603260248201527f54656c65706f727465724d657373656e6765723a20696e76616c6964206f726960448201527167696e2073656e646572206164647265737360701b60648201526084016104c4565b60008260400151806020019051810190610f8c9190612e78565b90506000610f98610431565b9050808260400151146110075760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465724d657373656e6765723a20696e76616c6964206465736044820152701d1a5b985d1a5bdb8818da185a5b881251607a1b60648201526084016104c4565b83518251600091611019918490610b19565b6000818152600760205260409020549091501561108e5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465724d657373656e6765723a206d65737361676520616c7260448201526c1958591e481c9958d95a5d9959609a1b60648201526084016104c4565b61109c338460a00151611ace565b6110fa5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465724d657373656e6765723a20756e617574686f72697a6560448201526832103932b630bcb2b960b91b60648201526084016104c4565b611108818460000151611b3e565b6001600160a01b0386161561113f57600081815260086020526040902080546001600160a01b0319166001600160a01b0388161790555b60c08301515160005b818110156111845761117c8488600001518760c00151848151811061116f5761116f612c45565b6020026020010151611bb0565b600101611148565b50604080518082018252855181526001600160a01b038916602080830191909152885160009081526004909152919091206111be91611cd8565b336001600160a01b03168660000151837f292ee90bbaf70b5d4936025e09d56ba08f3e421156b6a568cf3c2840d9343e348a886040516111ff92919061308a565b60405180910390a460e084015151156112215761122182876000015186611d34565b505060018055505050505050565b600254600090806112525760405162461bcd60e51b81526004016104c4906124d0565b600060035460016112639190612c32565b9050611270828583610b19565b949350505050565b600081815260076020526040812054151561060f565b60018054146112af5760405162461bcd60e51b81526004016104c490612b83565b60026001819055546000906112c79084908435610b19565b600081815260066020526040902054909150806112f65760405162461bcd60e51b81526004016104c4906127fe565b80836040516020016113089190612a8f565b604051602081830303815290604052805190602001201461133b5760405162461bcd60e51b81526004016104c490612aa2565b600061134d60808501606086016121a4565b6001600160a01b03163b116113c15760405162461bcd60e51b815260206004820152603460248201527f54656c65706f727465724d657373656e6765723a2064657374696e6174696f6e604482015273206164647265737320686173206e6f20636f646560601b60648201526084016104c4565b604051849083907f34795cc6b122b9a0ae684946319f1e14a577b4e8f9b3dda9ac94c21a54d3188c90600090a3600082815260066020908152604080832083905586916114129187019087016121a4565b61141f60e08701876130ae565b60405160240161143294939291906130f4565b60408051601f198184030181529190526020810180516001600160e01b031663643477d560e11b1790529050600061147a61147360808701606088016121a4565b5a84611e67565b9050806114dd5760405162461bcd60e51b815260206004820152602b60248201527f54656c65706f727465724d657373656e6765723a20726574727920657865637560448201526a1d1a5bdb8819985a5b195960aa1b60648201526084016104c4565b50506001805550505050565b6040516001600160a01b0383811660248301526044820183905261154891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611e81565b505050565b8054600182015460009161060f9161311f565b6060600061157760056115728561154d565b611ee4565b9050806000036115c65760408051600080825260208201909252906115be565b60408051808201909152600080825260208201528152602001906001900390816115975790505b509392505050565b6000816001600160401b038111156115e0576115e061255a565b60405190808252806020026020018201604052801561162557816020015b60408051808201909152600080825260208201528152602001906001900390816115fe5790505b50905060005b828110156115be5761163c85611efa565b82828151811061164e5761164e612c45565b602090810291909101015260010161162b565b60008061166c610431565b9050600060036000815461167f90613132565b9190508190559050600061169883876000015184610b19565b90506000604051806101000160405280848152602001336001600160a01b031681526020018860000151815260200188602001516001600160a01b0316815260200188606001518152602001886080015181526020018781526020018860a001518152509050600081604051602001611711919061314b565b60405160208183030381529060405290506000808960400151602001511115611779576040890151516001600160a01b031661175f5760405162461bcd60e51b81526004016104c490612bc8565b604089015180516020909101516117769190611966565b90505b6040805180820182528a820151516001600160a01b039081168252602080830185905283518085018552865187830120815280820184815260008a815260058452869020915182555180516001830180546001600160a01b03191691909516179093559101516002909101558a51915190919086907f2a211ad4a59ab9d003852404f9c57c690704ee755f3c79d2c2812ad32da99df89061181d908890869061315e565b60405180910390a360405163ee5b48eb60e01b81526005600160991b019063ee5b48eb9061184f908690600401612b70565b6020604051808303816000875af115801561186e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189291906124b7565b50939998505050505050505050565b60408051808201909152600080825260208201526118be8361154d565b82106119165760405162461bcd60e51b815260206004820152602160248201527f5265636569707451756575653a20696e646578206f7574206f6620626f756e646044820152607360f81b60648201526084016104c4565b82600201600083856000015461192c9190612c32565b81526020808201929092526040908101600020815180830190925280548252600101546001600160a01b0316918101919091529392505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa1580156119af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d391906124b7565b90506119ea6001600160a01b038516333086611fc6565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015611a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5591906124b7565b9050818111611abb5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b60648201526084016104c4565b611ac5828261311f565b95945050505050565b60008151600003611ae15750600161060f565b815160005b81811015611b3357846001600160a01b0316848281518110611b0a57611b0a612c45565b60200260200101516001600160a01b031603611b2b5760019250505061060f565b600101611ae6565b506000949350505050565b80600003611b9e5760405162461bcd60e51b815260206004820152602760248201527f54656c65706f727465724d657373656e6765723a207a65726f206d657373616760448201526665206e6f6e636560c81b60648201526084016104c4565b60009182526007602052604090912055565b6000611bc184848460000151610b19565b6000818152600560209081526040918290208251808401845281548152835180850190945260018201546001600160a01b031684526002909101548383015290810191909152805191925090611c18575050505050565b60008281526005602090815260408083208381556001810180546001600160a01b03191690556002018390558382018051830151878401516001600160a01b0390811686526009855283862092515116855292528220805491929091611c7f908490612c32565b9250508190555082602001516001600160a01b031684837fd13a7935f29af029349bed0a2097455b91fd06190a30478c575db3f31e00bf578460200151604051611cc99190613171565b60405180910390a45050505050565b6001820180548291600285019160009182611cf283613132565b90915550815260208082019290925260400160002082518155910151600190910180546001600160a01b0319166001600160a01b039092169190911790555050565b80608001515a1015611d965760405162461bcd60e51b815260206004820152602560248201527f54656c65706f727465724d657373656e6765723a20696e73756666696369656e604482015264742067617360d81b60648201526084016104c4565b80606001516001600160a01b03163b600003611db757611548838383612005565b602081015160e0820151604051600092611dd5928692602401613191565b60408051601f198184030181529190526020810180516001600160e01b031663643477d560e11b17905260608301516080840151919250600091611e1a919084611e67565b905080611e3357611e2c858585612005565b5050505050565b604051849086907f34795cc6b122b9a0ae684946319f1e14a577b4e8f9b3dda9ac94c21a54d3188c90600090a35050505050565b60008060008084516020860160008989f195945050505050565b6000611e966001600160a01b0384168361207a565b90508051600014158015611ebb575080806020019051810190611eb991906131bb565b155b1561154857604051635274afe760e01b81526001600160a01b03841660048201526024016104c4565b6000818310611ef357816108d3565b5090919050565b604080518082019091526000808252602082015281546001830154819003611f645760405162461bcd60e51b815260206004820152601960248201527f5265636569707451756575653a20656d7074792071756575650000000000000060448201526064016104c4565b60008181526002840160208181526040808420815180830190925280548252600180820180546001600160a01b03811685870152888852959094529490556001600160a01b0319909216905590611fbc908390612c32565b9093555090919050565b6040516001600160a01b038481166024830152838116604483015260648201839052611fff9186918216906323b872dd90608401611516565b50505050565b80604051602001612016919061314b565b60408051601f1981840301815282825280516020918201206000878152600690925291902055829084907f4619adc1017b82e02eaefac01a43d50d6d8de4460774bc370c3ff0210d40c9859061206d90859061314b565b60405180910390a3505050565b60606108d38383600084600080856001600160a01b031684866040516120a091906131d6565b60006040518083038185875af1925050503d80600081146120dd576040519150601f19603f3d011682016040523d82523d6000602084013e6120e2565b606091505b50915091506120f28683836120fc565b9695505050505050565b6060826121115761210c82612158565b6108d3565b815115801561212857506001600160a01b0384163b155b1561215157604051639996b31560e01b81526001600160a01b03851660048201526024016104c4565b50806108d3565b8051156121685780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b038116811461218157600080fd5b80356104fe81612184565b6000602082840312156121b657600080fd5b81356108d381612184565b6000602082840312156121d357600080fd5b5035919050565b828152606081016108d3602083018480516001600160a01b03168252602090810151910152565b60006020828403121561221357600080fd5b81356001600160401b0381111561222957600080fd5b820160e081850312156108d357600080fd5b6000610100828403121561224e57600080fd5b50919050565b60006020828403121561226657600080fd5b81356001600160401b0381111561227c57600080fd5b6112708482850161223b565b6000806040838503121561229b57600080fd5b50508035926020909101359150565b815181526020808301516001600160a01b0316908201526040810161060f565b6000806000606084860312156122df57600080fd5b8335925060208401356122f181612184565b929592945050506040919091013590565b60008060006060848603121561231757600080fd5b505081359360208301359350604090920135919050565b60008083601f84011261234057600080fd5b5081356001600160401b0381111561235757600080fd5b6020830191508360208260051b850101111561237257600080fd5b9250929050565b60008060008060008086880360a081121561239357600080fd5b8735965060208801356001600160401b03808211156123b157600080fd5b6123bd8b838c0161232e565b90985096508691506040603f19840112156123d757600080fd5b60408a01955060808a01359250808311156123f157600080fd5b50506123ff89828a0161232e565b979a9699509497509295939492505050565b6000806040838503121561242457600080fd5b823561242f81612184565b9150602083013561243f81612184565b809150509250929050565b6000806040838503121561245d57600080fd5b823563ffffffff8116811461242f57600080fd5b6000806040838503121561248457600080fd5b8235915060208301356001600160401b038111156124a157600080fd5b6124ad8582860161223b565b9150509250929050565b6000602082840312156124c957600080fd5b5051919050565b60208082526027908201527f54656c65706f727465724d657373656e6765723a207a65726f20626c6f636b636040820152661a185a5b88125160ca1b606082015260800190565b60208082526023908201527f5265656e7472616e63794775617264733a2073656e646572207265656e7472616040820152626e637960e81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156125925761259261255a565b60405290565b60405160c081016001600160401b03811182821017156125925761259261255a565b60405161010081016001600160401b03811182821017156125925761259261255a565b604051601f8201601f191681016001600160401b03811182821017156126055761260561255a565b604052919050565b60006040828403121561261f57600080fd5b612627612570565b9050813561263481612184565b808252506020820135602082015292915050565b60006001600160401b038211156126615761266161255a565b5060051b60200190565b600082601f83011261267c57600080fd5b8135602061269161268c83612648565b6125dd565b8083825260208201915060208460051b8701019350868411156126b357600080fd5b602086015b848110156126d85780356126cb81612184565b83529183019183016126b8565b509695505050505050565b60006001600160401b038211156126fc576126fc61255a565b50601f01601f191660200190565b600082601f83011261271b57600080fd5b813561272961268c826126e3565b81815284602083860101111561273e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0823603121561276d57600080fd5b612775612598565b8235815261278560208401612199565b6020820152612797366040850161260d565b60408201526080830135606082015260a08301356001600160401b03808211156127c057600080fd5b6127cc3683870161266b565b608084015260c08501359150808211156127e557600080fd5b506127f23682860161270a565b60a08301525092915050565b60208082526026908201527f54656c65706f727465724d657373656e6765723a206d657373616765206e6f7460408201526508199bdd5b9960d21b606082015260800190565b6000808335601e1984360301811261285b57600080fd5b83016020810192503590506001600160401b0381111561287a57600080fd5b8060051b360382131561237257600080fd5b8183526000602080850194508260005b858110156128ca5781356128af81612184565b6001600160a01b03168752958201959082019060010161289c565b509495945050505050565b6000808335601e198436030181126128ec57600080fd5b83016020810192503590506001600160401b0381111561290b57600080fd5b8060061b360382131561237257600080fd5b8183526000602080850194508260005b858110156128ca57813587528282013561294681612184565b6001600160a01b031687840152604096870196919091019060010161292d565b6000808335601e1984360301811261297d57600080fd5b83016020810192503590506001600160401b0381111561299c57600080fd5b80360382131561237257600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101008235845260208301356129eb81612184565b6001600160a01b0316602085015260408381013590850152612a0f60608401612199565b6001600160a01b0316606085015260808381013590850152612a3460a0840184612844565b8260a0870152612a47838701828461288c565b92505050612a5860c08401846128d5565b85830360c0870152612a6b83828461291d565b92505050612a7c60e0840184612966565b85830360e08701526120f28382846129ab565b6020815260006108d360208301846129d4565b60208082526029908201527f54656c65706f727465724d657373656e6765723a20696e76616c6964206d65736040820152680e6c2ceca40d0c2e6d60bb1b606082015260800190565b606081526000612afe60608301856129d4565b90506108d3602083018480516001600160a01b03168252602090810151910152565b60005b83811015612b3b578181015183820152602001612b23565b50506000910152565b60008151808452612b5c816020860160208601612b20565b601f01601f19169290920160200192915050565b6020815260006108d36020830184612b44565b60208082526025908201527f5265656e7472616e63794775617264733a207265636569766572207265656e7460408201526472616e637960d81b606082015260800190565b60208082526034908201527f54656c65706f727465724d657373656e6765723a207a65726f2066656520617360408201527373657420636f6e7472616374206164647265737360601b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060f5761060f612c1c565b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c6d57600080fd5b6108d3838361260d565b80516104fe81612184565b600082601f830112612c9357600080fd5b8151612ca161268c826126e3565b818152846020838601011115612cb657600080fd5b611270826020830160208701612b20565b805180151581146104fe57600080fd5b60008060408385031215612cea57600080fd5b82516001600160401b0380821115612d0157600080fd5b9084019060608287031215612d1557600080fd5b604051606081018181108382111715612d3057612d3061255a565b604052825181526020830151612d4581612184565b6020820152604083015182811115612d5c57600080fd5b612d6888828601612c82565b6040830152509350612d7f91505060208401612cc7565b90509250929050565b600082601f830112612d9957600080fd5b81516020612da961268c83612648565b8083825260208201915060208460051b870101935086841115612dcb57600080fd5b602086015b848110156126d8578051612de381612184565b8352918301918301612dd0565b600082601f830112612e0157600080fd5b81516020612e1161268c83612648565b82815260069290921b84018101918181019086841115612e3057600080fd5b8286015b848110156126d85760408189031215612e4d5760008081fd5b612e55612570565b8151815284820151612e6681612184565b81860152835291830191604001612e34565b600060208284031215612e8a57600080fd5b81516001600160401b0380821115612ea157600080fd5b908301906101008286031215612eb657600080fd5b612ebe6125ba565b82518152612ece60208401612c77565b602082015260408301516040820152612ee960608401612c77565b60608201526080830151608082015260a083015182811115612f0a57600080fd5b612f1687828601612d88565b60a08301525060c083015182811115612f2e57600080fd5b612f3a87828601612df0565b60c08301525060e083015182811115612f5257600080fd5b612f5e87828601612c82565b60e08301525095945050505050565b60008151808452602080850194506020840160005b838110156128ca5781516001600160a01b031687529582019590820190600101612f82565b60008151808452602080850194506020840160005b838110156128ca57612fe2878351805182526020908101516001600160a01b0316910152565b6040969096019590820190600101612fbc565b60006101008251845260018060a01b03602084015116602085015260408301516040850152606083015161303460608601826001600160a01b03169052565b506080830151608085015260a08301518160a086015261305682860182612f6d565b91505060c083015184820360c08601526130708282612fa7565b91505060e083015184820360e0860152611ac58282612b44565b6001600160a01b038316815260406020820181905260009061127090830184612ff5565b6000808335601e198436030181126130c557600080fd5b8301803591506001600160401b038211156130df57600080fd5b60200191503681900382131561237257600080fd5b8481526001600160a01b03841660208201526060604082018190526000906120f290830184866129ab565b8181038181111561060f5761060f612c1c565b60006001820161314457613144612c1c565b5060010190565b6020815260006108d36020830184612ff5565b606081526000612afe6060830185612ff5565b81516001600160a01b03168152602080830151908201526040810161060f565b8381526001600160a01b0383166020820152606060408201819052600090611ac590830184612b44565b6000602082840312156131cd57600080fd5b6108d382612cc7565b600082516131e8818460208701612b20565b919091019291505056fea2646970667358221220ffd10c6ce7df67bc0ab1bac8f081d9b8d26917eb0f91f9d9430b59cb7d6eb90164736f6c63430008170033", + Bin: "0x6080604052348015600e575f80fd5b5060015f8190558055613112806100245f395ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a8898181116100bf578063df20e8bc11610079578063df20e8bc14610331578063e69d606a14610344578063e6e67bd5146103ab578063ebc3b1ba146103e6578063ecc7042814610409578063fc2d619714610412575f80fd5b8063a8898181146102a9578063a9a85614146102bc578063b771b3bc146102cf578063c473eef8146102dd578063ccb5f80914610315578063d127dc9b14610328575f80fd5b8063399b77da11610110578063399b77da1461021257806362448850146102315780638245a1b014610244578063860a3b0614610257578063892bf412146102765780638ac0fd0414610296575f80fd5b80630af5b4ff1461014c57806322296c3a146101675780632bc8b0bf1461017c5780632ca40f551461018f5780632e27c223146101e7575b5f80fd5b610154610425565b6040519081526020015b60405180910390f35b61017a610175366004612111565b6104f3565b005b61015461018a36600461212c565b6105e6565b6101d961019d36600461212c565b600560209081525f9182526040918290208054835180850190945260018201546001600160a01b03168452600290910154918301919091529082565b60405161015e929190612143565b6101fa6101f536600461212c565b610602565b6040516001600160a01b03909116815260200161015e565b61015461022036600461212c565b5f9081526005602052604090205490565b61015461023f36600461216a565b610689565b61017a6102523660046121b7565b6106e2565b61015461026536600461212c565b60066020525f908152604090205481565b6102896102843660046121e8565b610885565b60405161015e9190612208565b61017a6102a4366004612228565b6108b6565b6101546102b736600461225d565b610aed565b6101546102ca3660046122cd565b610b2f565b6101fa6005600160991b0181565b6101546102eb36600461235e565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b61017a610323366004612395565b610dc1565b61015460025481565b61015461033f36600461212c565b6111e3565b61038c61035236600461212c565b5f90815260056020908152604091829020825180840190935260018101546001600160a01b03168084526002909101549290910182905291565b604080516001600160a01b03909316835260208301919091520161015e565b6103d16103b936600461212c565b60046020525f90815260409020805460019091015482565b6040805192835260208301919091520161015e565b6103f96103f436600461212c565b61122a565b604051901515815260200161015e565b61015460035481565b61017a6104203660046123b9565b61123f565b6002545f90806104ee576005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610472573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049691906123fc565b9050806104be5760405162461bcd60e51b81526004016104b590612413565b60405180910390fd5b600281905560405181907f1eac640109dc937d2a9f42735a05f794b39a5e3759d681951d671aabbce4b104905f90a25b919050565b335f9081526009602090815260408083206001600160a01b0385168452909152902054806105745760405162461bcd60e51b815260206004820152602860248201527f54656c65706f727465724d657373656e6765723a206e6f2072657761726420746044820152676f2072656465656d60c01b60648201526084016104b5565b335f8181526009602090815260408083206001600160a01b03871680855290835281842093909355518481529192917f3294c84e5b0f29d9803655319087207bc94f4db29f7927846944822773780b88910160405180910390a36105e26001600160a01b0383163383611494565b5050565b5f8181526004602052604081206105fc906114f8565b92915050565b5f8181526007602052604081205461066e5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465724d657373656e6765723a206d657373616765206e6f74604482015268081c9958d95a5d995960ba1b60648201526084016104b5565b505f908152600860205260409020546001600160a01b031690565b5f60015f54146106ab5760405162461bcd60e51b81526004016104b59061245a565b60025f556106d86106bb83612691565b83355f9081526004602052604090206106d39061150a565b611604565b60015f5592915050565b60015f54146107035760405162461bcd60e51b81526004016104b59061245a565b60025f818155905461071b9060408401358435610aed565b5f818152600560209081526040918290208251808401845281548152835180850190945260018201546001600160a01b0316845260029091015483830152908101919091528051919250906107825760405162461bcd60e51b81526004016104b590612730565b5f8360405160200161079491906129af565b60408051601f19818403018152919052825181516020830120919250146107cd5760405162461bcd60e51b81526004016104b5906129c1565b8360400135837f2a211ad4a59ab9d003852404f9c57c690704ee755f3c79d2c2812ad32da99df8868560200151604051610808929190612a0a565b60405180910390a360405163ee5b48eb60e01b81526005600160991b019063ee5b48eb9061083a908490600401612a8b565b6020604051808303815f875af1158015610856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087a91906123fc565b505060015f55505050565b604080518082019091525f80825260208201525f8381526004602052604090206108af9083611837565b9392505050565b60015f54146108d75760405162461bcd60e51b81526004016104b59061245a565b60025f5560018054146108fc5760405162461bcd60e51b81526004016104b590612a9d565b6002600155806109665760405162461bcd60e51b815260206004820152602f60248201527f54656c65706f727465724d657373656e6765723a207a65726f2061646469746960448201526e1bdb985b0819995948185b5bdd5b9d608a1b60648201526084016104b5565b6001600160a01b03821661098c5760405162461bcd60e51b81526004016104b590612ae2565b5f838152600560205260409020546109b65760405162461bcd60e51b81526004016104b590612730565b5f838152600560205260409020600101546001600160a01b03838116911614610a475760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465724d657373656e6765723a20696e76616c69642066656560448201527f20617373657420636f6e7472616374206164647265737300000000000000000060648201526084016104b5565b5f610a5283836118f8565b5f85815260056020526040812060020180549293508392909190610a77908490612b4a565b90915550505f8481526005602052604090819020905185917fc1bfd1f1208927dfbd414041dcb5256e6c9ad90dd61aec3249facbd34ff7b3e191610ad8916001019081546001600160a01b0316815260019190910154602082015260400190565b60405180910390a2505060018080555f555050565b6040805130602082015290810184905260608101839052608081018290525f9060a0016040516020818303038152906040528051906020012090509392505050565b5f60015f5414610b515760405162461bcd60e51b81526004016104b59061245a565b60025f818155905490866001600160401b03811115610b7257610b7261249d565b604051908082528060200260200182016040528015610bb657816020015b604080518082019091525f8082526020820152815260200190600190039081610b905790505b509050865f5b81811015610d2e575f8a8a83818110610bd757610bd7612b5d565b9050602002013590505f60075f8381526020019081526020015f20549050805f03610c535760405162461bcd60e51b815260206004820152602660248201527f54656c65706f727465724d657373656e6765723a2072656365697074206e6f7460448201526508199bdd5b9960d21b60648201526084016104b5565b610c5e8d8783610aed565b8214610cd25760405162461bcd60e51b815260206004820152603a60248201527f54656c65706f727465724d657373656e6765723a206d6573736167652049442060448201527f6e6f742066726f6d20736f7572636520626c6f636b636861696e00000000000060648201526084016104b5565b5f828152600860209081526040918290205482518084019093528383526001600160a01b03169082018190528651909190879086908110610d1557610d15612b5d565b6020026020010181905250505050806001019050610bbc565b506040805160c0810182528b81525f6020820152610daf918101610d57368b90038b018b612b71565b81526020015f81526020018888808060200260200160405190810160405280939291908181526020018383602002808284375f9201829052509385525050604080519283526020808401909152909201525083611604565b60015f559a9950505050505050505050565b6001805414610de25760405162461bcd60e51b81526004016104b590612a9d565b60026001556040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa158015610e30573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e579190810190612be7565b9150915080610eba5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465724d657373656e6765723a20696e76616c69642077617260448201526870206d65737361676560b81b60648201526084016104b5565b60208201516001600160a01b03163014610f315760405162461bcd60e51b815260206004820152603260248201527f54656c65706f727465724d657373656e6765723a20696e76616c6964206f726960448201527167696e2073656e646572206164647265737360701b60648201526084016104b5565b5f8260400151806020019051810190610f4a9190612d7b565b90505f610f55610425565b905080826040015114610fc45760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465724d657373656e6765723a20696e76616c6964206465736044820152701d1a5b985d1a5bdb8818da185a5b881251607a1b60648201526084016104b5565b835182515f91610fd5918490610aed565b5f81815260076020526040902054909150156110495760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465724d657373656e6765723a206d65737361676520616c7260448201526c1958591e481c9958d95a5d9959609a1b60648201526084016104b5565b611057338460a00151611a5a565b6110b55760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465724d657373656e6765723a20756e617574686f72697a6560448201526832103932b630bcb2b960b91b60648201526084016104b5565b6110c281845f0151611ac6565b6001600160a01b038616156110f8575f81815260086020526040902080546001600160a01b0319166001600160a01b0388161790555b60c0830151515f5b8181101561113b5761113384885f01518760c00151848151811061112657611126612b5d565b6020026020010151611b36565b600101611100565b50604080518082018252855181526001600160a01b03891660208083019190915288515f90815260049091529190912061117491611c5a565b336001600160a01b0316865f0151837f292ee90bbaf70b5d4936025e09d56ba08f3e421156b6a568cf3c2840d9343e348a886040516111b4929190612f81565b60405180910390a460e084015151156111d5576111d582875f015186611cb4565b505060018055505050505050565b6002545f90806112055760405162461bcd60e51b81526004016104b590612413565b5f60035460016112159190612b4a565b9050611222828583610aed565b949350505050565b5f8181526007602052604081205415156105fc565b60018054146112605760405162461bcd60e51b81526004016104b590612a9d565b60026001819055545f906112779084908435610aed565b5f81815260066020526040902054909150806112a55760405162461bcd60e51b81526004016104b590612730565b80836040516020016112b791906129af565b60405160208183030381529060405280519060200120146112ea5760405162461bcd60e51b81526004016104b5906129c1565b5f6112fb6080850160608601612111565b6001600160a01b03163b1161136f5760405162461bcd60e51b815260206004820152603460248201527f54656c65706f727465724d657373656e6765723a2064657374696e6174696f6e604482015273206164647265737320686173206e6f20636f646560601b60648201526084016104b5565b604051849083907f34795cc6b122b9a0ae684946319f1e14a577b4e8f9b3dda9ac94c21a54d3188c905f90a35f82815260066020908152604080832083905586916113be918701908701612111565b6113cb60e0870187612fa4565b6040516024016113de9493929190612fe6565b60408051601f198184030181529190526020810180516001600160e01b031663643477d560e11b17905290505f61142561141e6080870160608801612111565b5a84611de3565b9050806114885760405162461bcd60e51b815260206004820152602b60248201527f54656c65706f727465724d657373656e6765723a20726574727920657865637560448201526a1d1a5bdb8819985a5b195960aa1b60648201526084016104b5565b50506001805550505050565b6040516001600160a01b038381166024830152604482018390526114f391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611dfa565b505050565b805460018201545f916105fc91613010565b60605f611520600561151b856114f8565b611e5b565b9050805f0361156c57604080515f8082526020820190925290611564565b604080518082019091525f808252602082015281526020019060019003908161153e5790505b509392505050565b5f816001600160401b038111156115855761158561249d565b6040519080825280602002602001820160405280156115c957816020015b604080518082019091525f80825260208201528152602001906001900390816115a35790505b5090505f5b82811015611564576115df85611e70565b8282815181106115f1576115f1612b5d565b60209081029190910101526001016115ce565b5f8061160e610425565b90505f60035f815461161f90613023565b91905081905590505f61163683875f015184610aed565b90505f604051806101000160405280848152602001336001600160a01b03168152602001885f0151815260200188602001516001600160a01b0316815260200188606001518152602001886080015181526020018781526020018860a0015181525090505f816040516020016116ac919061303b565b60405160208183030381529060405290505f808960400151602001511115611713576040890151516001600160a01b03166116f95760405162461bcd60e51b81526004016104b590612ae2565b6040890151805160209091015161171091906118f8565b90505b6040805180820182528a820151516001600160a01b03908116825260208083018590528351808501855286518783012081528082018481525f8a815260058452869020915182555180516001830180546001600160a01b03191691909516179093559101516002909101558a51915190919086907f2a211ad4a59ab9d003852404f9c57c690704ee755f3c79d2c2812ad32da99df8906117b6908890869061304d565b60405180910390a360405163ee5b48eb60e01b81526005600160991b019063ee5b48eb906117e8908690600401612a8b565b6020604051808303815f875af1158015611804573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182891906123fc565b50939998505050505050505050565b604080518082019091525f8082526020820152611853836114f8565b82106118ab5760405162461bcd60e51b815260206004820152602160248201527f5265636569707451756575653a20696e646578206f7574206f6620626f756e646044820152607360f81b60648201526084016104b5565b826002015f83855f01546118bf9190612b4a565b815260208082019290925260409081015f20815180830190925280548252600101546001600160a01b0316918101919091529392505050565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038516906370a0823190602401602060405180830381865afa15801561193e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196291906123fc565b90506119796001600160a01b038516333086611f3a565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa1580156119bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119e191906123fc565b9050818111611a475760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b60648201526084016104b5565b611a518282613010565b95945050505050565b5f81515f03611a6b575060016105fc565b81515f5b81811015611abc57846001600160a01b0316848281518110611a9357611a93612b5d565b60200260200101516001600160a01b031603611ab4576001925050506105fc565b600101611a6f565b505f949350505050565b805f03611b255760405162461bcd60e51b815260206004820152602760248201527f54656c65706f727465724d657373656e6765723a207a65726f206d657373616760448201526665206e6f6e636560c81b60648201526084016104b5565b5f9182526007602052604090912055565b5f611b458484845f0151610aed565b5f818152600560209081526040918290208251808401845281548152835180850190945260018201546001600160a01b031684526002909101548383015290810191909152805191925090611b9b575050505050565b5f8281526005602090815260408083208381556001810180546001600160a01b03191690556002018390558382018051830151878401516001600160a01b0390811686526009855283862092515116855292528220805491929091611c01908490612b4a565b9250508190555082602001516001600160a01b031684837fd13a7935f29af029349bed0a2097455b91fd06190a30478c575db3f31e00bf578460200151604051611c4b919061305f565b60405180910390a45050505050565b600182018054829160028501915f9182611c7383613023565b9091555081526020808201929092526040015f2082518155910151600190910180546001600160a01b0319166001600160a01b039092169190911790555050565b80608001515a1015611d165760405162461bcd60e51b815260206004820152602560248201527f54656c65706f727465724d657373656e6765723a20696e73756666696369656e604482015264742067617360d81b60648201526084016104b5565b80606001516001600160a01b03163b5f03611d36576114f3838383611f79565b602081015160e08201516040515f92611d5392869260240161307f565b60408051601f198184030181529190526020810180516001600160e01b031663643477d560e11b179052606083015160808401519192505f91611d97919084611de3565b905080611db057611da9858585611f79565b5050505050565b604051849086907f34795cc6b122b9a0ae684946319f1e14a577b4e8f9b3dda9ac94c21a54d3188c905f90a35050505050565b5f805f808451602086015f8989f195945050505050565b5f611e0e6001600160a01b03841683611fed565b905080515f14158015611e32575080806020019051810190611e3091906130a8565b155b156114f357604051635274afe760e01b81526001600160a01b03841660048201526024016104b5565b5f818310611e6957816108af565b5090919050565b604080518082019091525f808252602082015281546001830154819003611ed95760405162461bcd60e51b815260206004820152601960248201527f5265636569707451756575653a20656d7074792071756575650000000000000060448201526064016104b5565b5f8181526002840160208181526040808420815180830190925280548252600180820180546001600160a01b03811685870152888852959094529490556001600160a01b0319909216905590611f30908390612b4a565b9093555090919050565b6040516001600160a01b038481166024830152838116604483015260648201839052611f739186918216906323b872dd906084016114c1565b50505050565b80604051602001611f8a919061303b565b60408051601f1981840301815282825280516020918201205f878152600690925291902055829084907f4619adc1017b82e02eaefac01a43d50d6d8de4460774bc370c3ff0210d40c98590611fe090859061303b565b60405180910390a3505050565b60606108af83835f845f80856001600160a01b0316848660405161201191906130c1565b5f6040518083038185875af1925050503d805f811461204b576040519150601f19603f3d011682016040523d82523d5f602084013e612050565b606091505b509150915061206086838361206a565b9695505050505050565b60608261207f5761207a826120c6565b6108af565b815115801561209657506001600160a01b0384163b155b156120bf57604051639996b31560e01b81526001600160a01b03851660048201526024016104b5565b50806108af565b8051156120d65780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b03811681146120ef575f80fd5b80356104ee816120f2565b5f60208284031215612121575f80fd5b81356108af816120f2565b5f6020828403121561213c575f80fd5b5035919050565b828152606081016108af602083018480516001600160a01b03168252602090810151910152565b5f6020828403121561217a575f80fd5b81356001600160401b0381111561218f575f80fd5b820160e081850312156108af575f80fd5b5f61010082840312156121b1575f80fd5b50919050565b5f602082840312156121c7575f80fd5b81356001600160401b038111156121dc575f80fd5b611222848285016121a0565b5f80604083850312156121f9575f80fd5b50508035926020909101359150565b815181526020808301516001600160a01b031690820152604081016105fc565b5f805f6060848603121561223a575f80fd5b83359250602084013561224c816120f2565b929592945050506040919091013590565b5f805f6060848603121561226f575f80fd5b505081359360208301359350604090920135919050565b5f8083601f840112612296575f80fd5b5081356001600160401b038111156122ac575f80fd5b6020830191508360208260051b85010111156122c6575f80fd5b9250929050565b5f805f805f8086880360a08112156122e3575f80fd5b8735965060208801356001600160401b0380821115612300575f80fd5b61230c8b838c01612286565b90985096508691506040603f1984011215612325575f80fd5b60408a01955060808a013592508083111561233e575f80fd5b505061234c89828a01612286565b979a9699509497509295939492505050565b5f806040838503121561236f575f80fd5b823561237a816120f2565b9150602083013561238a816120f2565b809150509250929050565b5f80604083850312156123a6575f80fd5b823563ffffffff8116811461237a575f80fd5b5f80604083850312156123ca575f80fd5b8235915060208301356001600160401b038111156123e6575f80fd5b6123f2858286016121a0565b9150509250929050565b5f6020828403121561240c575f80fd5b5051919050565b60208082526027908201527f54656c65706f727465724d657373656e6765723a207a65726f20626c6f636b636040820152661a185a5b88125160ca1b606082015260800190565b60208082526023908201527f5265656e7472616e63794775617264733a2073656e646572207265656e7472616040820152626e637960e81b606082015260800190565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b03811182821017156124d3576124d361249d565b60405290565b60405160c081016001600160401b03811182821017156124d3576124d361249d565b60405161010081016001600160401b03811182821017156124d3576124d361249d565b604051601f8201601f191681016001600160401b03811182821017156125465761254661249d565b604052919050565b5f6040828403121561255e575f80fd5b6125666124b1565b90508135612573816120f2565b808252506020820135602082015292915050565b5f6001600160401b0382111561259f5761259f61249d565b5060051b60200190565b5f82601f8301126125b8575f80fd5b813560206125cd6125c883612587565b61251e565b8083825260208201915060208460051b8701019350868411156125ee575f80fd5b602086015b84811015612613578035612606816120f2565b83529183019183016125f3565b509695505050505050565b5f6001600160401b038211156126365761263661249d565b50601f01601f191660200190565b5f82601f830112612653575f80fd5b81356126616125c88261261e565b818152846020838601011115612675575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60e082360312156126a1575f80fd5b6126a96124d9565b823581526126b960208401612106565b60208201526126cb366040850161254e565b60408201526080830135606082015260a08301356001600160401b03808211156126f3575f80fd5b6126ff368387016125a9565b608084015260c0850135915080821115612717575f80fd5b5061272436828601612644565b60a08301525092915050565b60208082526026908201527f54656c65706f727465724d657373656e6765723a206d657373616765206e6f7460408201526508199bdd5b9960d21b606082015260800190565b5f808335601e1984360301811261278b575f80fd5b83016020810192503590506001600160401b038111156127a9575f80fd5b8060051b36038213156122c6575f80fd5b8183525f60208085019450825f5b858110156127f65781356127db816120f2565b6001600160a01b0316875295820195908201906001016127c8565b509495945050505050565b5f808335601e19843603018112612816575f80fd5b83016020810192503590506001600160401b03811115612834575f80fd5b8060061b36038213156122c6575f80fd5b8183525f60208085019450825f5b858110156127f657813587528282013561286c816120f2565b6001600160a01b0316878401526040968701969190910190600101612853565b5f808335601e198436030181126128a1575f80fd5b83016020810192503590506001600160401b038111156128bf575f80fd5b8036038213156122c6575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f61010082358452602083013561290b816120f2565b6001600160a01b031660208501526040838101359085015261292f60608401612106565b6001600160a01b031660608501526080838101359085015261295460a0840184612776565b8260a087015261296783870182846127ba565b9250505061297860c0840184612801565b85830360c087015261298b838284612845565b9250505061299c60e084018461288c565b85830360e08701526120608382846128cd565b602081525f6108af60208301846128f5565b60208082526029908201527f54656c65706f727465724d657373656e6765723a20696e76616c6964206d65736040820152680e6c2ceca40d0c2e6d60bb1b606082015260800190565b606081525f612a1c60608301856128f5565b90506108af602083018480516001600160a01b03168252602090810151910152565b5f5b83811015612a58578181015183820152602001612a40565b50505f910152565b5f8151808452612a77816020860160208601612a3e565b601f01601f19169290920160200192915050565b602081525f6108af6020830184612a60565b60208082526025908201527f5265656e7472616e63794775617264733a207265636569766572207265656e7460408201526472616e637960d81b606082015260800190565b60208082526034908201527f54656c65706f727465724d657373656e6765723a207a65726f2066656520617360408201527373657420636f6e7472616374206164647265737360601b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105fc576105fc612b36565b634e487b7160e01b5f52603260045260245ffd5b5f60408284031215612b81575f80fd5b6108af838361254e565b80516104ee816120f2565b5f82601f830112612ba5575f80fd5b8151612bb36125c88261261e565b818152846020838601011115612bc7575f80fd5b611222826020830160208701612a3e565b805180151581146104ee575f80fd5b5f8060408385031215612bf8575f80fd5b82516001600160401b0380821115612c0e575f80fd5b9084019060608287031215612c21575f80fd5b604051606081018181108382111715612c3c57612c3c61249d565b604052825181526020830151612c51816120f2565b6020820152604083015182811115612c67575f80fd5b612c7388828601612b96565b6040830152509350612c8a91505060208401612bd8565b90509250929050565b5f82601f830112612ca2575f80fd5b81516020612cb26125c883612587565b8083825260208201915060208460051b870101935086841115612cd3575f80fd5b602086015b84811015612613578051612ceb816120f2565b8352918301918301612cd8565b5f82601f830112612d07575f80fd5b81516020612d176125c883612587565b82815260069290921b84018101918181019086841115612d35575f80fd5b8286015b848110156126135760408189031215612d50575f80fd5b612d586124b1565b8151815284820151612d69816120f2565b81860152835291830191604001612d39565b5f60208284031215612d8b575f80fd5b81516001600160401b0380821115612da1575f80fd5b908301906101008286031215612db5575f80fd5b612dbd6124fb565b82518152612dcd60208401612b8b565b602082015260408301516040820152612de860608401612b8b565b60608201526080830151608082015260a083015182811115612e08575f80fd5b612e1487828601612c93565b60a08301525060c083015182811115612e2b575f80fd5b612e3787828601612cf8565b60c08301525060e083015182811115612e4e575f80fd5b612e5a87828601612b96565b60e08301525095945050505050565b5f815180845260208085019450602084015f5b838110156127f65781516001600160a01b031687529582019590820190600101612e7c565b5f815180845260208085019450602084015f5b838110156127f657612eda878351805182526020908101516001600160a01b0316910152565b6040969096019590820190600101612eb4565b5f6101008251845260018060a01b036020840151166020850152604083015160408501526060830151612f2b60608601826001600160a01b03169052565b506080830151608085015260a08301518160a0860152612f4d82860182612e69565b91505060c083015184820360c0860152612f678282612ea1565b91505060e083015184820360e0860152611a518282612a60565b6001600160a01b03831681526040602082018190525f9061122290830184612eed565b5f808335601e19843603018112612fb9575f80fd5b8301803591506001600160401b03821115612fd2575f80fd5b6020019150368190038213156122c6575f80fd5b8481526001600160a01b03841660208201526060604082018190525f9061206090830184866128cd565b818103818111156105fc576105fc612b36565b5f6001820161303457613034612b36565b5060010190565b602081525f6108af6020830184612eed565b606081525f612a1c6060830185612eed565b81516001600160a01b0316815260208083015190820152604081016105fc565b8381526001600160a01b03831660208201526060604082018190525f90611a5190830184612a60565b5f602082840312156130b8575f80fd5b6108af82612bd8565b5f82516130d2818460208701612a3e565b919091019291505056fea264697066735822122075b1ac058983d587cd413fadb7833efbfe0b441f0040bb3f6acd59025cf0152664736f6c63430008190033", } // TeleporterMessengerABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/teleporter/registry/TeleporterRegistry/TeleporterRegistry.go b/abi-bindings/go/teleporter/registry/TeleporterRegistry/TeleporterRegistry.go index a56f38013..63126ea6c 100644 --- a/abi-bindings/go/teleporter/registry/TeleporterRegistry/TeleporterRegistry.go +++ b/abi-bindings/go/teleporter/registry/TeleporterRegistry/TeleporterRegistry.go @@ -38,7 +38,7 @@ type ProtocolRegistryEntry struct { // TeleporterRegistryMetaData contains all meta data concerning the TeleporterRegistry contract. var TeleporterRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"initialEntries\",\"type\":\"tuple[]\",\"internalType\":\"structProtocolRegistryEntry[]\",\"components\":[{\"name\":\"version\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"protocolAddress\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"MAX_VERSION_INCREMENT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"VALIDATORS_SOURCE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addProtocolVersion\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAddressFromVersion\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestTeleporter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractITeleporterMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTeleporterFromVersion\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractITeleporterMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getVersionFromAddress\",\"inputs\":[{\"name\":\"protocolAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AddProtocolVersion\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"protocolAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"LatestVersionUpdated\",\"inputs\":[{\"name\":\"oldVersion\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"newVersion\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x60a06040523480156200001157600080fd5b506040516200106638038062001066833981016040819052620000349162000410565b7302000000000000000000000000000000000000056001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000087573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ad919062000502565b608052805160005b81811015620000f457620000eb838281518110620000d757620000d76200051c565b6020026020010151620000fd60201b60201c565b600101620000b5565b5050506200055a565b8051600003620001545760405162461bcd60e51b815260206004820181905260248201527f54656c65706f7274657252656769737472793a207a65726f2076657273696f6e60448201526064015b60405180910390fd5b80516000908152600160205260409020546001600160a01b031615620001d05760405162461bcd60e51b815260206004820152602a60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20616c72656044820152696164792065786973747360b01b60648201526084016200014b565b60208101516001600160a01b03166200023e5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f7274657252656769737472793a207a65726f2070726f746f636f6044820152686c206164647265737360b81b60648201526084016200014b565b6000546200024f6101f48262000532565b82511115620002b85760405162461bcd60e51b815260206004820152602e60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20696e637260448201526d0cadacadce840e8dede40d0d2ced60931b60648201526084016200014b565b602082810180518451600090815260018452604080822080546001600160a01b0319166001600160a01b0394851617905592519091168152600290925290205482511115620003225781516020808401516001600160a01b03166000908152600290915260409020555b602082015182516040516001600160a01b03909216917fa5eed93d951a9603d5f7c0a57de79a299dd3dbd5e51429be209d8053a42ab43a90600090a3815181101562000398578151600081815560405183917f30623e953733f6474dabdfbef1103ce15ab73cdc77c6dfad0f9874d167e8a9b091a35b5050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620003d757620003d76200039c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200040857620004086200039c565b604052919050565b600060208083850312156200042457600080fd5b82516001600160401b03808211156200043c57600080fd5b818501915085601f8301126200045157600080fd5b8151818111156200046657620004666200039c565b62000476848260051b01620003dd565b818152848101925060069190911b8301840190878211156200049757600080fd5b928401925b81841015620004f75760408489031215620004b75760008081fd5b620004c1620003b2565b84518152858501516001600160a01b0381168114620004e05760008081fd5b81870152835260409390930192918401916200049c565b979650505050505050565b6000602082840312156200051557600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b808201808211156200055457634e487b7160e01b600052601160045260246000fd5b92915050565b608051610ae96200057d6000396000818161014901526102640152610ae96000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063ac473ac311610066578063ac473ac314610124578063b771b3bc1461012d578063c07f47d41461013b578063d127dc9b14610144578063d820e64f1461016b57600080fd5b80630731775d146100a3578063215abce9146100c857806341f34ed9146100db57806346f9ef49146100f05780634c1f08ce14610103575b600080fd5b6100ab600081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100ab6100d63660046107c5565b610173565b6100ee6100e93660046107de565b610184565b005b6100ab6100fe3660046107c5565b6103f9565b610116610111366004610823565b6104be565b6040519081526020016100bf565b6101166101f481565b6100ab6005600160991b0181565b61011660005481565b6101167f000000000000000000000000000000000000000000000000000000000000000081565b6100ab610566565b600061017e826103f9565b92915050565b6040516306f8253560e41b815263ffffffff8216600482015260009081906005600160991b0190636f82535090602401600060405180830381865afa1580156101d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101f991908101906108c5565b91509150806102605760405162461bcd60e51b815260206004820152602860248201527f54656c65706f7274657252656769737472793a20696e76616c69642077617270604482015267206d65737361676560c01b60648201526084015b60405180910390fd5b81517f0000000000000000000000000000000000000000000000000000000000000000146102e45760405162461bcd60e51b815260206004820152602b60248201527f54656c65706f7274657252656769737472793a20696e76616c696420736f757260448201526a18d94818da185a5b88125160aa1b6064820152608401610257565b60208201516001600160a01b0316156103595760405162461bcd60e51b815260206004820152603160248201527f54656c65706f7274657252656769737472793a20696e76616c6964206f726967604482015270696e2073656e646572206164647265737360781b6064820152608401610257565b600080836040015180602001905181019061037491906109cd565b90925090506001600160a01b03811630146103e95760405162461bcd60e51b815260206004820152602f60248201527f54656c65706f7274657252656769737472793a20696e76616c6964206465737460448201526e696e6174696f6e206164647265737360881b6064820152608401610257565b6103f282610578565b5050505050565b60008160000361044b5760405162461bcd60e51b815260206004820181905260248201527f54656c65706f7274657252656769737472793a207a65726f2076657273696f6e6044820152606401610257565b6000828152600160205260409020546001600160a01b03168061017e5760405162461bcd60e51b815260206004820152602560248201527f54656c65706f7274657252656769737472793a2076657273696f6e206e6f7420604482015264199bdd5b9960da1b6064820152608401610257565b60006001600160a01b0382166104e65760405162461bcd60e51b815260040161025790610a49565b6001600160a01b0382166000908152600260205260408120549081900361017e5760405162461bcd60e51b815260206004820152602e60248201527f54656c65706f7274657252656769737472793a2070726f746f636f6c2061646460448201526d1c995cdcc81b9bdd08199bdd5b9960921b6064820152608401610257565b60006105736000546103f9565b905090565b80516000036105c95760405162461bcd60e51b815260206004820181905260248201527f54656c65706f7274657252656769737472793a207a65726f2076657273696f6e6044820152606401610257565b80516000908152600160205260409020546001600160a01b0316156106435760405162461bcd60e51b815260206004820152602a60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20616c72656044820152696164792065786973747360b01b6064820152608401610257565b60208101516001600160a01b031661066d5760405162461bcd60e51b815260040161025790610a49565b60005461067c6101f482610a92565b825111156106e35760405162461bcd60e51b815260206004820152602e60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20696e637260448201526d0cadacadce840e8dede40d0d2ced60931b6064820152608401610257565b602082810180518451600090815260018452604080822080546001600160a01b0319166001600160a01b039485161790559251909116815260029092529020548251111561074c5781516020808401516001600160a01b03166000908152600290915260409020555b602082015182516040516001600160a01b03909216917fa5eed93d951a9603d5f7c0a57de79a299dd3dbd5e51429be209d8053a42ab43a90600090a381518110156107c1578151600081815560405183917f30623e953733f6474dabdfbef1103ce15ab73cdc77c6dfad0f9874d167e8a9b091a35b5050565b6000602082840312156107d757600080fd5b5035919050565b6000602082840312156107f057600080fd5b813563ffffffff8116811461080457600080fd5b9392505050565b6001600160a01b038116811461082057600080fd5b50565b60006020828403121561083557600080fd5b81356108048161080b565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561087957610879610840565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156108a8576108a8610840565b604052919050565b805180151581146108c057600080fd5b919050565b600080604083850312156108d857600080fd5b825167ffffffffffffffff808211156108f057600080fd5b908401906060828703121561090457600080fd5b61090c610856565b8251815260208084015161091f8161080b565b8282015260408401518381111561093557600080fd5b80850194505087601f85011261094a57600080fd5b83518381111561095c5761095c610840565b61096e601f8201601f1916830161087f565b9350808452888282870101111561098457600080fd5b60005b818110156109a2578581018301518582018401528201610987565b506000828286010152508260408301528195506109c08188016108b0565b9450505050509250929050565b60008082840360608112156109e157600080fd5b60408112156109ef57600080fd5b506040516040810181811067ffffffffffffffff82111715610a1357610a13610840565b604052835181526020840151610a288161080b565b60208201526040840151909250610a3e8161080b565b809150509250929050565b60208082526029908201527f54656c65706f7274657252656769737472793a207a65726f2070726f746f636f6040820152686c206164647265737360b81b606082015260800190565b8082018082111561017e57634e487b7160e01b600052601160045260246000fdfea2646970667358221220d994ef6c38d4ddbbf5a1184a4404d741c00fcb137de7297f00f89bae2cd0e1c764736f6c63430008170033", + Bin: "0x60a060405234801561000f575f80fd5b50604051610fe0380380610fe083398101604081905261002e916103e2565b7302000000000000000000000000000000000000056001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a291906104bc565b60805280515f5b818110156100e1576100d98382815181106100c6576100c66104d3565b60200260200101516100e960201b60201c565b6001016100a9565b50505061050c565b80515f0361013e5760405162461bcd60e51b815260206004820181905260248201527f54656c65706f7274657252656769737472793a207a65726f2076657273696f6e60448201526064015b60405180910390fd5b80515f908152600160205260409020546001600160a01b0316156101b75760405162461bcd60e51b815260206004820152602a60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20616c72656044820152696164792065786973747360b01b6064820152608401610135565b60208101516001600160a01b03166102235760405162461bcd60e51b815260206004820152602960248201527f54656c65706f7274657252656769737472793a207a65726f2070726f746f636f6044820152686c206164647265737360b81b6064820152608401610135565b5f546102316101f4826104e7565b825111156102985760405162461bcd60e51b815260206004820152602e60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20696e637260448201526d0cadacadce840e8dede40d0d2ced60931b6064820152608401610135565b6020828101805184515f90815260018452604080822080546001600160a01b0319166001600160a01b03948516179055925190911681526002909252902054825111156102ff5781516020808401516001600160a01b03165f908152600290915260409020555b602082015182516040516001600160a01b03909216917fa5eed93d951a9603d5f7c0a57de79a299dd3dbd5e51429be209d8053a42ab43a905f90a381518110156103725781515f81815560405183917f30623e953733f6474dabdfbef1103ce15ab73cdc77c6dfad0f9874d167e8a9b091a35b5050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b03811182821017156103ac576103ac610376565b60405290565b604051601f8201601f191681016001600160401b03811182821017156103da576103da610376565b604052919050565b5f60208083850312156103f3575f80fd5b82516001600160401b0380821115610409575f80fd5b818501915085601f83011261041c575f80fd5b81518181111561042e5761042e610376565b61043c848260051b016103b2565b818152848101925060069190911b83018401908782111561045b575f80fd5b928401925b818410156104b15760408489031215610477575f80fd5b61047f61038a565b84518152858501516001600160a01b038116811461049b575f80fd5b8187015283526040939093019291840191610460565b979650505050505050565b5f602082840312156104cc575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561050657634e487b7160e01b5f52601160045260245ffd5b92915050565b608051610ab561052b5f395f818161014301526102580152610ab55ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063ac473ac311610063578063ac473ac31461011f578063b771b3bc14610128578063c07f47d414610136578063d127dc9b1461013e578063d820e64f14610165575f80fd5b80630731775d1461009f578063215abce9146100c357806341f34ed9146100d657806346f9ef49146100eb5780634c1f08ce146100fe575b5f80fd5b6100a65f81565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a66100d13660046107aa565b61016d565b6100e96100e43660046107c1565b61017d565b005b6100a66100f93660046107aa565b6103ec565b61011161010c366004610802565b6104ae565b6040519081526020016100ba565b6101116101f481565b6100a66005600160991b0181565b6101115f5481565b6101117f000000000000000000000000000000000000000000000000000000000000000081565b6100a6610554565b5f610177826103ec565b92915050565b6040516306f8253560e41b815263ffffffff821660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156101c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526101ed919081019061089f565b91509150806102545760405162461bcd60e51b815260206004820152602860248201527f54656c65706f7274657252656769737472793a20696e76616c69642077617270604482015267206d65737361676560c01b60648201526084015b60405180910390fd5b81517f0000000000000000000000000000000000000000000000000000000000000000146102d85760405162461bcd60e51b815260206004820152602b60248201527f54656c65706f7274657252656769737472793a20696e76616c696420736f757260448201526a18d94818da185a5b88125160aa1b606482015260840161024b565b60208201516001600160a01b03161561034d5760405162461bcd60e51b815260206004820152603160248201527f54656c65706f7274657252656769737472793a20696e76616c6964206f726967604482015270696e2073656e646572206164647265737360781b606482015260840161024b565b5f808360400151806020019051810190610367919061099e565b90925090506001600160a01b03811630146103dc5760405162461bcd60e51b815260206004820152602f60248201527f54656c65706f7274657252656769737472793a20696e76616c6964206465737460448201526e696e6174696f6e206164647265737360881b606482015260840161024b565b6103e582610564565b5050505050565b5f815f0361043c5760405162461bcd60e51b815260206004820181905260248201527f54656c65706f7274657252656769737472793a207a65726f2076657273696f6e604482015260640161024b565b5f828152600160205260409020546001600160a01b0316806101775760405162461bcd60e51b815260206004820152602560248201527f54656c65706f7274657252656769737472793a2076657273696f6e206e6f7420604482015264199bdd5b9960da1b606482015260840161024b565b5f6001600160a01b0382166104d55760405162461bcd60e51b815260040161024b90610a17565b6001600160a01b0382165f90815260026020526040812054908190036101775760405162461bcd60e51b815260206004820152602e60248201527f54656c65706f7274657252656769737472793a2070726f746f636f6c2061646460448201526d1c995cdcc81b9bdd08199bdd5b9960921b606482015260840161024b565b5f61055f5f546103ec565b905090565b80515f036105b45760405162461bcd60e51b815260206004820181905260248201527f54656c65706f7274657252656769737472793a207a65726f2076657273696f6e604482015260640161024b565b80515f908152600160205260409020546001600160a01b03161561062d5760405162461bcd60e51b815260206004820152602a60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20616c72656044820152696164792065786973747360b01b606482015260840161024b565b60208101516001600160a01b03166106575760405162461bcd60e51b815260040161024b90610a17565b5f546106656101f482610a60565b825111156106cc5760405162461bcd60e51b815260206004820152602e60248201527f54656c65706f7274657252656769737472793a2076657273696f6e20696e637260448201526d0cadacadce840e8dede40d0d2ced60931b606482015260840161024b565b6020828101805184515f90815260018452604080822080546001600160a01b0319166001600160a01b03948516179055925190911681526002909252902054825111156107335781516020808401516001600160a01b03165f908152600290915260409020555b602082015182516040516001600160a01b03909216917fa5eed93d951a9603d5f7c0a57de79a299dd3dbd5e51429be209d8053a42ab43a905f90a381518110156107a65781515f81815560405183917f30623e953733f6474dabdfbef1103ce15ab73cdc77c6dfad0f9874d167e8a9b091a35b5050565b5f602082840312156107ba575f80fd5b5035919050565b5f602082840312156107d1575f80fd5b813563ffffffff811681146107e4575f80fd5b9392505050565b6001600160a01b03811681146107ff575f80fd5b50565b5f60208284031215610812575f80fd5b81356107e4816107eb565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156108545761085461081d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156108835761088361081d565b604052919050565b8051801515811461089a575f80fd5b919050565b5f80604083850312156108b0575f80fd5b825167ffffffffffffffff808211156108c7575f80fd5b90840190606082870312156108da575f80fd5b6108e2610831565b825181526020808401516108f5816107eb565b8282015260408401518381111561090a575f80fd5b80850194505087601f85011261091e575f80fd5b8351838111156109305761093061081d565b610942601f8201601f1916830161085a565b93508084528882828701011115610957575f80fd5b5f5b81811015610974578581018301518582018401528201610959565b505f8282860101525082604083015281955061099181880161088b565b9450505050509250929050565b5f8082840360608112156109b0575f80fd5b60408112156109bd575f80fd5b506040516040810181811067ffffffffffffffff821117156109e1576109e161081d565b6040528351815260208401516109f6816107eb565b60208201526040840151909250610a0c816107eb565b809150509250929050565b60208082526029908201527f54656c65706f7274657252656769737472793a207a65726f2070726f746f636f6040820152686c206164647265737360b81b606082015260800190565b8082018082111561017757634e487b7160e01b5f52601160045260245ffdfea26469706673582212205bb9fea75c8b7c12f617b2a91948d20f177d21faa1897496e472621de074596364736f6c63430008190033", } // TeleporterRegistryABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/teleporter/tests/TestMessenger/TestMessenger.go b/abi-bindings/go/teleporter/tests/TestMessenger/TestMessenger.go index 7f0c3f009..10eb40fee 100644 --- a/abi-bindings/go/teleporter/tests/TestMessenger/TestMessenger.go +++ b/abi-bindings/go/teleporter/tests/TestMessenger/TestMessenger.go @@ -32,7 +32,7 @@ var ( // TestMessengerMetaData contains all meta data concerning the TestMessenger contract. var TestMessengerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"teleporterRegistryAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"teleporterManager\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getCurrentMessage\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isTeleporterAddressPaused\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauseTeleporterAddress\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"receiveTeleporterMessage\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendMessage\",\"inputs\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpauseTeleporterAddress\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateMinTeleporterVersion\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MinTeleporterVersionUpdated\",\"inputs\":[{\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"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\":\"ReceiveMessage\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SendMessage\",\"inputs\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"destinationAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"feeAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TeleporterAddressPaused\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TeleporterAddressUnpaused\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162001ecb38038062001ecb83398101604081905262000034916200046d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03166000811580156200007f5750825b90506000826001600160401b031660011480156200009c5750303b155b905081158015620000ab575080155b15620000ca5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b03191660011785558315620000f957845460ff60401b1916680100000000000000001785555b6200010362000163565b6200010f878762000179565b83156200015657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050620004bf565b6200016d6200019d565b62000177620001ec565b565b620001836200019d565b6200018e826200021c565b620001998162000248565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166200017757604051631afcd79f60e31b815260040160405180910390fd5b620001f66200019d565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b620002266200019d565b6200023062000163565b6200023a6200025d565b620002458162000267565b50565b620002526200019d565b6200024581620003a0565b620001776200019d565b620002716200019d565b6001600160a01b038116620002f35760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f72746572207265676973747279206164647265737300000000000000000060648201526084015b60405180910390fd5b7fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff916160080546001600160a01b0319166001600160a01b03831690811782556040805163301fd1f560e21b8152905184929163c07f47d49160048083019260209291908290030181865afa1580156200036d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003939190620004a5565b8260020181905550505050565b620003aa6200019d565b6001600160a01b038116620003d657604051631e4fbdf760e01b815260006004820152602401620002ea565b620002458160007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b80516001600160a01b03811681146200046857600080fd5b919050565b600080604083850312156200048157600080fd5b6200048c8362000450565b91506200049c6020840162000450565b90509250929050565b600060208284031215620004b857600080fd5b5051919050565b6119fc80620004cf6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806397314297116100715780639731429714610130578063b33fead414610153578063c868efaa14610174578063d2cc7a7014610187578063f2fde38b146101b8578063f63d09d7146101cb57600080fd5b80632b0d8f18146100ae5780634511243e146100c35780635eb99514146100d6578063715018a6146100e95780638da5cb5b146100f1575b600080fd5b6100c16100bc366004611388565b6101de565b005b6100c16100d1366004611388565b6102fd565b6100c16100e43660046113a5565b61040b565b6100c161041f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020015b60405180910390f35b61014361013e366004611388565b610433565b6040519015158152602001610127565b6101666101613660046113a5565b610470565b60405161012792919061140e565b6100c1610182366004611483565b610546565b7fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff9161602545b604051908152602001610127565b6100c16101c6366004611388565b610728565b6101aa6101d93660046114df565b610763565b6101e66108c2565b6001600160a01b0381166102155760405162461bcd60e51b815260040161020c90611565565b60405180910390fd5b61021e81610433565b156102815760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b606482015260840161020c565b6001600160a01b03811660008181527fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff91616016020526040808220805460ff19166001179055516000805160206119a783398151915292917f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c91a25050565b6103056108c2565b6001600160a01b03811661032b5760405162461bcd60e51b815260040161020c90611565565b61033481610433565b6103925760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b606482015260840161020c565b6001600160a01b03811660008181527fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff91616016020526040808220805460ff19169055516000805160206119a783398151915292917f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c391a25050565b6104136108c2565b61041c816108ca565b50565b610427610a67565b6104316000610ac2565b565b6001600160a01b031660009081527fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff9161601602052604090205460ff1690565b600081815260208181526040808320815180830190925280546001600160a01b0316825260018101805460609486949392908401916104ae906115b3565b80601f01602080910402602001604051908101604052809291908181526020018280546104da906115b3565b80156105275780601f106104fc57610100808354040283529160200191610527565b820191906000526020600020905b81548152906001019060200180831161050a57829003601f168201915b5050505050815250509050806000015181602001519250925050915091565b61054e610b33565b60006000805160206119a783398151915260028101548154919250906001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e191906115ed565b10156106485760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b606482015260840161020c565b61065133610433565b156106b75760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b606482015260840161020c565b6106f8858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b7d92505050565b5061072260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50505050565b610730610a67565b6001600160a01b03811661075a57604051631e4fbdf760e01b81526000600482015260240161020c565b61041c81610ac2565b600061076d610b33565b600085156107825761077f8787610c34565b90505b876001600160a01b0316897fa06eff1edd0c66b8dc96d086dda7ba263edf88d7417e6cb15073b5e7bff8a8ca89848989896040516107c495949392919061162f565b60405180910390a361088b6040518060c001604052808b81526020018a6001600160a01b0316815260200160405180604001604052808b6001600160a01b03168152602001858152508152602001878152602001600067ffffffffffffffff8111156108325761083261165d565b60405190808252806020026020018201604052801561085b578160200160208202803683370190505b5081526020018686604051602001610874929190611673565b604051602081830303815290604052815250610d9e565b9150506108b760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b979650505050505050565b610431610a67565b6000805160206119a783398151915280546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015610922573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094691906115ed565b6002830154909150818411156109b85760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b606482015260840161020c565b808411610a2d5760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e00606482015260840161020c565b60028301849055604051849082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a350505050565b33610a997f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104315760405163118cdaa760e01b815233600482015260240161020c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901610b7757604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600081806020019051810190610b939190611687565b6040805180820182526001600160a01b038681168252602080830185815260008a815291829052939020825181546001600160a01b03191692169190911781559151929350916001820190610be89082611779565b50905050826001600160a01b0316847f1f5c800b5f2b573929a7948f82a199c2a212851b53a6c5bd703ece23999d24aa83604051610c269190611839565b60405180910390a350505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca191906115ed565b9050610cb86001600160a01b038516333086610ec4565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2391906115ed565b9050818111610d895760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b606482015260840161020c565b610d938282611862565b925050505b92915050565b600080610da9610f2b565b60408401516020015190915015610e4e576040830151516001600160a01b0316610e2b5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b606482015260840161020c565b604083015160208101519051610e4e916001600160a01b0390911690839061101e565b604051630624488560e41b81526001600160a01b03821690636244885090610e7a9086906004016118ba565b6020604051808303816000875af1158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd91906115ed565b9392505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526107229186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506110a8565b6000805160206119a783398151915280546040805163d820e64f60e01b815290516000939284926001600160a01b039091169163d820e64f916004808201926020929091908290030181865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190611938565b9050610fb881610433565b15610d985760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b606482015260840161020c565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561106e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109291906115ed565b905061072284846110a38585611955565b611110565b60006110bd6001600160a01b038416836111a0565b905080516000141580156110e25750808060200190518101906110e09190611968565b155b1561110b57604051635274afe760e01b81526001600160a01b038416600482015260240161020c565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261116184826111ae565b610722576040516001600160a01b0384811660248301526000604483015261119691869182169063095ea7b390606401610ef9565b61072284826110a8565b6060610ebd83836000611251565b6000806000846001600160a01b0316846040516111cb919061198a565b6000604051808303816000865af19150503d8060008114611208576040519150601f19603f3d011682016040523d82523d6000602084013e61120d565b606091505b50915091508180156112375750805115806112375750808060200190518101906112379190611968565b8015610d935750505050506001600160a01b03163b151590565b6060814710156112765760405163cd78605960e01b815230600482015260240161020c565b600080856001600160a01b03168486604051611292919061198a565b60006040518083038185875af1925050503d80600081146112cf576040519150601f19603f3d011682016040523d82523d6000602084013e6112d4565b606091505b50915091506112e48683836112ee565b9695505050505050565b606082611303576112fe8261134a565b610ebd565b815115801561131a57506001600160a01b0384163b155b1561134357604051639996b31560e01b81526001600160a01b038516600482015260240161020c565b5080610ebd565b80511561135a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b038116811461041c57600080fd5b60006020828403121561139a57600080fd5b8135610ebd81611373565b6000602082840312156113b757600080fd5b5035919050565b60005b838110156113d95781810151838201526020016113c1565b50506000910152565b600081518084526113fa8160208601602086016113be565b601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090611432908301846113e2565b949350505050565b60008083601f84011261144c57600080fd5b50813567ffffffffffffffff81111561146457600080fd5b60208301915083602082850101111561147c57600080fd5b9250929050565b6000806000806060858703121561149957600080fd5b8435935060208501356114ab81611373565b9250604085013567ffffffffffffffff8111156114c757600080fd5b6114d38782880161143a565b95989497509550505050565b600080600080600080600060c0888a0312156114fa57600080fd5b87359650602088013561150c81611373565b9550604088013561151c81611373565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561154657600080fd5b6115528a828b0161143a565b989b979a50959850939692959293505050565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b600181811c908216806115c757607f821691505b6020821081036115e757634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156115ff57600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b03861681528460208201528360408201526080606082015260006108b7608083018486611606565b634e487b7160e01b600052604160045260246000fd5b602081526000611432602083018486611606565b60006020828403121561169957600080fd5b815167ffffffffffffffff808211156116b157600080fd5b818401915084601f8301126116c557600080fd5b8151818111156116d7576116d761165d565b604051601f8201601f19908116603f011681019083821181831017156116ff576116ff61165d565b8160405282815287602084870101111561171857600080fd5b6108b78360208301602088016113be565b601f82111561110b576000816000526020600020601f850160051c810160208610156117525750805b601f850160051c820191505b818110156117715782815560010161175e565b505050505050565b815167ffffffffffffffff8111156117935761179361165d565b6117a7816117a184546115b3565b84611729565b602080601f8311600181146117dc57600084156117c45750858301515b600019600386901b1c1916600185901b178555611771565b600085815260208120601f198616915b8281101561180b578886015182559484019460019091019084016117ec565b50858210156118295787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610ebd60208301846113e2565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d9857610d9861184c565b60008151808452602080850194506020840160005b838110156118af5781516001600160a01b03168752958201959082019060010161188a565b509495945050505050565b60208152815160208201526000602083015160018060a01b03808216604085015260408501519150808251166060850152506020810151608084015250606083015160a0830152608083015160e060c084015261191b610100840182611875565b905060a0840151601f198483030160e0850152610d9382826113e2565b60006020828403121561194a57600080fd5b8151610ebd81611373565b80820180821115610d9857610d9861184c565b60006020828403121561197a57600080fd5b81518015158114610ebd57600080fd5b6000825161199c8184602087016113be565b919091019291505056fec73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff9161600a2646970667358221220e113f0e819e96c829b23f5a3118ec9ef2dec601716cb7bb0f71250e98df0da6464736f6c63430008170033", + Bin: "0x608060405234801561000f575f80fd5b50604051611e0a380380611e0a83398101604081905261002e9161042d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f811580156100775750825b90505f826001600160401b031660011480156100925750303b155b9050811580156100a0575080155b156100be5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ec57845460ff60401b1916680100000000000000001785555b6100f4610150565b6100fe8787610162565b831561014457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050610475565b610158610180565b6101606101ce565b565b61016a610180565b610173826101fc565b61017c81610220565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661016057604051631afcd79f60e31b815260040160405180910390fd5b6101d6610180565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b610204610180565b61020c610150565b610214610231565b61021d81610239565b50565b610228610180565b61021d8161036a565b610160610180565b610241610180565b6001600160a01b0381166102c25760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f72746572207265676973747279206164647265737300000000000000000060648201526084015b60405180910390fd5b7fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff916160080546001600160a01b0319166001600160a01b03831690811782556040805163301fd1f560e21b8152905184929163c07f47d49160048083019260209291908290030181865afa158015610339573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035d919061045e565b8260020181905550505050565b610372610180565b6001600160a01b03811661039b57604051631e4fbdf760e01b81525f60048201526024016102b9565b61021d815f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b80516001600160a01b0381168114610428575f80fd5b919050565b5f806040838503121561043e575f80fd5b61044783610412565b915061045560208401610412565b90509250929050565b5f6020828403121561046e575f80fd5b5051919050565b611988806104825f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063973142971161006e578063973142971461012c578063b33fead41461014f578063c868efaa14610170578063d2cc7a7014610183578063f2fde38b146101b4578063f63d09d7146101c7575f80fd5b80632b0d8f18146100aa5780634511243e146100bf5780635eb99514146100d2578063715018a6146100e55780638da5cb5b146100ed575b5f80fd5b6100bd6100b8366004611349565b6101da565b005b6100bd6100cd366004611349565b6102f7565b6100bd6100e0366004611364565b610403565b6100bd610417565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020015b60405180910390f35b61013f61013a366004611349565b61042a565b6040519015158152602001610123565b61016261015d366004611364565b610466565b6040516101239291906113c8565b6100bd61017e366004611438565b610538565b7fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff9161602545b604051908152602001610123565b6100bd6101c2366004611349565b610715565b6101a66101d5366004611490565b61074f565b6101e26108ab565b6001600160a01b0381166102115760405162461bcd60e51b815260040161020890611510565b60405180910390fd5b61021a8161042a565b1561027d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610208565b6001600160a01b0381165f8181527fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff91616016020526040808220805460ff19166001179055515f8051602061193383398151915292917f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c91a25050565b6102ff6108ab565b6001600160a01b0381166103255760405162461bcd60e51b815260040161020890611510565b61032e8161042a565b61038c5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610208565b6001600160a01b0381165f8181527fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff91616016020526040808220805460ff19169055515f8051602061193383398151915292917f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c391a25050565b61040b6108ab565b610414816108b3565b50565b61041f610a4b565b6104285f610aa6565b565b6001600160a01b03165f9081527fc73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff9161601602052604090205460ff1690565b5f81815260208181526040808320815180830190925280546001600160a01b0316825260018101805460609486949392908401916104a39061155e565b80601f01602080910402602001604051908101604052809291908181526020018280546104cf9061155e565b801561051a5780601f106104f15761010080835404028352916020019161051a565b820191905f5260205f20905b8154815290600101906020018083116104fd57829003601f168201915b5050505050815250509050805f015181602001519250925050915091565b610540610b16565b5f5f8051602061193383398151915260028101548154919250906001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156105ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105cf9190611596565b10156106365760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610208565b61063f3361042a565b156106a55760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610208565b6106e5858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610b6092505050565b5061070f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50505050565b61071d610a4b565b6001600160a01b03811661074657604051631e4fbdf760e01b81525f6004820152602401610208565b61041481610aa6565b5f610758610b16565b5f851561076c576107698787610c15565b90505b876001600160a01b0316897fa06eff1edd0c66b8dc96d086dda7ba263edf88d7417e6cb15073b5e7bff8a8ca89848989896040516107ae9594939291906115d5565b60405180910390a36108746040518060c001604052808b81526020018a6001600160a01b0316815260200160405180604001604052808b6001600160a01b031681526020018581525081526020018781526020015f67ffffffffffffffff81111561081b5761081b611602565b604051908082528060200260200182016040528015610844578160200160208202803683370190505b508152602001868660405160200161085d929190611616565b604051602081830303815290604052815250610d79565b9150506108a060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b979650505050505050565b610428610a4b565b5f8051602061193383398151915280546040805163301fd1f560e21b815290515f926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015610907573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092b9190611596565b60028301549091508184111561099d5760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610208565b808411610a125760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610208565b60028301849055604051849082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d905f90a350505050565b33610a7d7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104285760405163118cdaa760e01b8152336004820152602401610208565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901610b5a57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f81806020019051810190610b759190611629565b6040805180820182526001600160a01b03868116825260208083018581525f8a815291829052939020825181546001600160a01b03191692169190911781559151929350916001820190610bc99082611711565b50905050826001600160a01b0316847f1f5c800b5f2b573929a7948f82a199c2a212851b53a6c5bd703ece23999d24aa83604051610c0791906117d1565b60405180910390a350505050565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7f9190611596565b9050610c966001600160a01b038516333086610e9b565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015610cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfe9190611596565b9050818111610d645760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610208565b610d6e82826117f7565b925050505b92915050565b5f80610d83610f02565b60408401516020015190915015610e28576040830151516001600160a01b0316610e055760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610208565b604083015160208101519051610e28916001600160a01b03909116908390610ff1565b604051630624488560e41b81526001600160a01b03821690636244885090610e5490869060040161184d565b6020604051808303815f875af1158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e949190611596565b9392505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261070f9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611078565b5f8051602061193383398151915280546040805163d820e64f60e01b815290515f939284926001600160a01b039091169163d820e64f916004808201926020929091908290030181865afa158015610f5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8091906118ca565b9050610f8b8161042a565b15610d735760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610208565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa15801561103e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110629190611596565b905061070f848461107385856118e5565b6110de565b5f61108c6001600160a01b0384168361116d565b905080515f141580156110b05750808060200190518101906110ae91906118f8565b155b156110d957604051635274afe760e01b81526001600160a01b0384166004820152602401610208565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261112f848261117a565b61070f576040516001600160a01b0384811660248301525f604483015261116391869182169063095ea7b390606401610ed0565b61070f8482611078565b6060610e9483835f611217565b5f805f846001600160a01b0316846040516111959190611917565b5f604051808303815f865af19150503d805f81146111ce576040519150601f19603f3d011682016040523d82523d5f602084013e6111d3565b606091505b50915091508180156111fd5750805115806111fd5750808060200190518101906111fd91906118f8565b8015610d6e5750505050506001600160a01b03163b151590565b60608147101561123c5760405163cd78605960e01b8152306004820152602401610208565b5f80856001600160a01b031684866040516112579190611917565b5f6040518083038185875af1925050503d805f8114611291576040519150601f19603f3d011682016040523d82523d5f602084013e611296565b606091505b50915091506112a68683836112b0565b9695505050505050565b6060826112c5576112c08261130c565b610e94565b81511580156112dc57506001600160a01b0384163b155b1561130557604051639996b31560e01b81526001600160a01b0385166004820152602401610208565b5080610e94565b80511561131c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b0381168114610414575f80fd5b5f60208284031215611359575f80fd5b8135610e9481611335565b5f60208284031215611374575f80fd5b5035919050565b5f5b8381101561139557818101518382015260200161137d565b50505f910152565b5f81518084526113b481602086016020860161137b565b601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082018190525f906113eb9083018461139d565b949350505050565b5f8083601f840112611403575f80fd5b50813567ffffffffffffffff81111561141a575f80fd5b602083019150836020828501011115611431575f80fd5b9250929050565b5f805f806060858703121561144b575f80fd5b84359350602085013561145d81611335565b9250604085013567ffffffffffffffff811115611478575f80fd5b611484878288016113f3565b95989497509550505050565b5f805f805f805f60c0888a0312156114a6575f80fd5b8735965060208801356114b881611335565b955060408801356114c881611335565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156114f1575f80fd5b6114fd8a828b016113f3565b989b979a50959850939692959293505050565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b600181811c9082168061157257607f821691505b60208210810361159057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156115a6575f80fd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60018060a01b0386168152846020820152836040820152608060608201525f6108a06080830184866115ad565b634e487b7160e01b5f52604160045260245ffd5b602081525f6113eb6020830184866115ad565b5f60208284031215611639575f80fd5b815167ffffffffffffffff80821115611650575f80fd5b818401915084601f830112611663575f80fd5b81518181111561167557611675611602565b604051601f8201601f19908116603f0116810190838211818310171561169d5761169d611602565b816040528281528760208487010111156116b5575f80fd5b6108a083602083016020880161137b565b601f8211156110d957805f5260205f20601f840160051c810160208510156116eb5750805b601f840160051c820191505b8181101561170a575f81556001016116f7565b5050505050565b815167ffffffffffffffff81111561172b5761172b611602565b61173f81611739845461155e565b846116c6565b602080601f831160018114611772575f841561175b5750858301515b5f19600386901b1c1916600185901b1785556117c9565b5f85815260208120601f198616915b828110156117a057888601518255948401946001909101908401611781565b50858210156117bd57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b602081525f610e94602083018461139d565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610d7357610d736117e3565b5f815180845260208085019450602084015f5b838110156118425781516001600160a01b03168752958201959082019060010161181d565b509495945050505050565b60208152815160208201525f602083015160018060a01b03808216604085015260408501519150808251166060850152506020810151608084015250606083015160a0830152608083015160e060c08401526118ad61010084018261180a565b905060a0840151601f198483030160e0850152610d6e828261139d565b5f602082840312156118da575f80fd5b8151610e9481611335565b80820180821115610d7357610d736117e3565b5f60208284031215611908575f80fd5b81518015158114610e94575f80fd5b5f825161192881846020870161137b565b919091019291505056fec73953669262a2bc0a821c7b2e84a2e293b7a32ca3f8016446f20efff9161600a2646970667358221220beda5a4459965971484f4a9996420a29db96b9a21b1c9ba7fb45df761321455364736f6c63430008190033", } // TestMessengerABI is the input ABI used to generate the binding from.