From 2318c6485fc456c69c1838fa3dfc3cbae262eec8 Mon Sep 17 00:00:00 2001 From: Matthew Lam Date: Thu, 11 Jul 2024 17:40:31 -0400 Subject: [PATCH] update bindings with forge version corrected --- abi-bindings/go/ProxyAdmin/ProxyAdmin.go | 2 +- .../go/TokenHome/ERC20TokenHome/ERC20TokenHome.go | 4 ++-- .../go/TokenHome/NativeTokenHome/NativeTokenHome.go | 4 ++-- abi-bindings/go/TokenHome/TokenHome/TokenHome.go | 2 +- .../TokenRemote/ERC20TokenRemote/ERC20TokenRemote.go | 4 ++-- .../NativeTokenRemote/NativeTokenRemote.go | 4 ++-- .../go/TokenRemote/TokenRemote/TokenRemote.go | 2 +- .../TransparentUpgradeableProxy.go | 2 +- .../go/WrappedNativeToken/WrappedNativeToken.go | 2 +- .../ExampleERC20Decimals/ExampleERC20Decimals.go | 2 +- .../MockERC20SendAndCallReceiver.go | 2 +- .../MockNativeSendAndCallReceiver.go | 2 +- contracts/src/TokenHome/TokenHome.sol | 12 ++++++------ contracts/src/TokenRemote/NativeTokenRemote.sol | 2 +- contracts/src/TokenRemote/TokenRemote.sol | 6 +++--- 15 files changed, 26 insertions(+), 26 deletions(-) diff --git a/abi-bindings/go/ProxyAdmin/ProxyAdmin.go b/abi-bindings/go/ProxyAdmin/ProxyAdmin.go index 18402ceb..b81c6b3a 100644 --- a/abi-bindings/go/ProxyAdmin/ProxyAdmin.go +++ b/abi-bindings/go/ProxyAdmin/ProxyAdmin.go @@ -31,7 +31,7 @@ var ( // ProxyAdminMetaData contains all meta data concerning the ProxyAdmin contract. var ProxyAdminMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"changeProxyAdmin\",\"inputs\":[{\"name\":\"proxy\",\"type\":\"address\",\"internalType\":\"contractTransparentUpgradeableProxy\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getProxyAdmin\",\"inputs\":[{\"name\":\"proxy\",\"type\":\"address\",\"internalType\":\"contractTransparentUpgradeableProxy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getProxyImplementation\",\"inputs\":[{\"name\":\"proxy\",\"type\":\"address\",\"internalType\":\"contractTransparentUpgradeableProxy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgrade\",\"inputs\":[{\"name\":\"proxy\",\"type\":\"address\",\"internalType\":\"contractTransparentUpgradeableProxy\"},{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeAndCall\",\"inputs\":[{\"name\":\"proxy\",\"type\":\"address\",\"internalType\":\"contractTransparentUpgradeableProxy\"},{\"name\":\"implementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contractTransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractTransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractTransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractTransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractTransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106938061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b038316815260006020604081840152835180604085015260005b8181101561063b5785810183015185820160600152820161061f565b506000606082860101526060601f19601f83011685010192505050939250505056fea264697066735822122090e5a7385c962642b7ef213517ef647cc198d2011edee8bbbb113ad1510fa14e64736f6c63430008120033", } diff --git a/abi-bindings/go/TokenHome/ERC20TokenHome/ERC20TokenHome.go b/abi-bindings/go/TokenHome/ERC20TokenHome/ERC20TokenHome.go index 5cfca683..443acf5c 100644 --- a/abi-bindings/go/TokenHome/ERC20TokenHome/ERC20TokenHome.go +++ b/abi-bindings/go/TokenHome/ERC20TokenHome/ERC20TokenHome.go @@ -66,8 +66,8 @@ type SendTokensInput struct { // ERC20TokenHomeMetaData contains all meta data concerning the ERC20TokenHome contract. var ERC20TokenHomeMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"addCollateral\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRemoteTokenTransferrerSettings\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structRemoteTokenTransferrerSettings\",\"components\":[{\"name\":\"registered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"collateralNeeded\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenMultiplier\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiplyOnRemote\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTransferredBalance\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"teleporterRegistryAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"teleporterManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenAddress_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenDecimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"send\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendAndCall\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"teleporterRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTeleporterRegistry\"}],\"stateMutability\":\"view\"},{\"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\":\"CallFailed\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CallSucceeded\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CollateralAdded\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"remaining\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"RemoteRegistered\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"initialCollateralNeeded\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"tokenDecimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"event\",\"name\":\"TokensAndCallRouted\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensAndCallSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensRouted\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b506148ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806365690038116100a2578063c8511ada11610071578063c8511ada14610276578063c868efaa1461034c578063d2cc7a701461035f578063f2fde38b14610367578063fd6582681461037a57600080fd5b8063656900381461020e578063715018a6146102215780638da5cb5b14610229578063973142971461023a57600080fd5b80633073cecf116100e95780633073cecf146101ad5780634213cf78146101c05780634511243e146101d55780635d16225d146101e85780635eb99514146101fb57600080fd5b806310fe9ae81461011b578063154d625a146101645780631a7f5bec146101855780632b0d8f1814610198575b600080fd5b7f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e601546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6101776101723660046137fa565b61038d565b60405190815260200161015b565b606554610147906001600160a01b031681565b6101ab6101a636600461382a565b6103d6565b005b6101ab6101bb366004613856565b6104d8565b60008051602061483783398151915254610177565b6101ab6101e336600461382a565b6105f1565b6101ab6101f63660046138b2565b6106ee565b6101ab6102093660046138e4565b61070a565b6101ab61021c3660046138fd565b61071e565b6101ab610748565b6068546001600160a01b0316610147565b61026661024836600461382a565b6001600160a01b031660009081526066602052604090205460ff1690565b604051901515815260200161015b565b6103156102843660046137fa565b604080516080808201835260008083526020808401829052838501829052606093840182905295815260008051602061485783398151915286528381206001600160a01b039590951681529385529282902082519384018352805460ff9081161515855260018201549585019590955260028101549284019290925260039091015490921615159181019190915290565b60405161015b9190815115158152602080830151908201526040808301519082015260609182015115159181019190915260800190565b6101ab61035a366004613947565b61075c565b606754610177565b6101ab61037536600461382a565b610908565b6101ab6103883660046139cf565b61097e565b60008281527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b03851684529091529020545b92915050565b6103de61098e565b6001600160a01b03811661040d5760405162461bcd60e51b815260040161040490613a07565b60405180910390fd5b6001600160a01b03811660009081526066602052604090205460ff161561048c5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610404565b6001600160a01b038116600081815260666020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b600054610100900460ff16158080156104f85750600054600160ff909116105b806105125750303b158015610512575060005460ff166001145b6105755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610404565b6000805460ff191660011790558015610598576000805461ff0019166101001790555b6105a485858585610996565b80156105ea576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6105f961098e565b6001600160a01b03811661061f5760405162461bcd60e51b815260040161040490613a07565b6001600160a01b03811660009081526066602052604090205460ff166106995760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610404565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152606660205260409020805460ff19169055565b61070661070036849003840184613b09565b826109d2565b5050565b61071261098e565b61071b81610bea565b50565b6107066107376000805160206148378339815191525490565b303361074286613c12565b85610d74565b610750610f87565b61075a6000610fe1565b565b610764611033565b6067546065546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e19190613ce3565b10156108485760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610404565b61085133610248565b156108b75760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610404565b6108f8848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061108c92505050565b6109026001603355565b50505050565b610910610f87565b6001600160a01b0381166109755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610404565b61071b81610fe1565b61098983838361149a565b505050565b61075a610f87565b600054610100900460ff166109bd5760405162461bcd60e51b815260040161040490613cfc565b6109c984848484611692565b610902826116d5565b6000805160206148778339815191528054600114610a025760405162461bcd60e51b815260040161040490613d47565b60028155610a0f8361172b565b60e08301516001600160a01b031615610a3a5760405162461bcd60e51b815260040161040490613d8b565b600080610a5a8560000151866020015186886060015189608001516117d5565b915091506000604051806040016040528060016004811115610a7e57610a7e613dd1565b8152602001604051806040016040528089604001516001600160a01b0316815260200186815250604051602001610ab59190613de7565b60405160208183030381529060405281525090506000610b976040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b606001516001600160a01b031681526020018781525081526020018960c00151815260200160006001600160401b03811115610b4057610b40613a55565b604051908082528060200260200182016040528015610b69578160200160208202803683370190505b50815260200184604051602001610b809190613e57565b6040516020818303038152906040528152506119a0565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528987604051610bd5929190613e9c565b60405180910390a35050600190925550505050565b6065546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190613ce3565b60675490915081831115610cc85760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610404565b808311610d3d5760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610404565b6067839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b6000805160206148778339815191528054600114610da45760405162461bcd60e51b815260040161040490613d47565b60028155610db183611ac6565b60c08301516001600160a01b031615610ddc5760405162461bcd60e51b815260040161040490613d8b565b600080610dfe85600001518660200151868861010001518961012001516117d5565b915091506000604051806040016040528060026004811115610e2257610e22613dd1565b81526020016040518061010001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200189604001516001600160a01b03168152602001868152602001896060015181526020018960a0015181526020018960e001516001600160a01b0316815250604051602001610ea59190613f1e565b60405160208183030381529060405281525090506000610f316040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b61010001516001600160a01b031681526020018781525081526020018960800151815260200160006001600160401b03811115610b4057610b40613a55565b9050876001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168987604051610f6f929190613fbd565b60405180910390a35050600190925550505050505050565b6068546001600160a01b0316331461075a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610404565b606880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002603354036110855760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610404565b6002603355565b600060008051602061483783398151915290506000828060200190518101906110b591906140e5565b90506001815160048111156110cc576110cc613dd1565b0361111757600081602001518060200190518101906110eb9190614173565b905060006110fe87878460200151611cad565b905061110e826000015182611d3b565b50505050505050565b60028151600481111561112c5761112c613dd1565b03611247576000816020015180602001905181019061114b91906141ad565b9050600061115e87878460800151611cad565b825190915087146111c45760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a206d69736d61746368656420736f7572636520626c6f60448201526918dad8da185a5b88125160b21b6064820152608401610404565b856001600160a01b031682602001516001600160a01b03161461123d5760405162461bcd60e51b815260206004820152602b60248201527f546f6b656e486f6d653a206d69736d617463686564206f726967696e2073656e60448201526a646572206164647265737360a81b6064820152608401610404565b61110e8282611d9f565b60038151600481111561125c5761125c613dd1565b03611335576000816020015180602001905181019061127b919061427c565b9050600080611294888885606001518660800151611f87565b9150915061132b6040518061010001604052808560000151815260200185602001516001600160a01b0316815260200185604001516001600160a01b031681526020018760010160009054906101000a90046001600160a01b03166001600160a01b03168152602001838152602001600081526020018560a0015181526020018560c001516001600160a01b031681525083612036565b5050505050505050565b60048151600481111561134a5761134a613dd1565b0361144a57600081602001518060200190518101906113699190614317565b905060008061138388888560800151866101400151611f87565b9150915061132b888885600001516040518061016001604052808860200151815260200188604001516001600160a01b0316815260200188606001516001600160a01b031681526020018860a00151815260200188610100015181526020018860c0015181526020018861012001516001600160a01b031681526020018860e001516001600160a01b031681526020018a60010160009054906101000a90046001600160a01b03166001600160a01b031681526020018681526020016000815250866121c9565b60008151600481111561145f5761145f613dd1565b036105ea576000816020015180602001905181019061147e9190614414565b905061148b8686836123ae565b505050505050565b6001603355565b60008051602061487783398151915280546001146114ca5760405162461bcd60e51b815260040161040490613d47565b60028082556000858152600080516020614857833981519152602090815260408083206001600160a01b03881684528252918290208251608081018452815460ff908116151580835260018401549483019490945294820154938101939093526003015490921615156060820152600080516020614837833981519152916115645760405162461bcd60e51b81526004016104049061447c565b60008160200151116115c25760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20636f6c6c61746572616c206e656564656044820152601960fa1b6064820152608401610404565b6115cb846127c2565b9350600080826020015186106115fc576020830151600092506115ee90876144c7565b90508260200151955061160f565b85836020015161160c91906144c7565b91505b600088815260028501602090815260408083206001600160a01b038b168085529083529281902060010185905580518981529182018590528a917f6769a5f9bfc8b6e0db839ab981cbf9239274ae72d2d035081a9157d43bd33cb6910160405180910390a38015611684576116843382611d3b565b505060019092555050505050565b600054610100900460ff166116b95760405162461bcd60e51b815260040161040490613cfc565b6116c384846127eb565b6116cb61282c565b610902828261286a565b600054610100900460ff166116fc5760405162461bcd60e51b815260040161040490613cfc565b60008051602061489783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60408101516001600160a01b031661178f5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20726563697069656e74206164647265736044820152607360f81b6064820152608401610404565b60008160c00151116117b35760405162461bcd60e51b8152600401610404906144da565b60a08101511561071b5760405162461bcd60e51b81526004016104049061451c565b6000858152600080516020614857833981519152602090815260408083206001600160a01b038816845282528083208151608081018352815460ff9081161515808352600184015495830195909552600283015493820193909352600390910154909116151560608201528291600080516020614837833981519152919061186f5760405162461bcd60e51b81526004016104049061447c565b6020810151156118d15760405162461bcd60e51b815260206004820152602760248201527f546f6b656e486f6d653a20636f6c6c61746572616c206e656564656420666f726044820152662072656d6f746560c81b6064820152608401610404565b6118da876127c2565b965084156118f0576118ed8633876129f4565b94505b6000611905826040015183606001518a612b53565b9050600081116119575760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f207363616c656420616d6f756e740000006044820152606401610404565b60008a815260038401602090815260408083206001600160a01b038d1684529091528120805483929061198b90849061455d565b90915550909a95995094975050505050505050565b6000806119ab612b6a565b60408401516020015190915015611a50576040830151516001600160a01b0316611a2d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610404565b604083015160208101519051611a50916001600160a01b03909116908390612c73565b604051630624488560e41b81526001600160a01b03821690636244885090611a7c908690600401614570565b6020604051808303816000875af1158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190613ce3565b9392505050565b60408101516001600160a01b0316611b335760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420636f6e7472616044820152696374206164647265737360b01b6064820152608401610404565b6000816080015111611b575760405162461bcd60e51b8152600401610404906144da565b60008160a0015111611bb75760405162461bcd60e51b815260206004820152602360248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420676173206c696044820152621b5a5d60ea1b6064820152608401610404565b80608001518160a0015110611c1d5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420726563697069656e7420676173604482015265081b1a5b5a5d60d21b6064820152608401610404565b60e08101516001600160a01b0316611c8a5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f2066616c6c6261636b20726563697069656044820152696e74206164647265737360b01b6064820152608401610404565b6101408101511561071b5760405162461bcd60e51b81526004016104049061451c565b6000838152600080516020614857833981519152602090815260408083206001600160a01b038616845282528083208151608081018352815460ff90811615158252600183015494820194909452600282015492810192909252600301549091161515606082015260008051602061483783398151915290611d3181878787612d58565b9695505050505050565b604051818152600080516020614897833981519152906001600160a01b038416907f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b9060200160405180910390a28054610989906001600160a01b03168484612e52565b600080516020614897833981519152805460608401516001600160a01b0390911690611dcd90829085612c73565b600084600001518560200151866040015184878960a00151604051602401611dfa96959493929190614629565b60408051601f198184030181529190526020810180516001600160e01b03166394395edd60e01b17905260c08601516060870151919250600091611e3f919084612e82565b6060870151604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529192506000919085169063dd62ed3e90604401602060405180830381865afa158015611e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebb9190613ce3565b9050611ecd8488606001516000612e91565b8115611f1f5786606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff487604051611f1291815260200190565b60405180910390a2611f67565b86606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb087604051611f5e91815260200190565b60405180910390a25b801561110e5760e087015161110e906001600160a01b0386169083612e52565b6000848152600080516020614857833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff9081161515825260018301549482019490945260028201549281019290925260030154909116151560608201528190600080516020614837833981519152908261200e828a8a8a612d58565b905060006120258360400151846060015189612fa6565b919a91995090975050505050505050565b60008051602061487783398151915280546001146120665760405162461bcd60e51b815260040161040490613d47565b600281556120738361172b565b600061208d84600001518560200151858760800151612fb5565b9050806000036120ab576120a58460e0015184611d3b565b506121c1565b604080518082019091526000908060018152602001604051806040016040528088604001516001600160a01b03168152602001858152506040516020016120f29190613de7565b604051602081830303815290604052815250905060006121816040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a606001516001600160a01b031681526020018a6080015181525081526020018860c00151815260200160006001600160401b03811115610b4057610b40613a55565b9050807f825080857c76cef4a1629c0705a7f8b4ef0282ddcafde0b6715c4fb34b68aaf087856040516121b5929190613e9c565b60405180910390a25050505b600190555050565b60008051602061487783398151915280546001146121f95760405162461bcd60e51b815260040161040490613d47565b6002815561220683611ac6565b60006122218460000151856020015185876101200151612fb5565b90508060000361223f576122398460c0015184611d3b565b506123a3565b6040805180820190915260009080600281526020016040518061010001604052808b81526020018a6001600160a01b03168152602001896001600160a01b0316815260200188604001516001600160a01b03168152602001858152602001886060015181526020018860a0015181526020018860e001516001600160a01b03168152506040516020016122d29190613f1e565b604051602081830303815290604052815250905060006123636040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a61010001516001600160a01b031681526020018a610120015181525081526020018860800151815260200160006001600160401b03811115610b4057610b40613a55565b9050807f42eff9005856e3c586b096d67211a566dc926052119fd7cc08023c70937ecb308785604051612397929190613fbd565b60405180910390a25050505b600190555050505050565b600080516020614837833981519152836124165760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a207a65726f2072656d6f746520626c6f636b636861696044820152631b88125160e21b6064820152608401610404565b8054840361247e5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e486f6d653a2063616e6e6f742072656769737465722072656d6f7460448201526e329037b71039b0b6b29031b430b4b760891b6064820152608401610404565b6001600160a01b0383166124ed5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e486f6d653a207a65726f2072656d6f746520746f6b656e2074726160448201526f6e73666572726572206164647265737360801b6064820152608401610404565b600084815260028201602090815260408083206001600160a01b038716845290915290205460ff161561256e5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f746520616c726561647920726567697374604482015263195c995960e21b6064820152608401610404565b6012826040015160ff1611156125d85760405162461bcd60e51b815260206004820152602960248201527f546f6b656e486f6d653a2072656d6f746520746f6b656e20646563696d616c73604482015268040e8dede40d0d2ced60bb1b6064820152608401610404565b6001810154602083015160ff908116600160a01b909204161461264c5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420686f6d6520746f6b656e20646560448201526563696d616c7360d01b6064820152608401610404565b60008061266e8360010160149054906101000a900460ff16856040015161312f565b91509150600061268383838760000151612fa6565b905081801561269d5750845161269a908490614680565b15155b156126b0576126ad60018261455d565b90505b60405180608001604052806001151581526020018281526020018481526020018315158152508460020160008981526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050856001600160a01b0316877ff229b02a51a4c8d5ef03a096ae0dd727d7b48b710d21b50ebebb560eef739b908388604001516040516127b192919091825260ff16602082015260400190565b60405180910390a350505050505050565b600080516020614897833981519152805460009190611abf906001600160a01b031633856129f4565b600054610100900460ff166128125760405162461bcd60e51b815260040161040490613cfc565b61281b82613178565b6128236132a6565b61070681610908565b600054610100900460ff166128535760405162461bcd60e51b815260040161040490613cfc565b61075a600160008051602061487783398151915255565b600054610100900460ff166128915760405162461bcd60e51b815260040161040490613cfc565b6001600160a01b0382166128e75760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f20746f6b656e20616464726573730000006044820152606401610404565b60128160ff1611156129465760405162461bcd60e51b815260206004820152602260248201527f546f6b656e486f6d653a20746f6b656e20646563696d616c7320746f6f2068696044820152610ced60f31b6064820152608401610404565b600060008051602061483783398151915290506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561299e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c29190613ce3565b8155600101805460ff909216600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa158015612a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a619190613ce3565b9050612a786001600160a01b0386168530866132d5565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae39190613ce3565b9050818111612b495760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610404565b611d3182826144c7565b6000612b62848484600161330d565b949350505050565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be49190614694565b9050612c08816001600160a01b031660009081526066602052604090205460ff1690565b15612c6e5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610404565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce89190613ce3565b612cf2919061455d565b6040516001600160a01b03851660248201526044810182905290915061090290859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613335565b8351600090612d795760405162461bcd60e51b81526004016104049061447c565b602085015115612dd75760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f7465206e6f7420636f6c6c61746572616c6044820152631a5e995960e21b6064820152608401610404565b612de2848484613407565b6000612df78660400151876060015185612fa6565b905060008111612e495760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e486f6d653a207a65726f20746f6b656e20616d6f756e74000000006044820152606401610404565b95945050505050565b6040516001600160a01b03831660248201526044810182905261098990849063a9059cbb60e01b90606401612d21565b6000612b6284600085856134f7565b801580612f0b5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f099190613ce3565b155b612f765760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610404565b6040516001600160a01b03831660248201526044810182905261098990849063095ea7b360e01b90606401612d21565b6000612b62848484600061330d565b6000848152600080516020614857833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff908116158015835260018401549583019590955260028301549382019390935260039091015490911615156060820152600080516020614837833981519152918061303f575060008160200151115b1561304f57600092505050612b62565b8385116130b35760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e486f6d653a20696e73756666696369656e7420616d6f756e74207460448201526b6f20636f766572206665657360a01b6064820152608401610404565b6130bd84866144c7565b945060006130d48260400151836060015188612b53565b9050806000036130ea5760009350505050612b62565b600088815260038401602090815260408083206001600160a01b038b1684529091528120805483929061311e90849061455d565b909155509098975050505050505050565b60008060ff8085169084161181816131535761314b85876146b1565b60ff16613161565b61315d86866146b1565b60ff165b61316c90600a6147ae565b96919550909350505050565b600054610100900460ff1661319f5760405162461bcd60e51b815260040161040490613cfc565b6131a76135cc565b6001600160a01b0381166132235760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f7274657220726567697374727920616464726573730000000000000000006064820152608401610404565b606580546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa15801561327c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a09190613ce3565b60675550565b600054610100900460ff166132cd5760405162461bcd60e51b815260040161040490613cfc565b61075a6135fb565b6040516001600160a01b03808516602483015283166044820152606481018290526109029085906323b872dd60e01b90608401612d21565b60008115158415150361332b5761332485846147ba565b9050612b62565b612e4985846147d1565b600061338a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661362b9092919063ffffffff16565b80519091501561098957808060200190518101906133a891906147e5565b6109895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610404565b60008381527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b038616845290915290205460008051602061483783398151915290828110156134c05760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e486f6d653a20696e73756666696369656e7420746f6b656e20747260448201526d616e736665722062616c616e636560901b6064820152608401610404565b6134ca83826144c7565b60009586526003909201602090815260408087206001600160a01b03909616875294905250919092205550565b6000845a10156135495760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e742067617300000000006044820152606401610404565b834710156135995760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c75650000006044820152606401610404565b826001600160a01b03163b6000036135b357506000612b62565b600080600084516020860188888bf19695505050505050565b600054610100900460ff166135f35760405162461bcd60e51b815260040161040490613cfc565b61075a61363a565b600054610100900460ff166136225760405162461bcd60e51b815260040161040490613cfc565b61075a33610fe1565b6060612b628484600085613661565b600054610100900460ff166114935760405162461bcd60e51b815260040161040490613cfc565b6060824710156136c25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610404565b600080866001600160a01b031685876040516136de9190614807565b60006040518083038185875af1925050503d806000811461371b576040519150601f19603f3d011682016040523d82523d6000602084013e613720565b606091505b50915091506137318783838761373c565b979650505050505050565b606083156137ab5782516000036137a4576001600160a01b0385163b6137a45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610404565b5081612b62565b612b6283838151156137c05781518083602001fd5b8060405162461bcd60e51b81526004016104049190614823565b6001600160a01b038116811461071b57600080fd5b8035612c6e816137da565b6000806040838503121561380d57600080fd5b82359150602083013561381f816137da565b809150509250929050565b60006020828403121561383c57600080fd5b8135611abf816137da565b60ff8116811461071b57600080fd5b6000806000806080858703121561386c57600080fd5b8435613877816137da565b93506020850135613887816137da565b92506040850135613897816137da565b915060608501356138a781613847565b939692955090935050565b6000808284036101208112156138c757600080fd5b610100808212156138d757600080fd5b9395938601359450505050565b6000602082840312156138f657600080fd5b5035919050565b6000806040838503121561391057600080fd5b82356001600160401b0381111561392657600080fd5b8301610160818603121561393957600080fd5b946020939093013593505050565b6000806000806060858703121561395d57600080fd5b84359350602085013561396f816137da565b925060408501356001600160401b038082111561398b57600080fd5b818701915087601f83011261399f57600080fd5b8135818111156139ae57600080fd5b8860208285010111156139c057600080fd5b95989497505060200194505050565b6000806000606084860312156139e457600080fd5b8335925060208401356139f6816137da565b929592945050506040919091013590565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715613a8e57613a8e613a55565b60405290565b60405161016081016001600160401b0381118282101715613a8e57613a8e613a55565b604080519081016001600160401b0381118282101715613a8e57613a8e613a55565b604051601f8201601f191681016001600160401b0381118282101715613b0157613b01613a55565b604052919050565b60006101008284031215613b1c57600080fd5b613b24613a6b565b823581526020830135613b36816137da565b60208201526040830135613b49816137da565b6040820152613b5a606084016137ef565b60608201526080830135608082015260a083013560a082015260c083013560c0820152613b8960e084016137ef565b60e08201529392505050565b60006001600160401b03821115613bae57613bae613a55565b50601f01601f191660200190565b600082601f830112613bcd57600080fd5b8135613be0613bdb82613b95565b613ad9565b818152846020838601011115613bf557600080fd5b816020850160208301376000918101602001919091529392505050565b60006101608236031215613c2557600080fd5b613c2d613a94565b82358152613c3d602084016137ef565b6020820152613c4e604084016137ef565b604082015260608301356001600160401b03811115613c6c57600080fd5b613c7836828601613bbc565b6060830152506080830135608082015260a083013560a0820152613c9e60c084016137ef565b60c0820152613caf60e084016137ef565b60e0820152610100613cc28185016137ef565b90820152610120838101359082015261014092830135928101929092525090565b600060208284031215613cf557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b60208082526026908201527f546f6b656e486f6d653a206e6f6e2d7a65726f206d756c74692d686f702066616040820152656c6c6261636b60d01b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b81516001600160a01b0316815260208083015190820152604081016103d0565b60005b83811015613e22578181015183820152602001613e0a565b50506000910152565b60008151808452613e43816020860160208601613e07565b601f01601f19169290920160200192915050565b602081526000825160058110613e7d57634e487b7160e01b600052602160045260246000fd5b806020840152506020830151604080840152612b626060840182613e2b565b60006101208201905083518252602084015160018060a01b03808216602085015280604087015116604085015280606087015116606085015250506080840151608083015260a084015160a083015260c084015160c083015260e0840151613f0f60e08401826001600160a01b03169052565b50826101008301529392505050565b60208152815160208201526000602083015160018060a01b03808216604085015280604086015116606085015250506060830151613f6760808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c0850152613f8e610120850183613e2b565b915060c085015160e085015260e0850151613fb3828601826001600160a01b03169052565b5090949350505050565b604081528251604082015260006020840151613fe460608401826001600160a01b03169052565b5060408401516001600160a01b03166080830152606084015161016060a084018190526140156101a0850183613e2b565b9150608086015160c085015260a086015160e085015260c0860151610100614047818701836001600160a01b03169052565b60e08801519150610120614065818801846001600160a01b03169052565b90880151915061014090614083878301846001600160a01b03169052565b880151928601929092525090940151610180830152506020015290565b600082601f8301126140b157600080fd5b81516140bf613bdb82613b95565b8181528460208386010111156140d457600080fd5b612b62826020830160208701613e07565b6000602082840312156140f757600080fd5b81516001600160401b038082111561410e57600080fd5b908301906040828603121561412257600080fd5b61412a613ab7565b82516005811061413957600080fd5b815260208301518281111561414d57600080fd5b614159878286016140a0565b60208301525095945050505050565b8051612c6e816137da565b60006040828403121561418557600080fd5b61418d613ab7565b8251614198816137da565b81526020928301519281019290925250919050565b6000602082840312156141bf57600080fd5b81516001600160401b03808211156141d657600080fd5b9083019061010082860312156141eb57600080fd5b6141f3613a6b565b8251815261420360208401614168565b602082015261421460408401614168565b604082015261422560608401614168565b60608201526080830151608082015260a08301518281111561424657600080fd5b614252878286016140a0565b60a08301525060c083015160c082015261426e60e08401614168565b60e082015295945050505050565b600060e0828403121561428e57600080fd5b60405160e081018181106001600160401b03821117156142b0576142b0613a55565b6040528251815260208301516142c5816137da565b602082015260408301516142d8816137da565b80604083015250606083015160608201526080830151608082015260a083015160a082015260c083015161430b816137da565b60c08201529392505050565b60006020828403121561432957600080fd5b81516001600160401b038082111561434057600080fd5b90830190610160828603121561435557600080fd5b61435d613a94565b61436683614168565b81526020830151602082015261437e60408401614168565b604082015261438f60608401614168565b60608201526080830151608082015260a0830151828111156143b057600080fd5b6143bc878286016140a0565b60a08301525060c083015160c08201526143d860e08401614168565b60e0820152610100838101519082015261012091506143f8828401614168565b9181019190915261014091820151918101919091529392505050565b60006060828403121561442657600080fd5b604051606081018181106001600160401b038211171561444857614448613a55565b60405282518152602083015161445d81613847565b6020820152604083015161447081613847565b60408201529392505050565b6020808252818101527f546f6b656e486f6d653a2072656d6f7465206e6f742072656769737465726564604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156103d0576103d06144b1565b60208082526022908201527f546f6b656e486f6d653a207a65726f20726571756972656420676173206c696d6040820152611a5d60f21b606082015260800190565b60208082526021908201527f546f6b656e486f6d653a206e6f6e2d7a65726f207365636f6e646172792066656040820152606560f81b606082015260800190565b808201808211156103d0576103d06144b1565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b808410156145ff578451831682529385019360019390930192908501906145dd565b5060a0880151878203601f190160e0890152945061461d8186613e2b565b98975050505050505050565b8681526001600160a01b0386811660208301528581166040830152841660608201526080810183905260c060a0820181905260009061461d90830184613e2b565b634e487b7160e01b600052601260045260246000fd5b60008261468f5761468f61466a565b500690565b6000602082840312156146a657600080fd5b8151611abf816137da565b60ff82811682821603908111156103d0576103d06144b1565b600181815b808511156147055781600019048211156146eb576146eb6144b1565b808516156146f857918102915b93841c93908002906146cf565b509250929050565b60008261471c575060016103d0565b81614729575060006103d0565b816001811461473f576002811461474957614765565b60019150506103d0565b60ff84111561475a5761475a6144b1565b50506001821b6103d0565b5060208310610133831016604e8410600b8410161715614788575081810a6103d0565b61479283836146ca565b80600019048211156147a6576147a66144b1565b029392505050565b6000611abf838361470d565b80820281158282048414176103d0576103d06144b1565b6000826147e0576147e061466a565b500490565b6000602082840312156147f757600080fd5b81518015158114611abf57600080fd5b60008251614819818460208701613e07565b9190910192915050565b602081526000611abf6020830184613e2b56fe9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e6009316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e602d2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c7500914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29500a2646970667358221220a275079c6dccad35e8fb571570bad4ae46cf5d2da6748e1cbae7415d19b17c1964736f6c63430008120033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"name\":\"CollateralAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\"}],\"name\":\"MinTeleporterVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialCollateralNeeded\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"name\":\"RemoteRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallRouted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensRouted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addCollateral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinTeleporterVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"getRemoteTokenTransferrerSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralNeeded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenMultiplier\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"multiplyOnRemote\",\"type\":\"bool\"}],\"internalType\":\"structRemoteTokenTransferrerSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"getTransferredBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"teleporterManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddress_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"isTeleporterAddressPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"pauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"receiveTeleporterMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"teleporterRegistry\",\"outputs\":[{\"internalType\":\"contractTeleporterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"unpauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"updateMinTeleporterVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b506148ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806365690038116100a2578063c8511ada11610071578063c8511ada14610276578063c868efaa1461034c578063d2cc7a701461035f578063f2fde38b14610367578063fd6582681461037a57600080fd5b8063656900381461020e578063715018a6146102215780638da5cb5b14610229578063973142971461023a57600080fd5b80633073cecf116100e95780633073cecf146101ad5780634213cf78146101c05780634511243e146101d55780635d16225d146101e85780635eb99514146101fb57600080fd5b806310fe9ae81461011b578063154d625a146101645780631a7f5bec146101855780632b0d8f1814610198575b600080fd5b7f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e601546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6101776101723660046137fa565b61038d565b60405190815260200161015b565b606554610147906001600160a01b031681565b6101ab6101a636600461382a565b6103d6565b005b6101ab6101bb366004613856565b6104d8565b60008051602061483783398151915254610177565b6101ab6101e336600461382a565b6105f1565b6101ab6101f63660046138b2565b6106ee565b6101ab6102093660046138e4565b61070a565b6101ab61021c3660046138fd565b61071e565b6101ab610748565b6068546001600160a01b0316610147565b61026661024836600461382a565b6001600160a01b031660009081526066602052604090205460ff1690565b604051901515815260200161015b565b6103156102843660046137fa565b604080516080808201835260008083526020808401829052838501829052606093840182905295815260008051602061485783398151915286528381206001600160a01b039590951681529385529282902082519384018352805460ff9081161515855260018201549585019590955260028101549284019290925260039091015490921615159181019190915290565b60405161015b9190815115158152602080830151908201526040808301519082015260609182015115159181019190915260800190565b6101ab61035a366004613947565b61075c565b606754610177565b6101ab61037536600461382a565b610908565b6101ab6103883660046139cf565b61097e565b60008281527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b03851684529091529020545b92915050565b6103de61098e565b6001600160a01b03811661040d5760405162461bcd60e51b815260040161040490613a07565b60405180910390fd5b6001600160a01b03811660009081526066602052604090205460ff161561048c5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610404565b6001600160a01b038116600081815260666020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b600054610100900460ff16158080156104f85750600054600160ff909116105b806105125750303b158015610512575060005460ff166001145b6105755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610404565b6000805460ff191660011790558015610598576000805461ff0019166101001790555b6105a485858585610996565b80156105ea576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6105f961098e565b6001600160a01b03811661061f5760405162461bcd60e51b815260040161040490613a07565b6001600160a01b03811660009081526066602052604090205460ff166106995760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610404565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152606660205260409020805460ff19169055565b61070661070036849003840184613b09565b826109d2565b5050565b61071261098e565b61071b81610bea565b50565b6107066107376000805160206148378339815191525490565b303361074286613c12565b85610d74565b610750610f87565b61075a6000610fe1565b565b610764611033565b6067546065546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e19190613ce3565b10156108485760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610404565b61085133610248565b156108b75760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610404565b6108f8848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061108c92505050565b6109026001603355565b50505050565b610910610f87565b6001600160a01b0381166109755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610404565b61071b81610fe1565b61098983838361149a565b505050565b61075a610f87565b600054610100900460ff166109bd5760405162461bcd60e51b815260040161040490613cfc565b6109c984848484611692565b610902826116d5565b6000805160206148778339815191528054600114610a025760405162461bcd60e51b815260040161040490613d47565b60028155610a0f8361172b565b60e08301516001600160a01b031615610a3a5760405162461bcd60e51b815260040161040490613d8b565b600080610a5a8560000151866020015186886060015189608001516117d5565b915091506000604051806040016040528060016004811115610a7e57610a7e613dd1565b8152602001604051806040016040528089604001516001600160a01b0316815260200186815250604051602001610ab59190613de7565b60405160208183030381529060405281525090506000610b976040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b606001516001600160a01b031681526020018781525081526020018960c00151815260200160006001600160401b03811115610b4057610b40613a55565b604051908082528060200260200182016040528015610b69578160200160208202803683370190505b50815260200184604051602001610b809190613e57565b6040516020818303038152906040528152506119a0565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528987604051610bd5929190613e9c565b60405180910390a35050600190925550505050565b6065546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190613ce3565b60675490915081831115610cc85760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610404565b808311610d3d5760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610404565b6067839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b6000805160206148778339815191528054600114610da45760405162461bcd60e51b815260040161040490613d47565b60028155610db183611ac6565b60c08301516001600160a01b031615610ddc5760405162461bcd60e51b815260040161040490613d8b565b600080610dfe85600001518660200151868861010001518961012001516117d5565b915091506000604051806040016040528060026004811115610e2257610e22613dd1565b81526020016040518061010001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200189604001516001600160a01b03168152602001868152602001896060015181526020018960a0015181526020018960e001516001600160a01b0316815250604051602001610ea59190613f1e565b60405160208183030381529060405281525090506000610f316040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b61010001516001600160a01b031681526020018781525081526020018960800151815260200160006001600160401b03811115610b4057610b40613a55565b9050876001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168987604051610f6f929190613fbd565b60405180910390a35050600190925550505050505050565b6068546001600160a01b0316331461075a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610404565b606880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002603354036110855760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610404565b6002603355565b600060008051602061483783398151915290506000828060200190518101906110b591906140e5565b90506001815160048111156110cc576110cc613dd1565b0361111757600081602001518060200190518101906110eb9190614173565b905060006110fe87878460200151611cad565b905061110e826000015182611d3b565b50505050505050565b60028151600481111561112c5761112c613dd1565b03611247576000816020015180602001905181019061114b91906141ad565b9050600061115e87878460800151611cad565b825190915087146111c45760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a206d69736d61746368656420736f7572636520626c6f60448201526918dad8da185a5b88125160b21b6064820152608401610404565b856001600160a01b031682602001516001600160a01b03161461123d5760405162461bcd60e51b815260206004820152602b60248201527f546f6b656e486f6d653a206d69736d617463686564206f726967696e2073656e60448201526a646572206164647265737360a81b6064820152608401610404565b61110e8282611d9f565b60038151600481111561125c5761125c613dd1565b03611335576000816020015180602001905181019061127b919061427c565b9050600080611294888885606001518660800151611f87565b9150915061132b6040518061010001604052808560000151815260200185602001516001600160a01b0316815260200185604001516001600160a01b031681526020018760010160009054906101000a90046001600160a01b03166001600160a01b03168152602001838152602001600081526020018560a0015181526020018560c001516001600160a01b031681525083612036565b5050505050505050565b60048151600481111561134a5761134a613dd1565b0361144a57600081602001518060200190518101906113699190614317565b905060008061138388888560800151866101400151611f87565b9150915061132b888885600001516040518061016001604052808860200151815260200188604001516001600160a01b0316815260200188606001516001600160a01b031681526020018860a00151815260200188610100015181526020018860c0015181526020018861012001516001600160a01b031681526020018860e001516001600160a01b031681526020018a60010160009054906101000a90046001600160a01b03166001600160a01b031681526020018681526020016000815250866121c9565b60008151600481111561145f5761145f613dd1565b036105ea576000816020015180602001905181019061147e9190614414565b905061148b8686836123ae565b505050505050565b6001603355565b60008051602061487783398151915280546001146114ca5760405162461bcd60e51b815260040161040490613d47565b60028082556000858152600080516020614857833981519152602090815260408083206001600160a01b03881684528252918290208251608081018452815460ff908116151580835260018401549483019490945294820154938101939093526003015490921615156060820152600080516020614837833981519152916115645760405162461bcd60e51b81526004016104049061447c565b60008160200151116115c25760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20636f6c6c61746572616c206e656564656044820152601960fa1b6064820152608401610404565b6115cb846127c2565b9350600080826020015186106115fc576020830151600092506115ee90876144c7565b90508260200151955061160f565b85836020015161160c91906144c7565b91505b600088815260028501602090815260408083206001600160a01b038b168085529083529281902060010185905580518981529182018590528a917f6769a5f9bfc8b6e0db839ab981cbf9239274ae72d2d035081a9157d43bd33cb6910160405180910390a38015611684576116843382611d3b565b505060019092555050505050565b600054610100900460ff166116b95760405162461bcd60e51b815260040161040490613cfc565b6116c384846127eb565b6116cb61282c565b610902828261286a565b600054610100900460ff166116fc5760405162461bcd60e51b815260040161040490613cfc565b60008051602061489783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60408101516001600160a01b031661178f5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20726563697069656e74206164647265736044820152607360f81b6064820152608401610404565b60008160c00151116117b35760405162461bcd60e51b8152600401610404906144da565b60a08101511561071b5760405162461bcd60e51b81526004016104049061451c565b6000858152600080516020614857833981519152602090815260408083206001600160a01b038816845282528083208151608081018352815460ff9081161515808352600184015495830195909552600283015493820193909352600390910154909116151560608201528291600080516020614837833981519152919061186f5760405162461bcd60e51b81526004016104049061447c565b6020810151156118d15760405162461bcd60e51b815260206004820152602760248201527f546f6b656e486f6d653a20636f6c6c61746572616c206e656564656420666f726044820152662072656d6f746560c81b6064820152608401610404565b6118da876127c2565b965084156118f0576118ed8633876129f4565b94505b6000611905826040015183606001518a612b53565b9050600081116119575760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f207363616c656420616d6f756e740000006044820152606401610404565b60008a815260038401602090815260408083206001600160a01b038d1684529091528120805483929061198b90849061455d565b90915550909a95995094975050505050505050565b6000806119ab612b6a565b60408401516020015190915015611a50576040830151516001600160a01b0316611a2d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610404565b604083015160208101519051611a50916001600160a01b03909116908390612c73565b604051630624488560e41b81526001600160a01b03821690636244885090611a7c908690600401614570565b6020604051808303816000875af1158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190613ce3565b9392505050565b60408101516001600160a01b0316611b335760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420636f6e7472616044820152696374206164647265737360b01b6064820152608401610404565b6000816080015111611b575760405162461bcd60e51b8152600401610404906144da565b60008160a0015111611bb75760405162461bcd60e51b815260206004820152602360248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420676173206c696044820152621b5a5d60ea1b6064820152608401610404565b80608001518160a0015110611c1d5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420726563697069656e7420676173604482015265081b1a5b5a5d60d21b6064820152608401610404565b60e08101516001600160a01b0316611c8a5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f2066616c6c6261636b20726563697069656044820152696e74206164647265737360b01b6064820152608401610404565b6101408101511561071b5760405162461bcd60e51b81526004016104049061451c565b6000838152600080516020614857833981519152602090815260408083206001600160a01b038616845282528083208151608081018352815460ff90811615158252600183015494820194909452600282015492810192909252600301549091161515606082015260008051602061483783398151915290611d3181878787612d58565b9695505050505050565b604051818152600080516020614897833981519152906001600160a01b038416907f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b9060200160405180910390a28054610989906001600160a01b03168484612e52565b600080516020614897833981519152805460608401516001600160a01b0390911690611dcd90829085612c73565b600084600001518560200151866040015184878960a00151604051602401611dfa96959493929190614629565b60408051601f198184030181529190526020810180516001600160e01b03166394395edd60e01b17905260c08601516060870151919250600091611e3f919084612e82565b6060870151604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529192506000919085169063dd62ed3e90604401602060405180830381865afa158015611e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebb9190613ce3565b9050611ecd8488606001516000612e91565b8115611f1f5786606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff487604051611f1291815260200190565b60405180910390a2611f67565b86606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb087604051611f5e91815260200190565b60405180910390a25b801561110e5760e087015161110e906001600160a01b0386169083612e52565b6000848152600080516020614857833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff9081161515825260018301549482019490945260028201549281019290925260030154909116151560608201528190600080516020614837833981519152908261200e828a8a8a612d58565b905060006120258360400151846060015189612fa6565b919a91995090975050505050505050565b60008051602061487783398151915280546001146120665760405162461bcd60e51b815260040161040490613d47565b600281556120738361172b565b600061208d84600001518560200151858760800151612fb5565b9050806000036120ab576120a58460e0015184611d3b565b506121c1565b604080518082019091526000908060018152602001604051806040016040528088604001516001600160a01b03168152602001858152506040516020016120f29190613de7565b604051602081830303815290604052815250905060006121816040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a606001516001600160a01b031681526020018a6080015181525081526020018860c00151815260200160006001600160401b03811115610b4057610b40613a55565b9050807f825080857c76cef4a1629c0705a7f8b4ef0282ddcafde0b6715c4fb34b68aaf087856040516121b5929190613e9c565b60405180910390a25050505b600190555050565b60008051602061487783398151915280546001146121f95760405162461bcd60e51b815260040161040490613d47565b6002815561220683611ac6565b60006122218460000151856020015185876101200151612fb5565b90508060000361223f576122398460c0015184611d3b565b506123a3565b6040805180820190915260009080600281526020016040518061010001604052808b81526020018a6001600160a01b03168152602001896001600160a01b0316815260200188604001516001600160a01b03168152602001858152602001886060015181526020018860a0015181526020018860e001516001600160a01b03168152506040516020016122d29190613f1e565b604051602081830303815290604052815250905060006123636040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a61010001516001600160a01b031681526020018a610120015181525081526020018860800151815260200160006001600160401b03811115610b4057610b40613a55565b9050807f42eff9005856e3c586b096d67211a566dc926052119fd7cc08023c70937ecb308785604051612397929190613fbd565b60405180910390a25050505b600190555050505050565b600080516020614837833981519152836124165760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a207a65726f2072656d6f746520626c6f636b636861696044820152631b88125160e21b6064820152608401610404565b8054840361247e5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e486f6d653a2063616e6e6f742072656769737465722072656d6f7460448201526e329037b71039b0b6b29031b430b4b760891b6064820152608401610404565b6001600160a01b0383166124ed5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e486f6d653a207a65726f2072656d6f746520746f6b656e2074726160448201526f6e73666572726572206164647265737360801b6064820152608401610404565b600084815260028201602090815260408083206001600160a01b038716845290915290205460ff161561256e5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f746520616c726561647920726567697374604482015263195c995960e21b6064820152608401610404565b6012826040015160ff1611156125d85760405162461bcd60e51b815260206004820152602960248201527f546f6b656e486f6d653a2072656d6f746520746f6b656e20646563696d616c73604482015268040e8dede40d0d2ced60bb1b6064820152608401610404565b6001810154602083015160ff908116600160a01b909204161461264c5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420686f6d6520746f6b656e20646560448201526563696d616c7360d01b6064820152608401610404565b60008061266e8360010160149054906101000a900460ff16856040015161312f565b91509150600061268383838760000151612fa6565b905081801561269d5750845161269a908490614680565b15155b156126b0576126ad60018261455d565b90505b60405180608001604052806001151581526020018281526020018481526020018315158152508460020160008981526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050856001600160a01b0316877ff229b02a51a4c8d5ef03a096ae0dd727d7b48b710d21b50ebebb560eef739b908388604001516040516127b192919091825260ff16602082015260400190565b60405180910390a350505050505050565b600080516020614897833981519152805460009190611abf906001600160a01b031633856129f4565b600054610100900460ff166128125760405162461bcd60e51b815260040161040490613cfc565b61281b82613178565b6128236132a6565b61070681610908565b600054610100900460ff166128535760405162461bcd60e51b815260040161040490613cfc565b61075a600160008051602061487783398151915255565b600054610100900460ff166128915760405162461bcd60e51b815260040161040490613cfc565b6001600160a01b0382166128e75760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f20746f6b656e20616464726573730000006044820152606401610404565b60128160ff1611156129465760405162461bcd60e51b815260206004820152602260248201527f546f6b656e486f6d653a20746f6b656e20646563696d616c7320746f6f2068696044820152610ced60f31b6064820152608401610404565b600060008051602061483783398151915290506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561299e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c29190613ce3565b8155600101805460ff909216600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa158015612a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a619190613ce3565b9050612a786001600160a01b0386168530866132d5565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae39190613ce3565b9050818111612b495760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610404565b611d3182826144c7565b6000612b62848484600161330d565b949350505050565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be49190614694565b9050612c08816001600160a01b031660009081526066602052604090205460ff1690565b15612c6e5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610404565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce89190613ce3565b612cf2919061455d565b6040516001600160a01b03851660248201526044810182905290915061090290859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613335565b8351600090612d795760405162461bcd60e51b81526004016104049061447c565b602085015115612dd75760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f7465206e6f7420636f6c6c61746572616c6044820152631a5e995960e21b6064820152608401610404565b612de2848484613407565b6000612df78660400151876060015185612fa6565b905060008111612e495760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e486f6d653a207a65726f20746f6b656e20616d6f756e74000000006044820152606401610404565b95945050505050565b6040516001600160a01b03831660248201526044810182905261098990849063a9059cbb60e01b90606401612d21565b6000612b6284600085856134f7565b801580612f0b5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f099190613ce3565b155b612f765760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610404565b6040516001600160a01b03831660248201526044810182905261098990849063095ea7b360e01b90606401612d21565b6000612b62848484600061330d565b6000848152600080516020614857833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff908116158015835260018401549583019590955260028301549382019390935260039091015490911615156060820152600080516020614837833981519152918061303f575060008160200151115b1561304f57600092505050612b62565b8385116130b35760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e486f6d653a20696e73756666696369656e7420616d6f756e74207460448201526b6f20636f766572206665657360a01b6064820152608401610404565b6130bd84866144c7565b945060006130d48260400151836060015188612b53565b9050806000036130ea5760009350505050612b62565b600088815260038401602090815260408083206001600160a01b038b1684529091528120805483929061311e90849061455d565b909155509098975050505050505050565b60008060ff8085169084161181816131535761314b85876146b1565b60ff16613161565b61315d86866146b1565b60ff165b61316c90600a6147ae565b96919550909350505050565b600054610100900460ff1661319f5760405162461bcd60e51b815260040161040490613cfc565b6131a76135cc565b6001600160a01b0381166132235760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f7274657220726567697374727920616464726573730000000000000000006064820152608401610404565b606580546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa15801561327c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a09190613ce3565b60675550565b600054610100900460ff166132cd5760405162461bcd60e51b815260040161040490613cfc565b61075a6135fb565b6040516001600160a01b03808516602483015283166044820152606481018290526109029085906323b872dd60e01b90608401612d21565b60008115158415150361332b5761332485846147ba565b9050612b62565b612e4985846147d1565b600061338a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661362b9092919063ffffffff16565b80519091501561098957808060200190518101906133a891906147e5565b6109895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610404565b60008381527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b038616845290915290205460008051602061483783398151915290828110156134c05760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e486f6d653a20696e73756666696369656e7420746f6b656e20747260448201526d616e736665722062616c616e636560901b6064820152608401610404565b6134ca83826144c7565b60009586526003909201602090815260408087206001600160a01b03909616875294905250919092205550565b6000845a10156135495760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e742067617300000000006044820152606401610404565b834710156135995760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c75650000006044820152606401610404565b826001600160a01b03163b6000036135b357506000612b62565b600080600084516020860188888bf19695505050505050565b600054610100900460ff166135f35760405162461bcd60e51b815260040161040490613cfc565b61075a61363a565b600054610100900460ff166136225760405162461bcd60e51b815260040161040490613cfc565b61075a33610fe1565b6060612b628484600085613661565b600054610100900460ff166114935760405162461bcd60e51b815260040161040490613cfc565b6060824710156136c25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610404565b600080866001600160a01b031685876040516136de9190614807565b60006040518083038185875af1925050503d806000811461371b576040519150601f19603f3d011682016040523d82523d6000602084013e613720565b606091505b50915091506137318783838761373c565b979650505050505050565b606083156137ab5782516000036137a4576001600160a01b0385163b6137a45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610404565b5081612b62565b612b6283838151156137c05781518083602001fd5b8060405162461bcd60e51b81526004016104049190614823565b6001600160a01b038116811461071b57600080fd5b8035612c6e816137da565b6000806040838503121561380d57600080fd5b82359150602083013561381f816137da565b809150509250929050565b60006020828403121561383c57600080fd5b8135611abf816137da565b60ff8116811461071b57600080fd5b6000806000806080858703121561386c57600080fd5b8435613877816137da565b93506020850135613887816137da565b92506040850135613897816137da565b915060608501356138a781613847565b939692955090935050565b6000808284036101208112156138c757600080fd5b610100808212156138d757600080fd5b9395938601359450505050565b6000602082840312156138f657600080fd5b5035919050565b6000806040838503121561391057600080fd5b82356001600160401b0381111561392657600080fd5b8301610160818603121561393957600080fd5b946020939093013593505050565b6000806000806060858703121561395d57600080fd5b84359350602085013561396f816137da565b925060408501356001600160401b038082111561398b57600080fd5b818701915087601f83011261399f57600080fd5b8135818111156139ae57600080fd5b8860208285010111156139c057600080fd5b95989497505060200194505050565b6000806000606084860312156139e457600080fd5b8335925060208401356139f6816137da565b929592945050506040919091013590565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715613a8e57613a8e613a55565b60405290565b60405161016081016001600160401b0381118282101715613a8e57613a8e613a55565b604080519081016001600160401b0381118282101715613a8e57613a8e613a55565b604051601f8201601f191681016001600160401b0381118282101715613b0157613b01613a55565b604052919050565b60006101008284031215613b1c57600080fd5b613b24613a6b565b823581526020830135613b36816137da565b60208201526040830135613b49816137da565b6040820152613b5a606084016137ef565b60608201526080830135608082015260a083013560a082015260c083013560c0820152613b8960e084016137ef565b60e08201529392505050565b60006001600160401b03821115613bae57613bae613a55565b50601f01601f191660200190565b600082601f830112613bcd57600080fd5b8135613be0613bdb82613b95565b613ad9565b818152846020838601011115613bf557600080fd5b816020850160208301376000918101602001919091529392505050565b60006101608236031215613c2557600080fd5b613c2d613a94565b82358152613c3d602084016137ef565b6020820152613c4e604084016137ef565b604082015260608301356001600160401b03811115613c6c57600080fd5b613c7836828601613bbc565b6060830152506080830135608082015260a083013560a0820152613c9e60c084016137ef565b60c0820152613caf60e084016137ef565b60e0820152610100613cc28185016137ef565b90820152610120838101359082015261014092830135928101929092525090565b600060208284031215613cf557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b60208082526026908201527f546f6b656e486f6d653a206e6f6e2d7a65726f206d756c74692d686f702066616040820152656c6c6261636b60d01b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b81516001600160a01b0316815260208083015190820152604081016103d0565b60005b83811015613e22578181015183820152602001613e0a565b50506000910152565b60008151808452613e43816020860160208601613e07565b601f01601f19169290920160200192915050565b602081526000825160058110613e7d57634e487b7160e01b600052602160045260246000fd5b806020840152506020830151604080840152612b626060840182613e2b565b60006101208201905083518252602084015160018060a01b03808216602085015280604087015116604085015280606087015116606085015250506080840151608083015260a084015160a083015260c084015160c083015260e0840151613f0f60e08401826001600160a01b03169052565b50826101008301529392505050565b60208152815160208201526000602083015160018060a01b03808216604085015280604086015116606085015250506060830151613f6760808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c0850152613f8e610120850183613e2b565b915060c085015160e085015260e0850151613fb3828601826001600160a01b03169052565b5090949350505050565b604081528251604082015260006020840151613fe460608401826001600160a01b03169052565b5060408401516001600160a01b03166080830152606084015161016060a084018190526140156101a0850183613e2b565b9150608086015160c085015260a086015160e085015260c0860151610100614047818701836001600160a01b03169052565b60e08801519150610120614065818801846001600160a01b03169052565b90880151915061014090614083878301846001600160a01b03169052565b880151928601929092525090940151610180830152506020015290565b600082601f8301126140b157600080fd5b81516140bf613bdb82613b95565b8181528460208386010111156140d457600080fd5b612b62826020830160208701613e07565b6000602082840312156140f757600080fd5b81516001600160401b038082111561410e57600080fd5b908301906040828603121561412257600080fd5b61412a613ab7565b82516005811061413957600080fd5b815260208301518281111561414d57600080fd5b614159878286016140a0565b60208301525095945050505050565b8051612c6e816137da565b60006040828403121561418557600080fd5b61418d613ab7565b8251614198816137da565b81526020928301519281019290925250919050565b6000602082840312156141bf57600080fd5b81516001600160401b03808211156141d657600080fd5b9083019061010082860312156141eb57600080fd5b6141f3613a6b565b8251815261420360208401614168565b602082015261421460408401614168565b604082015261422560608401614168565b60608201526080830151608082015260a08301518281111561424657600080fd5b614252878286016140a0565b60a08301525060c083015160c082015261426e60e08401614168565b60e082015295945050505050565b600060e0828403121561428e57600080fd5b60405160e081018181106001600160401b03821117156142b0576142b0613a55565b6040528251815260208301516142c5816137da565b602082015260408301516142d8816137da565b80604083015250606083015160608201526080830151608082015260a083015160a082015260c083015161430b816137da565b60c08201529392505050565b60006020828403121561432957600080fd5b81516001600160401b038082111561434057600080fd5b90830190610160828603121561435557600080fd5b61435d613a94565b61436683614168565b81526020830151602082015261437e60408401614168565b604082015261438f60608401614168565b60608201526080830151608082015260a0830151828111156143b057600080fd5b6143bc878286016140a0565b60a08301525060c083015160c08201526143d860e08401614168565b60e0820152610100838101519082015261012091506143f8828401614168565b9181019190915261014091820151918101919091529392505050565b60006060828403121561442657600080fd5b604051606081018181106001600160401b038211171561444857614448613a55565b60405282518152602083015161445d81613847565b6020820152604083015161447081613847565b60408201529392505050565b6020808252818101527f546f6b656e486f6d653a2072656d6f7465206e6f742072656769737465726564604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156103d0576103d06144b1565b60208082526022908201527f546f6b656e486f6d653a207a65726f20726571756972656420676173206c696d6040820152611a5d60f21b606082015260800190565b60208082526021908201527f546f6b656e486f6d653a206e6f6e2d7a65726f207365636f6e646172792066656040820152606560f81b606082015260800190565b808201808211156103d0576103d06144b1565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b808410156145ff578451831682529385019360019390930192908501906145dd565b5060a0880151878203601f190160e0890152945061461d8186613e2b565b98975050505050505050565b8681526001600160a01b0386811660208301528581166040830152841660608201526080810183905260c060a0820181905260009061461d90830184613e2b565b634e487b7160e01b600052601260045260246000fd5b60008261468f5761468f61466a565b500690565b6000602082840312156146a657600080fd5b8151611abf816137da565b60ff82811682821603908111156103d0576103d06144b1565b600181815b808511156147055781600019048211156146eb576146eb6144b1565b808516156146f857918102915b93841c93908002906146cf565b509250929050565b60008261471c575060016103d0565b81614729575060006103d0565b816001811461473f576002811461474957614765565b60019150506103d0565b60ff84111561475a5761475a6144b1565b50506001821b6103d0565b5060208310610133831016604e8410600b8410161715614788575081810a6103d0565b61479283836146ca565b80600019048211156147a6576147a66144b1565b029392505050565b6000611abf838361470d565b80820281158282048414176103d0576103d06144b1565b6000826147e0576147e061466a565b500490565b6000602082840312156147f757600080fd5b81518015158114611abf57600080fd5b60008251614819818460208701613e07565b9190910192915050565b602081526000611abf6020830184613e2b56fe9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e6009316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e602d2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c7500914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29500a2646970667358221220b0126ce9b823f9e3c746ec33f88d4ece9c47a810863a5d798b0d92a371ab3b7664736f6c63430008120033", } // ERC20TokenHomeABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/TokenHome/NativeTokenHome/NativeTokenHome.go b/abi-bindings/go/TokenHome/NativeTokenHome/NativeTokenHome.go index 248bc9ac..6059f38d 100644 --- a/abi-bindings/go/TokenHome/NativeTokenHome/NativeTokenHome.go +++ b/abi-bindings/go/TokenHome/NativeTokenHome/NativeTokenHome.go @@ -66,8 +66,8 @@ type SendTokensInput struct { // NativeTokenHomeMetaData contains all meta data concerning the NativeTokenHome contract. var NativeTokenHomeMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"addCollateral\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"getBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRemoteTokenTransferrerSettings\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structRemoteTokenTransferrerSettings\",\"components\":[{\"name\":\"registered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"collateralNeeded\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenMultiplier\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiplyOnRemote\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTransferredBalance\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"teleporterRegistryAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"teleporterManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"wrappedTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"send\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"sendAndCall\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"teleporterRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTeleporterRegistry\"}],\"stateMutability\":\"view\"},{\"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\":\"CallFailed\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CallSucceeded\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CollateralAdded\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"remaining\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"RemoteRegistered\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"initialCollateralNeeded\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"tokenDecimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"event\",\"name\":\"TokensAndCallRouted\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensAndCallSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensRouted\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b50614b1c806100206000396000f3fe60806040526004361061010d5760003560e01c80638bf2fa9411610095578063c0c53b8b11610064578063c0c53b8b1461038a578063c8511ada146103aa578063c868efaa1461048d578063d2cc7a70146104ad578063f2fde38b146104c257600080fd5b80638bf2fa94146102fd5780638da5cb5b14610310578063973142971461032e578063b0b78b261461037757600080fd5b80634213cf78116100dc5780634213cf78146102735780634511243e146102955780635eb99514146102b55780636e6eef8d146102d5578063715018a6146102e857600080fd5b806310fe9ae8146101af578063154d625a146102055780631a7f5bec146102335780632b0d8f181461025357600080fd5b366101aa577f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e601546001600160a01b031633146101a85760405162461bcd60e51b815260206004820152602f60248201527f4e6174697665546f6b656e486f6d653a20696e76616c6964207265636569766560448201526e103830bcb0b136329039b2b73232b960891b60648201526084015b60405180910390fd5b005b600080fd5b3480156101bb57600080fd5b507f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e601546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021157600080fd5b50610225610220366004613aac565b6104e2565b6040519081526020016101fc565b34801561023f57600080fd5b506065546101e8906001600160a01b031681565b34801561025f57600080fd5b506101a861026e366004613adc565b61052b565b34801561027f57600080fd5b50600080516020614a6783398151915254610225565b3480156102a157600080fd5b506101a86102b0366004613adc565b610624565b3480156102c157600080fd5b506101a86102d0366004613af9565b610721565b6101a86102e3366004613b12565b610735565b3480156102f457600080fd5b506101a861075f565b6101a861030b366004613b4d565b610773565b34801561031c57600080fd5b506068546001600160a01b03166101e8565b34801561033a57600080fd5b50610367610349366004613adc565b6001600160a01b031660009081526066602052604090205460ff1690565b60405190151581526020016101fc565b6101a8610385366004613aac565b61078b565b34801561039657600080fd5b506101a86103a5366004613b66565b61079a565b3480156103b657600080fd5b506104566103c5366004613aac565b6040805160808082018352600080835260208084018290528385018290526060938401829052958152600080516020614aa783398151915286528381206001600160a01b039590951681529385529282902082519384018352805460ff9081161515855260018201549585019590955260028101549284019290925260039091015490921615159181019190915290565b6040516101fc9190815115158152602080830151908201526040808301519082015260609182015115159181019190915260800190565b34801561049957600080fd5b506101a86104a8366004613bb1565b6108b1565b3480156104b957600080fd5b50606754610225565b3480156104ce57600080fd5b506101a86104dd366004613adc565b610a57565b60008281527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b03851684529091529020545b92915050565b610533610acd565b6001600160a01b0381166105595760405162461bcd60e51b815260040161019f90613c39565b6001600160a01b03811660009081526066602052604090205460ff16156105d85760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b606482015260840161019f565b6001600160a01b038116600081815260666020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b61062c610acd565b6001600160a01b0381166106525760405162461bcd60e51b815260040161019f90613c39565b6001600160a01b03811660009081526066602052604090205460ff166106cc5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b606482015260840161019f565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152606660205260409020805460ff19169055565b610729610acd565b61073281610ad5565b50565b61073261074e600080516020614a678339815191525490565b303361075985613db8565b34610c5f565b610767610ec9565b6107716000610f23565b565b61073261078536839003830183613e89565b34610f75565b610796828234611136565b5050565b600054610100900460ff16158080156107ba5750600054600160ff909116105b806107d45750303b1580156107d4575060005460ff166001145b6108375760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161019f565b6000805460ff19166001179055801561085a576000805461ff0019166101001790555b61086584848461132e565b80156108ab576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6108b9611370565b6067546065546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610912573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109369190613f15565b101561099d5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b606482015260840161019f565b6109a633610349565b15610a0c5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b606482015260840161019f565b610a4d848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113c992505050565b6108ab6001603355565b610a5f610ec9565b6001600160a01b038116610ac45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161019f565b61073281610f23565b610771610ec9565b6065546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015610b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b439190613f15565b60675490915081831115610bb35760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b606482015260840161019f565b808311610c285760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e00606482015260840161019f565b6067839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b600080516020614ac78339815191528054600114610c8f5760405162461bcd60e51b815260040161019f90613f2e565b60028155610c9c836117d8565b60c08301516001600160a01b031615610cc75760405162461bcd60e51b815260040161019f90613f72565b600080610ce985600001518660200151868861010001518961012001516119bf565b915091506000604051806040016040528060026004811115610d0d57610d0d613fb8565b81526020016040518061010001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200189604001516001600160a01b03168152602001868152602001896060015181526020018960a0015181526020018960e001516001600160a01b0316815250604051602001610d90919061401e565b60405160208183030381529060405281525090506000610e736040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b61010001516001600160a01b031681526020018781525081526020018960800151815260200160006001600160401b03811115610e1c57610e1c613c87565b604051908082528060200260200182016040528015610e45578160200160208202803683370190505b50815260200184604051602001610e5c91906140bd565b604051602081830303815290604052815250611b8a565b9050876001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168987604051610eb1929190614102565b60405180910390a35050600190925550505050505050565b6068546001600160a01b031633146107715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161019f565b606880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080516020614ac78339815191528054600114610fa55760405162461bcd60e51b815260040161019f90613f2e565b60028155610fb283611cb0565b60e08301516001600160a01b031615610fdd5760405162461bcd60e51b815260040161019f90613f72565b600080610ffd8560000151866020015186886060015189608001516119bf565b91509150600060405180604001604052806001600481111561102157611021613fb8565b8152602001604051806040016040528089604001516001600160a01b031681526020018681525060405160200161105891906141e5565b604051602081830303815290604052815250905060006110e36040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b606001516001600160a01b031681526020018781525081526020018960c00151815260200160006001600160401b03811115610e1c57610e1c613c87565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528987604051611121929190614205565b60405180910390a35050600190925550505050565b600080516020614ac783398151915280546001146111665760405162461bcd60e51b815260040161019f90613f2e565b60028082556000858152600080516020614aa7833981519152602090815260408083206001600160a01b03881684528252918290208251608081018452815460ff908116151580835260018401549483019490945294820154938101939093526003015490921615156060820152600080516020614a67833981519152916112005760405162461bcd60e51b815260040161019f90614287565b600081602001511161125e5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20636f6c6c61746572616c206e656564656044820152601960fa1b606482015260840161019f565b61126784611d5a565b9350600080826020015186106112985760208301516000925061128a90876142d2565b9050826020015195506112ab565b8583602001516112a891906142d2565b91505b600088815260028501602090815260408083206001600160a01b038b168085529083529281902060010185905580518981529182018590528a917f6769a5f9bfc8b6e0db839ab981cbf9239274ae72d2d035081a9157d43bd33cb6910160405180910390a38015611320576113203382611d82565b505060019092555050505050565b600054610100900460ff166113555760405162461bcd60e51b815260040161019f906142e5565b6113628383836012611e41565b61136b81611e84565b505050565b6002603354036113c25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161019f565b6002603355565b6000600080516020614a6783398151915290506000828060200190518101906113f29190614375565b905060018151600481111561140957611409613fb8565b0361145457600081602001518060200190518101906114289190614403565b9050600061143b87878460200151611eda565b905061144b826000015182611d82565b50505050505050565b60028151600481111561146957611469613fb8565b036115845760008160200151806020019051810190611488919061443d565b9050600061149b87878460800151611eda565b825190915087146115015760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a206d69736d61746368656420736f7572636520626c6f60448201526918dad8da185a5b88125160b21b606482015260840161019f565b856001600160a01b031682602001516001600160a01b03161461157a5760405162461bcd60e51b815260206004820152602b60248201527f546f6b656e486f6d653a206d69736d617463686564206f726967696e2073656e60448201526a646572206164647265737360a81b606482015260840161019f565b61144b8282611f68565b60038151600481111561159957611599613fb8565b0361167257600081602001518060200190518101906115b8919061450c565b90506000806115d18888856060015186608001516120f7565b915091506116686040518061010001604052808560000151815260200185602001516001600160a01b0316815260200185604001516001600160a01b031681526020018760010160009054906101000a90046001600160a01b03166001600160a01b03168152602001838152602001600081526020018560a0015181526020018560c001516001600160a01b0316815250836121a6565b5050505050505050565b60048151600481111561168757611687613fb8565b0361178757600081602001518060200190518101906116a691906145a7565b90506000806116c0888885608001518661014001516120f7565b91509150611668888885600001516040518061016001604052808860200151815260200188604001516001600160a01b0316815260200188606001516001600160a01b031681526020018860a00151815260200188610100015181526020018860c0015181526020018861012001516001600160a01b031681526020018860e001516001600160a01b031681526020018a60010160009054906101000a90046001600160a01b03166001600160a01b03168152602001868152602001600081525086612339565b60008151600481111561179c5761179c613fb8565b036117ca57600081602001518060200190518101906117bb91906146b5565b90506117c886868361251e565b505b5050505050565b6001603355565b60408101516001600160a01b03166118455760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420636f6e7472616044820152696374206164647265737360b01b606482015260840161019f565b60008160800151116118695760405162461bcd60e51b815260040161019f90614719565b60008160a00151116118c95760405162461bcd60e51b815260206004820152602360248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420676173206c696044820152621b5a5d60ea1b606482015260840161019f565b80608001518160a001511061192f5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420726563697069656e7420676173604482015265081b1a5b5a5d60d21b606482015260840161019f565b60e08101516001600160a01b031661199c5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f2066616c6c6261636b20726563697069656044820152696e74206164647265737360b01b606482015260840161019f565b610140810151156107325760405162461bcd60e51b815260040161019f9061475b565b6000858152600080516020614aa7833981519152602090815260408083206001600160a01b038816845282528083208151608081018352815460ff9081161515808352600184015495830195909552600283015493820193909352600390910154909116151560608201528291600080516020614a678339815191529190611a595760405162461bcd60e51b815260040161019f90614287565b602081015115611abb5760405162461bcd60e51b815260206004820152602760248201527f546f6b656e486f6d653a20636f6c6c61746572616c206e656564656420666f726044820152662072656d6f746560c81b606482015260840161019f565b611ac487611d5a565b96508415611ada57611ad7863387612932565b94505b6000611aef826040015183606001518a612a91565b905060008111611b415760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f207363616c656420616d6f756e74000000604482015260640161019f565b60008a815260038401602090815260408083206001600160a01b038d16845290915281208054839290611b7590849061479c565b90915550909a95995094975050505050505050565b600080611b95612aa8565b60408401516020015190915015611c3a576040830151516001600160a01b0316611c175760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b606482015260840161019f565b604083015160208101519051611c3a916001600160a01b03909116908390612bb1565b604051630624488560e41b81526001600160a01b03821690636244885090611c669086906004016147af565b6020604051808303816000875af1158015611c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca99190613f15565b9392505050565b60408101516001600160a01b0316611d145760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20726563697069656e74206164647265736044820152607360f81b606482015260840161019f565b60008160c0015111611d385760405162461bcd60e51b815260040161019f90614719565b60a0810151156107325760405162461bcd60e51b815260040161019f9061475b565b600080516020614a87833981519152805460009190611ca9906001600160a01b031684612c96565b604051818152600080516020614a87833981519152906001600160a01b038416907f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b9060200160405180910390a28054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b5061136b925050506001600160a01b03841683612e45565b600054610100900460ff16611e685760405162461bcd60e51b815260040161019f906142e5565b611e728484612f5e565b611e7a612f9f565b6108ab8282612fdd565b600054610100900460ff16611eab5760405162461bcd60e51b815260040161019f906142e5565b600080516020614a8783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6000838152600080516020614aa7833981519152602090815260408083206001600160a01b038616845282528083208151608081018352815460ff908116151582526001830154948201949094526002820154928101929092526003015490911615156060820152600080516020614a6783398151915290611f5e81878787613167565b9695505050505050565b6000600080516020614a878339815191528054604051632e1a7d4d60e01b8152600481018590529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b50508451602086015160408088015160a0890151915160009650611ffd9550909190602401614868565b60408051601f198184030181529190526020810180516001600160e01b031663161b12ff60e11b17905260c085015160608601519192506000916120449190869085613258565b905080156120985784606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff48560405161208b91815260200190565b60405180910390a26117ca565b84606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb0856040516120d791815260200190565b60405180910390a260e08501516117ca906001600160a01b031685612e45565b6000848152600080516020614aa7833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff9081161515825260018301549482019490945260028201549281019290925260030154909116151560608201528190600080516020614a67833981519152908261217e828a8a8a613167565b90506000612195836040015184606001518961332d565b919a91995090975050505050505050565b600080516020614ac783398151915280546001146121d65760405162461bcd60e51b815260040161019f90613f2e565b600281556121e383611cb0565b60006121fd8460000151856020015185876080015161333c565b90508060000361221b576122158460e0015184611d82565b50612331565b604080518082019091526000908060018152602001604051806040016040528088604001516001600160a01b031681526020018581525060405160200161226291906141e5565b604051602081830303815290604052815250905060006122f16040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a606001516001600160a01b031681526020018a6080015181525081526020018860c00151815260200160006001600160401b03811115610e1c57610e1c613c87565b9050807f825080857c76cef4a1629c0705a7f8b4ef0282ddcafde0b6715c4fb34b68aaf08785604051612325929190614205565b60405180910390a25050505b600190555050565b600080516020614ac783398151915280546001146123695760405162461bcd60e51b815260040161019f90613f2e565b60028155612376836117d8565b6000612391846000015185602001518587610120015161333c565b9050806000036123af576123a98460c0015184611d82565b50612513565b6040805180820190915260009080600281526020016040518061010001604052808b81526020018a6001600160a01b03168152602001896001600160a01b0316815260200188604001516001600160a01b03168152602001858152602001886060015181526020018860a0015181526020018860e001516001600160a01b0316815250604051602001612442919061401e565b604051602081830303815290604052815250905060006124d36040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a61010001516001600160a01b031681526020018a610120015181525081526020018860800151815260200160006001600160401b03811115610e1c57610e1c613c87565b9050807f42eff9005856e3c586b096d67211a566dc926052119fd7cc08023c70937ecb308785604051612507929190614102565b60405180910390a25050505b600190555050505050565b600080516020614a67833981519152836125865760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a207a65726f2072656d6f746520626c6f636b636861696044820152631b88125160e21b606482015260840161019f565b805484036125ee5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e486f6d653a2063616e6e6f742072656769737465722072656d6f7460448201526e329037b71039b0b6b29031b430b4b760891b606482015260840161019f565b6001600160a01b03831661265d5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e486f6d653a207a65726f2072656d6f746520746f6b656e2074726160448201526f6e73666572726572206164647265737360801b606482015260840161019f565b600084815260028201602090815260408083206001600160a01b038716845290915290205460ff16156126de5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f746520616c726561647920726567697374604482015263195c995960e21b606482015260840161019f565b6012826040015160ff1611156127485760405162461bcd60e51b815260206004820152602960248201527f546f6b656e486f6d653a2072656d6f746520746f6b656e20646563696d616c73604482015268040e8dede40d0d2ced60bb1b606482015260840161019f565b6001810154602083015160ff908116600160a01b90920416146127bc5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420686f6d6520746f6b656e20646560448201526563696d616c7360d01b606482015260840161019f565b6000806127de8360010160149054906101000a900460ff1685604001516134b6565b9150915060006127f38383876000015161332d565b905081801561280d5750845161280a9084906148b0565b15155b156128205761281d60018261479c565b90505b60405180608001604052806001151581526020018281526020018481526020018315158152508460020160008981526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050856001600160a01b0316877ff229b02a51a4c8d5ef03a096ae0dd727d7b48b710d21b50ebebb560eef739b9083886040015160405161292192919091825260ff16602082015260400190565b60405180910390a350505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa15801561297b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299f9190613f15565b90506129b66001600160a01b0386168530866134ff565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa1580156129fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a219190613f15565b9050818111612a875760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b606482015260840161019f565b611f5e82826142d2565b6000612aa08484846001613537565b949350505050565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2291906148c4565b9050612b46816001600160a01b031660009081526066602052604090205460ff1690565b15612bac5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b606482015260840161019f565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c269190613f15565b612c30919061479c565b6040516001600160a01b0385166024820152604481018290529091506108ab90859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261355f565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa158015612cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d039190613f15565b9050836001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d4057600080fd5b505af1158015612d54573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093506001600160a01b03881692506370a082319150602401602060405180830381865afa158015612da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc49190613f15565b9050818111612e325760405162461bcd60e51b815260206004820152603460248201527f53616665577261707065644e6174697665546f6b656e4465706f7369743a2062604482015273185b185b98d9481b9bdd081a5b98dc99585cd95960621b606482015260840161019f565b612e3c82826142d2565b95945050505050565b80471015612e955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161019f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612ee2576040519150601f19603f3d011682016040523d82523d6000602084013e612ee7565b606091505b505090508061136b5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161019f565b600054610100900460ff16612f855760405162461bcd60e51b815260040161019f906142e5565b612f8e82613631565b612f9661375f565b61079681610a57565b600054610100900460ff16612fc65760405162461bcd60e51b815260040161019f906142e5565b6107716001600080516020614ac783398151915255565b600054610100900460ff166130045760405162461bcd60e51b815260040161019f906142e5565b6001600160a01b03821661305a5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f20746f6b656e2061646472657373000000604482015260640161019f565b60128160ff1611156130b95760405162461bcd60e51b815260206004820152602260248201527f546f6b656e486f6d653a20746f6b656e20646563696d616c7320746f6f2068696044820152610ced60f31b606482015260840161019f565b6000600080516020614a6783398151915290506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015613111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131359190613f15565b8155600101805460ff909216600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b83516000906131885760405162461bcd60e51b815260040161019f90614287565b6020850151156131e65760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f7465206e6f7420636f6c6c61746572616c6044820152631a5e995960e21b606482015260840161019f565b6131f184848461378e565b6000613206866040015187606001518561332d565b905060008111612e3c5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e486f6d653a207a65726f20746f6b656e20616d6f756e7400000000604482015260640161019f565b6000845a10156132aa5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e74206761730000000000604482015260640161019f565b834710156132fa5760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c7565000000604482015260640161019f565b826001600160a01b03163b60000361331457506000612aa0565b600080600084516020860188888bf19695505050505050565b6000612aa08484846000613537565b6000848152600080516020614aa7833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff908116158015835260018401549583019590955260028301549382019390935260039091015490911615156060820152600080516020614a6783398151915291806133c6575060008160200151115b156133d657600092505050612aa0565b83851161343a5760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e486f6d653a20696e73756666696369656e7420616d6f756e74207460448201526b6f20636f766572206665657360a01b606482015260840161019f565b61344484866142d2565b9450600061345b8260400151836060015188612a91565b9050806000036134715760009350505050612aa0565b600088815260038401602090815260408083206001600160a01b038b168452909152812080548392906134a590849061479c565b909155509098975050505050505050565b60008060ff8085169084161181816134da576134d285876148e1565b60ff166134e8565b6134e486866148e1565b60ff165b6134f390600a6149de565b96919550909350505050565b6040516001600160a01b03808516602483015283166044820152606481018290526108ab9085906323b872dd60e01b90608401612c5f565b6000811515841515036135555761354e85846149ea565b9050612aa0565b612e3c8584614a01565b60006135b4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661387e9092919063ffffffff16565b80519091501561136b57808060200190518101906135d29190614a15565b61136b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161019f565b600054610100900460ff166136585760405162461bcd60e51b815260040161019f906142e5565b61366061388d565b6001600160a01b0381166136dc5760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f727465722072656769737472792061646472657373000000000000000000606482015260840161019f565b606580546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa158015613735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137599190613f15565b60675550565b600054610100900460ff166137865760405162461bcd60e51b815260040161019f906142e5565b6107716138bc565b60008381527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b0386168452909152902054600080516020614a6783398151915290828110156138475760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e486f6d653a20696e73756666696369656e7420746f6b656e20747260448201526d616e736665722062616c616e636560901b606482015260840161019f565b61385183826142d2565b60009586526003909201602090815260408087206001600160a01b03909616875294905250919092205550565b6060612aa084846000856138ec565b600054610100900460ff166138b45760405162461bcd60e51b815260040161019f906142e5565b6107716139c7565b600054610100900460ff166138e35760405162461bcd60e51b815260040161019f906142e5565b61077133610f23565b60608247101561394d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161019f565b600080866001600160a01b031685876040516139699190614a37565b60006040518083038185875af1925050503d80600081146139a6576040519150601f19603f3d011682016040523d82523d6000602084013e6139ab565b606091505b50915091506139bc878383876139ee565b979650505050505050565b600054610100900460ff166117d15760405162461bcd60e51b815260040161019f906142e5565b60608315613a5d578251600003613a56576001600160a01b0385163b613a565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161019f565b5081612aa0565b612aa08383815115613a725781518083602001fd5b8060405162461bcd60e51b815260040161019f9190614a53565b6001600160a01b038116811461073257600080fd5b8035612bac81613a8c565b60008060408385031215613abf57600080fd5b823591506020830135613ad181613a8c565b809150509250929050565b600060208284031215613aee57600080fd5b8135611ca981613a8c565b600060208284031215613b0b57600080fd5b5035919050565b600060208284031215613b2457600080fd5b81356001600160401b03811115613b3a57600080fd5b82016101608185031215611ca957600080fd5b60006101008284031215613b6057600080fd5b50919050565b600080600060608486031215613b7b57600080fd5b8335613b8681613a8c565b92506020840135613b9681613a8c565b91506040840135613ba681613a8c565b809150509250925092565b60008060008060608587031215613bc757600080fd5b843593506020850135613bd981613a8c565b925060408501356001600160401b0380821115613bf557600080fd5b818701915087601f830112613c0957600080fd5b813581811115613c1857600080fd5b886020828501011115613c2a57600080fd5b95989497505060200194505050565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715613cc057613cc0613c87565b60405290565b60405161010081016001600160401b0381118282101715613cc057613cc0613c87565b604080519081016001600160401b0381118282101715613cc057613cc0613c87565b604051601f8201601f191681016001600160401b0381118282101715613d3357613d33613c87565b604052919050565b60006001600160401b03821115613d5457613d54613c87565b50601f01601f191660200190565b600082601f830112613d7357600080fd5b8135613d86613d8182613d3b565b613d0b565b818152846020838601011115613d9b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006101608236031215613dcb57600080fd5b613dd3613c9d565b82358152613de360208401613aa1565b6020820152613df460408401613aa1565b604082015260608301356001600160401b03811115613e1257600080fd5b613e1e36828601613d62565b6060830152506080830135608082015260a083013560a0820152613e4460c08401613aa1565b60c0820152613e5560e08401613aa1565b60e0820152610100613e68818501613aa1565b90820152610120838101359082015261014092830135928101929092525090565b60006101008284031215613e9c57600080fd5b613ea4613cc6565b823581526020830135613eb681613a8c565b60208201526040830135613ec981613a8c565b6040820152613eda60608401613aa1565b60608201526080830135608082015260a083013560a082015260c083013560c0820152613f0960e08401613aa1565b60e08201529392505050565b600060208284031215613f2757600080fd5b5051919050565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b60208082526026908201527f546f6b656e486f6d653a206e6f6e2d7a65726f206d756c74692d686f702066616040820152656c6c6261636b60d01b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b60005b83811015613fe9578181015183820152602001613fd1565b50506000910152565b6000815180845261400a816020860160208601613fce565b601f01601f19169290920160200192915050565b60208152815160208201526000602083015160018060a01b0380821660408501528060408601511660608501525050606083015161406760808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c085015261408e610120850183613ff2565b915060c085015160e085015260e08501516140b3828601826001600160a01b03169052565b5090949350505050565b6020815260008251600581106140e357634e487b7160e01b600052602160045260246000fd5b806020840152506020830151604080840152612aa06060840182613ff2565b60408152825160408201526000602084015161412960608401826001600160a01b03169052565b5060408401516001600160a01b03166080830152606084015161016060a0840181905261415a6101a0850183613ff2565b9150608086015160c085015260a086015160e085015260c086015161010061418c818701836001600160a01b03169052565b60e088015191506101206141aa818801846001600160a01b03169052565b908801519150610140906141c8878301846001600160a01b03169052565b880151928601929092525090940151610180830152506020015290565b81516001600160a01b031681526020808301519082015260408101610525565b60006101208201905083518252602084015160018060a01b03808216602085015280604087015116604085015280606087015116606085015250506080840151608083015260a084015160a083015260c084015160c083015260e084015161427860e08401826001600160a01b03169052565b50826101008301529392505050565b6020808252818101527f546f6b656e486f6d653a2072656d6f7465206e6f742072656769737465726564604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610525576105256142bc565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082601f83011261434157600080fd5b815161434f613d8182613d3b565b81815284602083860101111561436457600080fd5b612aa0826020830160208701613fce565b60006020828403121561438757600080fd5b81516001600160401b038082111561439e57600080fd5b90830190604082860312156143b257600080fd5b6143ba613ce9565b8251600581106143c957600080fd5b81526020830151828111156143dd57600080fd5b6143e987828601614330565b60208301525095945050505050565b8051612bac81613a8c565b60006040828403121561441557600080fd5b61441d613ce9565b825161442881613a8c565b81526020928301519281019290925250919050565b60006020828403121561444f57600080fd5b81516001600160401b038082111561446657600080fd5b90830190610100828603121561447b57600080fd5b614483613cc6565b82518152614493602084016143f8565b60208201526144a4604084016143f8565b60408201526144b5606084016143f8565b60608201526080830151608082015260a0830151828111156144d657600080fd5b6144e287828601614330565b60a08301525060c083015160c08201526144fe60e084016143f8565b60e082015295945050505050565b600060e0828403121561451e57600080fd5b60405160e081018181106001600160401b038211171561454057614540613c87565b60405282518152602083015161455581613a8c565b6020820152604083015161456881613a8c565b80604083015250606083015160608201526080830151608082015260a083015160a082015260c083015161459b81613a8c565b60c08201529392505050565b6000602082840312156145b957600080fd5b81516001600160401b03808211156145d057600080fd5b9083019061016082860312156145e557600080fd5b6145ed613c9d565b6145f6836143f8565b81526020830151602082015261460e604084016143f8565b604082015261461f606084016143f8565b60608201526080830151608082015260a08301518281111561464057600080fd5b61464c87828601614330565b60a08301525060c083015160c082015261466860e084016143f8565b60e0820152610100838101519082015261012091506146888284016143f8565b9181019190915261014091820151918101919091529392505050565b805160ff81168114612bac57600080fd5b6000606082840312156146c757600080fd5b604051606081018181106001600160401b03821117156146e9576146e9613c87565b604052825181526146fc602084016146a4565b602082015261470d604084016146a4565b60408201529392505050565b60208082526022908201527f546f6b656e486f6d653a207a65726f20726571756972656420676173206c696d6040820152611a5d60f21b606082015260800190565b60208082526021908201527f546f6b656e486f6d653a206e6f6e2d7a65726f207365636f6e646172792066656040820152606560f81b606082015260800190565b80820180821115610525576105256142bc565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b8084101561483e5784518316825293850193600193909301929085019061481c565b5060a0880151878203601f190160e0890152945061485c8186613ff2565b98975050505050505050565b8481526001600160a01b03848116602083015283166040820152608060608201819052600090611f5e90830184613ff2565b634e487b7160e01b600052601260045260246000fd5b6000826148bf576148bf61489a565b500690565b6000602082840312156148d657600080fd5b8151611ca981613a8c565b60ff8281168282160390811115610525576105256142bc565b600181815b8085111561493557816000190482111561491b5761491b6142bc565b8085161561492857918102915b93841c93908002906148ff565b509250929050565b60008261494c57506001610525565b8161495957506000610525565b816001811461496f576002811461497957614995565b6001915050610525565b60ff84111561498a5761498a6142bc565b50506001821b610525565b5060208310610133831016604e8410600b84101617156149b8575081810a610525565b6149c283836148fa565b80600019048211156149d6576149d66142bc565b029392505050565b6000611ca9838361493d565b8082028115828204841417610525576105256142bc565b600082614a1057614a1061489a565b500490565b600060208284031215614a2757600080fd5b81518015158114611ca957600080fd5b60008251614a49818460208701613fce565b9190910192915050565b602081526000611ca96020830184613ff256fe9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e6003b5030f10c94fcbdaa3022348ff0b82dbd4c0c71339e41ff59d0bdc92179d6009316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e602d2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c7500a2646970667358221220021a2bc44d3ccbb60d49a692a9e6491c5e615ea9e6b56d7857e904c9610d865b64736f6c63430008120033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"name\":\"CollateralAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\"}],\"name\":\"MinTeleporterVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialCollateralNeeded\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"name\":\"RemoteRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallRouted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensRouted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"addCollateral\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinTeleporterVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"getRemoteTokenTransferrerSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralNeeded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenMultiplier\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"multiplyOnRemote\",\"type\":\"bool\"}],\"internalType\":\"structRemoteTokenTransferrerSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"getTransferredBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"teleporterManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedTokenAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"isTeleporterAddressPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"pauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"receiveTeleporterMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"teleporterRegistry\",\"outputs\":[{\"internalType\":\"contractTeleporterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"unpauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"updateMinTeleporterVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801561001057600080fd5b50614b1c806100206000396000f3fe60806040526004361061010d5760003560e01c80638bf2fa9411610095578063c0c53b8b11610064578063c0c53b8b1461038a578063c8511ada146103aa578063c868efaa1461048d578063d2cc7a70146104ad578063f2fde38b146104c257600080fd5b80638bf2fa94146102fd5780638da5cb5b14610310578063973142971461032e578063b0b78b261461037757600080fd5b80634213cf78116100dc5780634213cf78146102735780634511243e146102955780635eb99514146102b55780636e6eef8d146102d5578063715018a6146102e857600080fd5b806310fe9ae8146101af578063154d625a146102055780631a7f5bec146102335780632b0d8f181461025357600080fd5b366101aa577f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e601546001600160a01b031633146101a85760405162461bcd60e51b815260206004820152602f60248201527f4e6174697665546f6b656e486f6d653a20696e76616c6964207265636569766560448201526e103830bcb0b136329039b2b73232b960891b60648201526084015b60405180910390fd5b005b600080fd5b3480156101bb57600080fd5b507f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e601546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021157600080fd5b50610225610220366004613aac565b6104e2565b6040519081526020016101fc565b34801561023f57600080fd5b506065546101e8906001600160a01b031681565b34801561025f57600080fd5b506101a861026e366004613adc565b61052b565b34801561027f57600080fd5b50600080516020614a6783398151915254610225565b3480156102a157600080fd5b506101a86102b0366004613adc565b610624565b3480156102c157600080fd5b506101a86102d0366004613af9565b610721565b6101a86102e3366004613b12565b610735565b3480156102f457600080fd5b506101a861075f565b6101a861030b366004613b4d565b610773565b34801561031c57600080fd5b506068546001600160a01b03166101e8565b34801561033a57600080fd5b50610367610349366004613adc565b6001600160a01b031660009081526066602052604090205460ff1690565b60405190151581526020016101fc565b6101a8610385366004613aac565b61078b565b34801561039657600080fd5b506101a86103a5366004613b66565b61079a565b3480156103b657600080fd5b506104566103c5366004613aac565b6040805160808082018352600080835260208084018290528385018290526060938401829052958152600080516020614aa783398151915286528381206001600160a01b039590951681529385529282902082519384018352805460ff9081161515855260018201549585019590955260028101549284019290925260039091015490921615159181019190915290565b6040516101fc9190815115158152602080830151908201526040808301519082015260609182015115159181019190915260800190565b34801561049957600080fd5b506101a86104a8366004613bb1565b6108b1565b3480156104b957600080fd5b50606754610225565b3480156104ce57600080fd5b506101a86104dd366004613adc565b610a57565b60008281527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b03851684529091529020545b92915050565b610533610acd565b6001600160a01b0381166105595760405162461bcd60e51b815260040161019f90613c39565b6001600160a01b03811660009081526066602052604090205460ff16156105d85760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b606482015260840161019f565b6001600160a01b038116600081815260666020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b61062c610acd565b6001600160a01b0381166106525760405162461bcd60e51b815260040161019f90613c39565b6001600160a01b03811660009081526066602052604090205460ff166106cc5760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b606482015260840161019f565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152606660205260409020805460ff19169055565b610729610acd565b61073281610ad5565b50565b61073261074e600080516020614a678339815191525490565b303361075985613db8565b34610c5f565b610767610ec9565b6107716000610f23565b565b61073261078536839003830183613e89565b34610f75565b610796828234611136565b5050565b600054610100900460ff16158080156107ba5750600054600160ff909116105b806107d45750303b1580156107d4575060005460ff166001145b6108375760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161019f565b6000805460ff19166001179055801561085a576000805461ff0019166101001790555b61086584848461132e565b80156108ab576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6108b9611370565b6067546065546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610912573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109369190613f15565b101561099d5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b606482015260840161019f565b6109a633610349565b15610a0c5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b606482015260840161019f565b610a4d848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113c992505050565b6108ab6001603355565b610a5f610ec9565b6001600160a01b038116610ac45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161019f565b61073281610f23565b610771610ec9565b6065546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015610b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b439190613f15565b60675490915081831115610bb35760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b606482015260840161019f565b808311610c285760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e00606482015260840161019f565b6067839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b600080516020614ac78339815191528054600114610c8f5760405162461bcd60e51b815260040161019f90613f2e565b60028155610c9c836117d8565b60c08301516001600160a01b031615610cc75760405162461bcd60e51b815260040161019f90613f72565b600080610ce985600001518660200151868861010001518961012001516119bf565b915091506000604051806040016040528060026004811115610d0d57610d0d613fb8565b81526020016040518061010001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200189604001516001600160a01b03168152602001868152602001896060015181526020018960a0015181526020018960e001516001600160a01b0316815250604051602001610d90919061401e565b60405160208183030381529060405281525090506000610e736040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b61010001516001600160a01b031681526020018781525081526020018960800151815260200160006001600160401b03811115610e1c57610e1c613c87565b604051908082528060200260200182016040528015610e45578160200160208202803683370190505b50815260200184604051602001610e5c91906140bd565b604051602081830303815290604052815250611b8a565b9050876001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168987604051610eb1929190614102565b60405180910390a35050600190925550505050505050565b6068546001600160a01b031633146107715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161019f565b606880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080516020614ac78339815191528054600114610fa55760405162461bcd60e51b815260040161019f90613f2e565b60028155610fb283611cb0565b60e08301516001600160a01b031615610fdd5760405162461bcd60e51b815260040161019f90613f72565b600080610ffd8560000151866020015186886060015189608001516119bf565b91509150600060405180604001604052806001600481111561102157611021613fb8565b8152602001604051806040016040528089604001516001600160a01b031681526020018681525060405160200161105891906141e5565b604051602081830303815290604052815250905060006110e36040518060c001604052808960000151815260200189602001516001600160a01b0316815260200160405180604001604052808b606001516001600160a01b031681526020018781525081526020018960c00151815260200160006001600160401b03811115610e1c57610e1c613c87565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528987604051611121929190614205565b60405180910390a35050600190925550505050565b600080516020614ac783398151915280546001146111665760405162461bcd60e51b815260040161019f90613f2e565b60028082556000858152600080516020614aa7833981519152602090815260408083206001600160a01b03881684528252918290208251608081018452815460ff908116151580835260018401549483019490945294820154938101939093526003015490921615156060820152600080516020614a67833981519152916112005760405162461bcd60e51b815260040161019f90614287565b600081602001511161125e5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20636f6c6c61746572616c206e656564656044820152601960fa1b606482015260840161019f565b61126784611d5a565b9350600080826020015186106112985760208301516000925061128a90876142d2565b9050826020015195506112ab565b8583602001516112a891906142d2565b91505b600088815260028501602090815260408083206001600160a01b038b168085529083529281902060010185905580518981529182018590528a917f6769a5f9bfc8b6e0db839ab981cbf9239274ae72d2d035081a9157d43bd33cb6910160405180910390a38015611320576113203382611d82565b505060019092555050505050565b600054610100900460ff166113555760405162461bcd60e51b815260040161019f906142e5565b6113628383836012611e41565b61136b81611e84565b505050565b6002603354036113c25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161019f565b6002603355565b6000600080516020614a6783398151915290506000828060200190518101906113f29190614375565b905060018151600481111561140957611409613fb8565b0361145457600081602001518060200190518101906114289190614403565b9050600061143b87878460200151611eda565b905061144b826000015182611d82565b50505050505050565b60028151600481111561146957611469613fb8565b036115845760008160200151806020019051810190611488919061443d565b9050600061149b87878460800151611eda565b825190915087146115015760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a206d69736d61746368656420736f7572636520626c6f60448201526918dad8da185a5b88125160b21b606482015260840161019f565b856001600160a01b031682602001516001600160a01b03161461157a5760405162461bcd60e51b815260206004820152602b60248201527f546f6b656e486f6d653a206d69736d617463686564206f726967696e2073656e60448201526a646572206164647265737360a81b606482015260840161019f565b61144b8282611f68565b60038151600481111561159957611599613fb8565b0361167257600081602001518060200190518101906115b8919061450c565b90506000806115d18888856060015186608001516120f7565b915091506116686040518061010001604052808560000151815260200185602001516001600160a01b0316815260200185604001516001600160a01b031681526020018760010160009054906101000a90046001600160a01b03166001600160a01b03168152602001838152602001600081526020018560a0015181526020018560c001516001600160a01b0316815250836121a6565b5050505050505050565b60048151600481111561168757611687613fb8565b0361178757600081602001518060200190518101906116a691906145a7565b90506000806116c0888885608001518661014001516120f7565b91509150611668888885600001516040518061016001604052808860200151815260200188604001516001600160a01b0316815260200188606001516001600160a01b031681526020018860a00151815260200188610100015181526020018860c0015181526020018861012001516001600160a01b031681526020018860e001516001600160a01b031681526020018a60010160009054906101000a90046001600160a01b03166001600160a01b03168152602001868152602001600081525086612339565b60008151600481111561179c5761179c613fb8565b036117ca57600081602001518060200190518101906117bb91906146b5565b90506117c886868361251e565b505b5050505050565b6001603355565b60408101516001600160a01b03166118455760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420636f6e7472616044820152696374206164647265737360b01b606482015260840161019f565b60008160800151116118695760405162461bcd60e51b815260040161019f90614719565b60008160a00151116118c95760405162461bcd60e51b815260206004820152602360248201527f546f6b656e486f6d653a207a65726f20726563697069656e7420676173206c696044820152621b5a5d60ea1b606482015260840161019f565b80608001518160a001511061192f5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420726563697069656e7420676173604482015265081b1a5b5a5d60d21b606482015260840161019f565b60e08101516001600160a01b031661199c5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e486f6d653a207a65726f2066616c6c6261636b20726563697069656044820152696e74206164647265737360b01b606482015260840161019f565b610140810151156107325760405162461bcd60e51b815260040161019f9061475b565b6000858152600080516020614aa7833981519152602090815260408083206001600160a01b038816845282528083208151608081018352815460ff9081161515808352600184015495830195909552600283015493820193909352600390910154909116151560608201528291600080516020614a678339815191529190611a595760405162461bcd60e51b815260040161019f90614287565b602081015115611abb5760405162461bcd60e51b815260206004820152602760248201527f546f6b656e486f6d653a20636f6c6c61746572616c206e656564656420666f726044820152662072656d6f746560c81b606482015260840161019f565b611ac487611d5a565b96508415611ada57611ad7863387612932565b94505b6000611aef826040015183606001518a612a91565b905060008111611b415760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f207363616c656420616d6f756e74000000604482015260640161019f565b60008a815260038401602090815260408083206001600160a01b038d16845290915281208054839290611b7590849061479c565b90915550909a95995094975050505050505050565b600080611b95612aa8565b60408401516020015190915015611c3a576040830151516001600160a01b0316611c175760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b606482015260840161019f565b604083015160208101519051611c3a916001600160a01b03909116908390612bb1565b604051630624488560e41b81526001600160a01b03821690636244885090611c669086906004016147af565b6020604051808303816000875af1158015611c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca99190613f15565b9392505050565b60408101516001600160a01b0316611d145760405162461bcd60e51b815260206004820152602160248201527f546f6b656e486f6d653a207a65726f20726563697069656e74206164647265736044820152607360f81b606482015260840161019f565b60008160c0015111611d385760405162461bcd60e51b815260040161019f90614719565b60a0810151156107325760405162461bcd60e51b815260040161019f9061475b565b600080516020614a87833981519152805460009190611ca9906001600160a01b031684612c96565b604051818152600080516020614a87833981519152906001600160a01b038416907f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b9060200160405180910390a28054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b5061136b925050506001600160a01b03841683612e45565b600054610100900460ff16611e685760405162461bcd60e51b815260040161019f906142e5565b611e728484612f5e565b611e7a612f9f565b6108ab8282612fdd565b600054610100900460ff16611eab5760405162461bcd60e51b815260040161019f906142e5565b600080516020614a8783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6000838152600080516020614aa7833981519152602090815260408083206001600160a01b038616845282528083208151608081018352815460ff908116151582526001830154948201949094526002820154928101929092526003015490911615156060820152600080516020614a6783398151915290611f5e81878787613167565b9695505050505050565b6000600080516020614a878339815191528054604051632e1a7d4d60e01b8152600481018590529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b50508451602086015160408088015160a0890151915160009650611ffd9550909190602401614868565b60408051601f198184030181529190526020810180516001600160e01b031663161b12ff60e11b17905260c085015160608601519192506000916120449190869085613258565b905080156120985784606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff48560405161208b91815260200190565b60405180910390a26117ca565b84606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb0856040516120d791815260200190565b60405180910390a260e08501516117ca906001600160a01b031685612e45565b6000848152600080516020614aa7833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff9081161515825260018301549482019490945260028201549281019290925260030154909116151560608201528190600080516020614a67833981519152908261217e828a8a8a613167565b90506000612195836040015184606001518961332d565b919a91995090975050505050505050565b600080516020614ac783398151915280546001146121d65760405162461bcd60e51b815260040161019f90613f2e565b600281556121e383611cb0565b60006121fd8460000151856020015185876080015161333c565b90508060000361221b576122158460e0015184611d82565b50612331565b604080518082019091526000908060018152602001604051806040016040528088604001516001600160a01b031681526020018581525060405160200161226291906141e5565b604051602081830303815290604052815250905060006122f16040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a606001516001600160a01b031681526020018a6080015181525081526020018860c00151815260200160006001600160401b03811115610e1c57610e1c613c87565b9050807f825080857c76cef4a1629c0705a7f8b4ef0282ddcafde0b6715c4fb34b68aaf08785604051612325929190614205565b60405180910390a25050505b600190555050565b600080516020614ac783398151915280546001146123695760405162461bcd60e51b815260040161019f90613f2e565b60028155612376836117d8565b6000612391846000015185602001518587610120015161333c565b9050806000036123af576123a98460c0015184611d82565b50612513565b6040805180820190915260009080600281526020016040518061010001604052808b81526020018a6001600160a01b03168152602001896001600160a01b0316815260200188604001516001600160a01b03168152602001858152602001886060015181526020018860a0015181526020018860e001516001600160a01b0316815250604051602001612442919061401e565b604051602081830303815290604052815250905060006124d36040518060c001604052808860000151815260200188602001516001600160a01b0316815260200160405180604001604052808a61010001516001600160a01b031681526020018a610120015181525081526020018860800151815260200160006001600160401b03811115610e1c57610e1c613c87565b9050807f42eff9005856e3c586b096d67211a566dc926052119fd7cc08023c70937ecb308785604051612507929190614102565b60405180910390a25050505b600190555050505050565b600080516020614a67833981519152836125865760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a207a65726f2072656d6f746520626c6f636b636861696044820152631b88125160e21b606482015260840161019f565b805484036125ee5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e486f6d653a2063616e6e6f742072656769737465722072656d6f7460448201526e329037b71039b0b6b29031b430b4b760891b606482015260840161019f565b6001600160a01b03831661265d5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e486f6d653a207a65726f2072656d6f746520746f6b656e2074726160448201526f6e73666572726572206164647265737360801b606482015260840161019f565b600084815260028201602090815260408083206001600160a01b038716845290915290205460ff16156126de5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f746520616c726561647920726567697374604482015263195c995960e21b606482015260840161019f565b6012826040015160ff1611156127485760405162461bcd60e51b815260206004820152602960248201527f546f6b656e486f6d653a2072656d6f746520746f6b656e20646563696d616c73604482015268040e8dede40d0d2ced60bb1b606482015260840161019f565b6001810154602083015160ff908116600160a01b90920416146127bc5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e486f6d653a20696e76616c696420686f6d6520746f6b656e20646560448201526563696d616c7360d01b606482015260840161019f565b6000806127de8360010160149054906101000a900460ff1685604001516134b6565b9150915060006127f38383876000015161332d565b905081801561280d5750845161280a9084906148b0565b15155b156128205761281d60018261479c565b90505b60405180608001604052806001151581526020018281526020018481526020018315158152508460020160008981526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050856001600160a01b0316877ff229b02a51a4c8d5ef03a096ae0dd727d7b48b710d21b50ebebb560eef739b9083886040015160405161292192919091825260ff16602082015260400190565b60405180910390a350505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa15801561297b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299f9190613f15565b90506129b66001600160a01b0386168530866134ff565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa1580156129fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a219190613f15565b9050818111612a875760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b606482015260840161019f565b611f5e82826142d2565b6000612aa08484846001613537565b949350505050565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2291906148c4565b9050612b46816001600160a01b031660009081526066602052604090205460ff1690565b15612bac5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b606482015260840161019f565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c269190613f15565b612c30919061479c565b6040516001600160a01b0385166024820152604481018290529091506108ab90859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261355f565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa158015612cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d039190613f15565b9050836001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d4057600080fd5b505af1158015612d54573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093506001600160a01b03881692506370a082319150602401602060405180830381865afa158015612da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc49190613f15565b9050818111612e325760405162461bcd60e51b815260206004820152603460248201527f53616665577261707065644e6174697665546f6b656e4465706f7369743a2062604482015273185b185b98d9481b9bdd081a5b98dc99585cd95960621b606482015260840161019f565b612e3c82826142d2565b95945050505050565b80471015612e955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161019f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612ee2576040519150601f19603f3d011682016040523d82523d6000602084013e612ee7565b606091505b505090508061136b5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161019f565b600054610100900460ff16612f855760405162461bcd60e51b815260040161019f906142e5565b612f8e82613631565b612f9661375f565b61079681610a57565b600054610100900460ff16612fc65760405162461bcd60e51b815260040161019f906142e5565b6107716001600080516020614ac783398151915255565b600054610100900460ff166130045760405162461bcd60e51b815260040161019f906142e5565b6001600160a01b03821661305a5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e486f6d653a207a65726f20746f6b656e2061646472657373000000604482015260640161019f565b60128160ff1611156130b95760405162461bcd60e51b815260206004820152602260248201527f546f6b656e486f6d653a20746f6b656e20646563696d616c7320746f6f2068696044820152610ced60f31b606482015260840161019f565b6000600080516020614a6783398151915290506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015613111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131359190613f15565b8155600101805460ff909216600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b83516000906131885760405162461bcd60e51b815260040161019f90614287565b6020850151156131e65760405162461bcd60e51b8152602060048201526024808201527f546f6b656e486f6d653a2072656d6f7465206e6f7420636f6c6c61746572616c6044820152631a5e995960e21b606482015260840161019f565b6131f184848461378e565b6000613206866040015187606001518561332d565b905060008111612e3c5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e486f6d653a207a65726f20746f6b656e20616d6f756e7400000000604482015260640161019f565b6000845a10156132aa5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e74206761730000000000604482015260640161019f565b834710156132fa5760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c7565000000604482015260640161019f565b826001600160a01b03163b60000361331457506000612aa0565b600080600084516020860188888bf19695505050505050565b6000612aa08484846000613537565b6000848152600080516020614aa7833981519152602090815260408083206001600160a01b038716845282528083208151608081018352815460ff908116158015835260018401549583019590955260028301549382019390935260039091015490911615156060820152600080516020614a6783398151915291806133c6575060008160200151115b156133d657600092505050612aa0565b83851161343a5760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e486f6d653a20696e73756666696369656e7420616d6f756e74207460448201526b6f20636f766572206665657360a01b606482015260840161019f565b61344484866142d2565b9450600061345b8260400151836060015188612a91565b9050806000036134715760009350505050612aa0565b600088815260038401602090815260408083206001600160a01b038b168452909152812080548392906134a590849061479c565b909155509098975050505050505050565b60008060ff8085169084161181816134da576134d285876148e1565b60ff166134e8565b6134e486866148e1565b60ff165b6134f390600a6149de565b96919550909350505050565b6040516001600160a01b03808516602483015283166044820152606481018290526108ab9085906323b872dd60e01b90608401612c5f565b6000811515841515036135555761354e85846149ea565b9050612aa0565b612e3c8584614a01565b60006135b4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661387e9092919063ffffffff16565b80519091501561136b57808060200190518101906135d29190614a15565b61136b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161019f565b600054610100900460ff166136585760405162461bcd60e51b815260040161019f906142e5565b61366061388d565b6001600160a01b0381166136dc5760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f727465722072656769737472792061646472657373000000000000000000606482015260840161019f565b606580546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa158015613735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137599190613f15565b60675550565b600054610100900460ff166137865760405162461bcd60e51b815260040161019f906142e5565b6107716138bc565b60008381527f9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e603602090815260408083206001600160a01b0386168452909152902054600080516020614a6783398151915290828110156138475760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e486f6d653a20696e73756666696369656e7420746f6b656e20747260448201526d616e736665722062616c616e636560901b606482015260840161019f565b61385183826142d2565b60009586526003909201602090815260408087206001600160a01b03909616875294905250919092205550565b6060612aa084846000856138ec565b600054610100900460ff166138b45760405162461bcd60e51b815260040161019f906142e5565b6107716139c7565b600054610100900460ff166138e35760405162461bcd60e51b815260040161019f906142e5565b61077133610f23565b60608247101561394d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161019f565b600080866001600160a01b031685876040516139699190614a37565b60006040518083038185875af1925050503d80600081146139a6576040519150601f19603f3d011682016040523d82523d6000602084013e6139ab565b606091505b50915091506139bc878383876139ee565b979650505050505050565b600054610100900460ff166117d15760405162461bcd60e51b815260040161019f906142e5565b60608315613a5d578251600003613a56576001600160a01b0385163b613a565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161019f565b5081612aa0565b612aa08383815115613a725781518083602001fd5b8060405162461bcd60e51b815260040161019f9190614a53565b6001600160a01b038116811461073257600080fd5b8035612bac81613a8c565b60008060408385031215613abf57600080fd5b823591506020830135613ad181613a8c565b809150509250929050565b600060208284031215613aee57600080fd5b8135611ca981613a8c565b600060208284031215613b0b57600080fd5b5035919050565b600060208284031215613b2457600080fd5b81356001600160401b03811115613b3a57600080fd5b82016101608185031215611ca957600080fd5b60006101008284031215613b6057600080fd5b50919050565b600080600060608486031215613b7b57600080fd5b8335613b8681613a8c565b92506020840135613b9681613a8c565b91506040840135613ba681613a8c565b809150509250925092565b60008060008060608587031215613bc757600080fd5b843593506020850135613bd981613a8c565b925060408501356001600160401b0380821115613bf557600080fd5b818701915087601f830112613c0957600080fd5b813581811115613c1857600080fd5b886020828501011115613c2a57600080fd5b95989497505060200194505050565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715613cc057613cc0613c87565b60405290565b60405161010081016001600160401b0381118282101715613cc057613cc0613c87565b604080519081016001600160401b0381118282101715613cc057613cc0613c87565b604051601f8201601f191681016001600160401b0381118282101715613d3357613d33613c87565b604052919050565b60006001600160401b03821115613d5457613d54613c87565b50601f01601f191660200190565b600082601f830112613d7357600080fd5b8135613d86613d8182613d3b565b613d0b565b818152846020838601011115613d9b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006101608236031215613dcb57600080fd5b613dd3613c9d565b82358152613de360208401613aa1565b6020820152613df460408401613aa1565b604082015260608301356001600160401b03811115613e1257600080fd5b613e1e36828601613d62565b6060830152506080830135608082015260a083013560a0820152613e4460c08401613aa1565b60c0820152613e5560e08401613aa1565b60e0820152610100613e68818501613aa1565b90820152610120838101359082015261014092830135928101929092525090565b60006101008284031215613e9c57600080fd5b613ea4613cc6565b823581526020830135613eb681613a8c565b60208201526040830135613ec981613a8c565b6040820152613eda60608401613aa1565b60608201526080830135608082015260a083013560a082015260c083013560c0820152613f0960e08401613aa1565b60e08201529392505050565b600060208284031215613f2757600080fd5b5051919050565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b60208082526026908201527f546f6b656e486f6d653a206e6f6e2d7a65726f206d756c74692d686f702066616040820152656c6c6261636b60d01b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b60005b83811015613fe9578181015183820152602001613fd1565b50506000910152565b6000815180845261400a816020860160208601613fce565b601f01601f19169290920160200192915050565b60208152815160208201526000602083015160018060a01b0380821660408501528060408601511660608501525050606083015161406760808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c085015261408e610120850183613ff2565b915060c085015160e085015260e08501516140b3828601826001600160a01b03169052565b5090949350505050565b6020815260008251600581106140e357634e487b7160e01b600052602160045260246000fd5b806020840152506020830151604080840152612aa06060840182613ff2565b60408152825160408201526000602084015161412960608401826001600160a01b03169052565b5060408401516001600160a01b03166080830152606084015161016060a0840181905261415a6101a0850183613ff2565b9150608086015160c085015260a086015160e085015260c086015161010061418c818701836001600160a01b03169052565b60e088015191506101206141aa818801846001600160a01b03169052565b908801519150610140906141c8878301846001600160a01b03169052565b880151928601929092525090940151610180830152506020015290565b81516001600160a01b031681526020808301519082015260408101610525565b60006101208201905083518252602084015160018060a01b03808216602085015280604087015116604085015280606087015116606085015250506080840151608083015260a084015160a083015260c084015160c083015260e084015161427860e08401826001600160a01b03169052565b50826101008301529392505050565b6020808252818101527f546f6b656e486f6d653a2072656d6f7465206e6f742072656769737465726564604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610525576105256142bc565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082601f83011261434157600080fd5b815161434f613d8182613d3b565b81815284602083860101111561436457600080fd5b612aa0826020830160208701613fce565b60006020828403121561438757600080fd5b81516001600160401b038082111561439e57600080fd5b90830190604082860312156143b257600080fd5b6143ba613ce9565b8251600581106143c957600080fd5b81526020830151828111156143dd57600080fd5b6143e987828601614330565b60208301525095945050505050565b8051612bac81613a8c565b60006040828403121561441557600080fd5b61441d613ce9565b825161442881613a8c565b81526020928301519281019290925250919050565b60006020828403121561444f57600080fd5b81516001600160401b038082111561446657600080fd5b90830190610100828603121561447b57600080fd5b614483613cc6565b82518152614493602084016143f8565b60208201526144a4604084016143f8565b60408201526144b5606084016143f8565b60608201526080830151608082015260a0830151828111156144d657600080fd5b6144e287828601614330565b60a08301525060c083015160c08201526144fe60e084016143f8565b60e082015295945050505050565b600060e0828403121561451e57600080fd5b60405160e081018181106001600160401b038211171561454057614540613c87565b60405282518152602083015161455581613a8c565b6020820152604083015161456881613a8c565b80604083015250606083015160608201526080830151608082015260a083015160a082015260c083015161459b81613a8c565b60c08201529392505050565b6000602082840312156145b957600080fd5b81516001600160401b03808211156145d057600080fd5b9083019061016082860312156145e557600080fd5b6145ed613c9d565b6145f6836143f8565b81526020830151602082015261460e604084016143f8565b604082015261461f606084016143f8565b60608201526080830151608082015260a08301518281111561464057600080fd5b61464c87828601614330565b60a08301525060c083015160c082015261466860e084016143f8565b60e0820152610100838101519082015261012091506146888284016143f8565b9181019190915261014091820151918101919091529392505050565b805160ff81168114612bac57600080fd5b6000606082840312156146c757600080fd5b604051606081018181106001600160401b03821117156146e9576146e9613c87565b604052825181526146fc602084016146a4565b602082015261470d604084016146a4565b60408201529392505050565b60208082526022908201527f546f6b656e486f6d653a207a65726f20726571756972656420676173206c696d6040820152611a5d60f21b606082015260800190565b60208082526021908201527f546f6b656e486f6d653a206e6f6e2d7a65726f207365636f6e646172792066656040820152606560f81b606082015260800190565b80820180821115610525576105256142bc565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b8084101561483e5784518316825293850193600193909301929085019061481c565b5060a0880151878203601f190160e0890152945061485c8186613ff2565b98975050505050505050565b8481526001600160a01b03848116602083015283166040820152608060608201819052600090611f5e90830184613ff2565b634e487b7160e01b600052601260045260246000fd5b6000826148bf576148bf61489a565b500690565b6000602082840312156148d657600080fd5b8151611ca981613a8c565b60ff8281168282160390811115610525576105256142bc565b600181815b8085111561493557816000190482111561491b5761491b6142bc565b8085161561492857918102915b93841c93908002906148ff565b509250929050565b60008261494c57506001610525565b8161495957506000610525565b816001811461496f576002811461497957614995565b6001915050610525565b60ff84111561498a5761498a6142bc565b50506001821b610525565b5060208310610133831016604e8410600b84101617156149b8575081810a610525565b6149c283836148fa565b80600019048211156149d6576149d66142bc565b029392505050565b6000611ca9838361493d565b8082028115828204841417610525576105256142bc565b600082614a1057614a1061489a565b500490565b600060208284031215614a2757600080fd5b81518015158114611ca957600080fd5b60008251614a49818460208701613fce565b9190910192915050565b602081526000611ca96020830184613ff256fe9316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e6003b5030f10c94fcbdaa3022348ff0b82dbd4c0c71339e41ff59d0bdc92179d6009316912b5a9db88acbe872c934fdd0a46c436c6dcba332d649c4d57c7bc9e602d2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c7500a26469706673582212206d85327ea8676eb4eddc11c2328b315d08a6bbd0c37deca904b2ed56f47358c364736f6c63430008120033", } // NativeTokenHomeABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/TokenHome/TokenHome/TokenHome.go b/abi-bindings/go/TokenHome/TokenHome/TokenHome.go index 5f554e3e..66aac490 100644 --- a/abi-bindings/go/TokenHome/TokenHome/TokenHome.go +++ b/abi-bindings/go/TokenHome/TokenHome/TokenHome.go @@ -66,7 +66,7 @@ type SendTokensInput struct { // TokenHomeMetaData contains all meta data concerning the TokenHome contract. var TokenHomeMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"getBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRemoteTokenTransferrerSettings\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structRemoteTokenTransferrerSettings\",\"components\":[{\"name\":\"registered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"collateralNeeded\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenMultiplier\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiplyOnRemote\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTransferredBalance\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"teleporterRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTeleporterRegistry\"}],\"stateMutability\":\"view\"},{\"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\":\"CallFailed\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CallSucceeded\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CollateralAdded\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"remaining\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"RemoteRegistered\",\"inputs\":[{\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"initialCollateralNeeded\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"tokenDecimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"event\",\"name\":\"TokensAndCallRouted\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensAndCallSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensRouted\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"name\":\"CollateralAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\"}],\"name\":\"MinTeleporterVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialCollateralNeeded\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"name\":\"RemoteRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallRouted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensRouted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinTeleporterVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"getRemoteTokenTransferrerSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralNeeded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenMultiplier\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"multiplyOnRemote\",\"type\":\"bool\"}],\"internalType\":\"structRemoteTokenTransferrerSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"remoteTokenTransferrerAddress\",\"type\":\"address\"}],\"name\":\"getTransferredBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"isTeleporterAddressPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"pauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"receiveTeleporterMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"teleporterRegistry\",\"outputs\":[{\"internalType\":\"contractTeleporterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"unpauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"updateMinTeleporterVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // TokenHomeABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/TokenRemote/ERC20TokenRemote/ERC20TokenRemote.go b/abi-bindings/go/TokenRemote/ERC20TokenRemote/ERC20TokenRemote.go index 6f506c48..b03fa8c1 100644 --- a/abi-bindings/go/TokenRemote/ERC20TokenRemote/ERC20TokenRemote.go +++ b/abi-bindings/go/TokenRemote/ERC20TokenRemote/ERC20TokenRemote.go @@ -73,8 +73,8 @@ type TokenRemoteSettings struct { // ERC20TokenRemoteMetaData contains all meta data concerning the ERC20TokenRemote contract. var ERC20TokenRemoteMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"MULTI_HOP_CALL_GAS_PER_WORD\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_CALL_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_SEND_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"REGISTER_REMOTE_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"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\":\"amount\",\"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\":\"calculateNumWords\",\"inputs\":[{\"name\":\"payloadSize\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getInitialReserveImbalance\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsCollateralized\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMultiplyOnRemote\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenHomeAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenHomeBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenMultiplier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structTokenRemoteSettings\",\"components\":[{\"name\":\"teleporterRegistryAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"teleporterManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenHomeBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"tokenHomeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenHomeDecimals\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"tokenName\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"tokenSymbol\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"tokenDecimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isTeleporterAddressPaused\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"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\":\"registerWithHome\",\"inputs\":[{\"name\":\"feeInfo\",\"type\":\"tuple\",\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"send\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendAndCall\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"teleporterRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTeleporterRegistry\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"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\":\"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\":\"CallFailed\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CallSucceeded\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"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\":\"event\",\"name\":\"TokensAndCallSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"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}]", - Bin: "0x608060405234801561001057600080fd5b50614a14806100206000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80636569003811610130578063a9059cbb116100b8578063dd62ed3e1161007c578063dd62ed3e14610491578063e0fd9cb8146104a4578063ef793e2a146104ac578063f2fde38b146104b4578063f3f981d8146104c757600080fd5b8063a9059cbb14610448578063b8a46d021461045b578063c3cd69271461046e578063c868efaa14610476578063d2cc7a701461048957600080fd5b80637ee3779a116100ff5780637ee3779a146103e85780638da5cb5b146103f057806395d89b41146104015780639731429714610409578063a457c2d71461043557600080fd5b8063656900381461039a57806370a08231146103ad578063715018a6146103d657806371717c18146103de57600080fd5b80632b0d8f18116101b35780634511243e116101825780634511243e146103445780634ed52e96146103575780635507f3d11461036a5780635d16225d146103745780635eb995141461038757600080fd5b80632b0d8f18146102e0578063313ce567146102f557806339509351146103295780634213cf781461033c57600080fd5b806315beb59f116101fa57806315beb59f1461028757806318160ddd146102905780631a7f5bec1461029857806323b872dd146102c3578063254ac160146102d657600080fd5b806302a30c7d1461022c57806306fdde03146102495780630733c8c81461025e578063095ea7b314610274575b600080fd5b6102346104da565b60405190151581526020015b60405180910390f35b6102516104f2565b604051610240919061391d565b610266610584565b604051908152602001610240565b610234610282366004613950565b610599565b6102666105dc81565b603554610266565b6097546102ab906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b6102346102d136600461397c565b6105b3565b6102666201fbd081565b6102f36102ee3660046139bd565b6105d7565b005b7f69a5f7616543528c4fbe43f410b1034bd6da4ba06c25bedf04617268014cf5005460405160ff9091168152602001610240565b610234610337366004613950565b6106d9565b6102666106fb565b6102f36103523660046139bd565b61070d565b6102f3610365366004613b1b565b61080a565b6102666205302081565b6102f3610382366004613bfd565b610923565b6102f3610395366004613c2f565b610931565b6102f36103a8366004613c48565b610945565b6102666103bb3660046139bd565b6001600160a01b031660009081526033602052604090205490565b6102f361094f565b6102666205573081565b610234610963565b609a546001600160a01b03166102ab565b61025161097b565b6102346104173660046139bd565b6001600160a01b031660009081526098602052604090205460ff1690565b610234610443366004613950565b61098a565b610234610456366004613950565b610a05565b6102f3610469366004613c84565b610a13565b6102ab610bdd565b6102f3610484366004613c9c565b610bfb565b609954610266565b61026661049f366004613d24565b610da7565b610266610dd2565b610266610de7565b6102f36104c23660046139bd565b610dfc565b6102666104d5366004613c2f565b610e72565b6000806104e5610e89565b6006015460ff1692915050565b60606036805461050190613d5d565b80601f016020809104026020016040519081016040528092919081815260200182805461052d90613d5d565b801561057a5780601f1061054f5761010080835404028352916020019161057a565b820191906000526020600020905b81548152906001019060200180831161055d57829003601f168201915b5050505050905090565b60008061058f610e89565b6003015492915050565b6000336105a7818585610ead565b60019150505b92915050565b6000336105c1858285610fd1565b6105cc858585611045565b506001949350505050565b6105df6111f0565b6001600160a01b03811661060e5760405162461bcd60e51b815260040161060590613d91565b60405180910390fd5b6001600160a01b03811660009081526098602052604090205460ff161561068d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610605565b6001600160a01b038116600081815260986020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b6000336105a78185856106ec8383610da7565b6106f69190613df5565b610ead565b600080610706610e89565b5492915050565b6107156111f0565b6001600160a01b03811661073b5760405162461bcd60e51b815260040161060590613d91565b6001600160a01b03811660009081526098602052604090205460ff166107b55760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610605565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152609860205260409020805460ff19169055565b600054610100900460ff161580801561082a5750600054600160ff909116105b806108445750303b158015610844575060005460ff166001145b6108a75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610605565b6000805460ff1916600117905580156108ca576000805461ff0019166101001790555b6108d6858585856111f8565b801561091c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b61092d8282611268565b5050565b6109396111f0565b610942816112f1565b50565b61092d828261147b565b610957611504565b610961600061155e565b565b60008061096e610e89565b6004015460ff1692915050565b60606037805461050190613d5d565b600033816109988286610da7565b9050838110156109f85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610605565b6105cc8286868403610ead565b6000336105a7818585611045565b6000610a1d610e89565b6006810154909150610100900460ff1615610a7a5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e52656d6f74653a20616c72656164792072656769737465726564006044820152606401610605565b604080516060808201835260058401548252600284015460ff600160a01b820481166020808601918252600160a81b9093048216858701908152865180880188526000808252885188518188015293518516848a01529151909316828601528651808303909501855260809091019095528082019290925291929091610b1090610b06908701876139bd565b86602001356115b0565b6040805160c0810182526001870154815260028701546001600160a01b031660208083019190915282518084018452939450610bd5939192830191908190610b5a908b018b6139bd565b6001600160a01b0316815260209081018690529082526201fbd09082015260400160005b604051908082528060200260200182016040528015610ba7578160200160208202803683370190505b50815260200184604051602001610bbe9190613e1e565b604051602081830303815290604052815250611602565b505050505050565b600080610be8610e89565b600201546001600160a01b031692915050565b610c03611721565b6099546097546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c809190613e63565b1015610ce75760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610605565b610cf033610417565b15610d565760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610605565b610d97848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177a92505050565b610da16001606555565b50505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b600080610ddd610e89565b6001015492915050565b600080610df2610e89565b6005015492915050565b610e04611504565b6001600160a01b038116610e695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610605565b6109428161155e565b60006005610e8183601f613df5565b901c92915050565b7f600d6a9b283d1eda563de594ce4843869b6f128a4baa222422ed94a60b0cef0090565b6001600160a01b038316610f0f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610605565b6001600160a01b038216610f705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610605565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610fdd8484610da7565b90506000198114610da157818110156110385760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610605565b610da18484848403610ead565b6001600160a01b0383166110a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610605565b6001600160a01b03821661110b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610605565b6001600160a01b038316600090815260336020526040902054818110156111835760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610605565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e39086815260200190565b60405180910390a3610da1565b610961611504565b600054610100900460ff1661121f5760405162461bcd60e51b815260040161060590613e7c565b611229838361199b565b611235846000836119cc565b7f69a5f7616543528c4fbe43f410b1034bd6da4ba06c25bedf04617268014cf500805460ff191660ff8316179055610da1565b7fd2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c750080546001146112aa5760405162461bcd60e51b815260040161060590613ec7565b6002815560006112b8610e89565b90506112c384611a18565b60018101548435036112de576112d98484611b06565b6112e8565b6112e88484611c8f565b50600190555050565b6097546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190613e63565b609954909150818311156113cf5760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610605565b8083116114445760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610605565b6099839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b7fd2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c750080546001146114bd5760405162461bcd60e51b815260040161060590613ec7565b6002815560006114cb610e89565b90506114d684611e5f565b60018101548435036114f2576114ec848461209e565b506114fc565b6114ec84846122b4565b600190555050565b609a546001600160a01b031633146109615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610605565b609a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000816000036115c2575060006105ad565b306001600160a01b038416036115f0576115de335b3084610fd1565b6115e9333084611045565b50806105ad565b6115fb833384612558565b9392505050565b60008061160d6126c1565b604084015160200151909150156116b2576040830151516001600160a01b031661168f5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610605565b6040830151602081015190516116b2916001600160a01b039091169083906127ca565b604051630624488560e41b81526001600160a01b038216906362448850906116de908690600401613f0b565b6020604051808303816000875af11580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fb9190613e63565b6002606554036117735760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610605565b6002606555565b6000611784610e89565b9050806001015484146117eb5760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20696e76616c696420736f7572636520626c6f636044820152681ad8da185a5b88125160ba1b6064820152608401610605565b60028101546001600160a01b0384811691161461185d5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a20696e76616c6964206f726967696e2073656e646044820152696572206164647265737360b01b6064820152608401610605565b6000828060200190518101906118739190614009565b6006830154909150610100900460ff1615806118945750600682015460ff16155b156118ab5760068201805461ffff19166101011790555b6001815160048111156118c0576118c0613e08565b036118f957600081602001518060200190518101906118df9190614097565b90506118f3816000015182602001516128af565b5061091c565b60028151600481111561190e5761190e613e08565b0361193d576000816020015180602001905181019061192d91906140d1565b90506118f38182608001516128fc565b60405162461bcd60e51b815260206004820152602160248201527f546f6b656e52656d6f74653a20696e76616c6964206d657373616765207479706044820152606560f81b6064820152608401610605565b6001606555565b505050565b600054610100900460ff166119c25760405162461bcd60e51b815260040161060590613e7c565b61092d8282612a5a565b600054610100900460ff166119f35760405162461bcd60e51b815260040161060590613e7c565b611a0583600001518460200151612a9a565b611a0d612adb565b611996838383612b2b565b6000611a2a60608301604084016139bd565b6001600160a01b031603611a8c5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e74206164647260448201526265737360e81b6064820152608401610605565b60008160c0013511611ab05760405162461bcd60e51b8152600401610605906141a0565b8035611ace5760405162461bcd60e51b8152600401610605906141e4565b6000611ae060408301602084016139bd565b6001600160a01b0316036109425760405162461bcd60e51b81526004016106059061422f565b6000611b10610e89565b9050611b40611b2560408501602086016139bd565b60a0850135611b3b610100870160e088016139bd565b612e71565b6000611b6583611b5660808701606088016139bd565b86608001358760a00135612f6f565b60408051808201909152919450915060009080600181526020016040518060400160405280886040016020810190611b9d91906139bd565b6001600160a01b0316815260200187815250604051602001611bbf919061428c565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092611c419282019080611c1860808c0160608d016139bd565b6001600160a01b03168152602090810188905290825260c08a0135908201526040016000610b7e565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528888604051611c7f9291906142ac565b60405180910390a3505050505050565b6000611c99610e89565b9050611cc68335611cb060408601602087016139bd565b611cc1610100870160e088016139bd565b613034565b6000611cdc83611b5660808701606088016139bd565b60408051808201825260038152815160e0810183528835815293965091935060009260208084019282820191611d16918b01908b016139bd565b6001600160a01b03168152602001611d3460608a0160408b016139bd565b6001600160a01b031681526020810188905260a0890135604082015260c08901356060820152608001611d6e6101008a0160e08b016139bd565b6001600160a01b03169052604051611dde9190602001815181526020808301516001600160a01b0390811691830191909152604080840151821690830152606080840151908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092611c419282019080611e3760808c0160608d016139bd565b6001600160a01b03168152602090810188905290825262053020908201526040016000610b7e565b8035611e7d5760405162461bcd60e51b8152600401610605906141e4565b6000611e8f60408301602084016139bd565b6001600160a01b031603611eb55760405162461bcd60e51b81526004016106059061422f565b6000611ec760608301604084016139bd565b6001600160a01b031603611f325760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420636f6e7460448201526b72616374206164647265737360a01b6064820152608401610605565b6000816080013511611f565760405162461bcd60e51b8152600401610605906141a0565b60008160a0013511611fb85760405162461bcd60e51b815260206004820152602560248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420676173206044820152641b1a5b5a5d60da1b6064820152608401610605565b80608001358160a00135106120205760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a20696e76616c696420726563697069656e742067604482015267185cc81b1a5b5a5d60c21b6064820152608401610605565b6000612033610100830160e084016139bd565b6001600160a01b0316036109425760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f2066616c6c6261636b20726563697060448201526b69656e74206164647265737360a01b6064820152608401610605565b60006120a8610e89565b90506120d36120bd60408501602086016139bd565b610140850135611b3b60e0870160c088016139bd565b60006120fc836120eb610120870161010088016139bd565b866101200135876101400135612f6f565b604080518082019091529194509150600090806002815260200160405180610100016040528086600001548152602001306001600160a01b031681526020016121423390565b6001600160a01b0316815260200161216060608a0160408b016139bd565b6001600160a01b031681526020810188905260400161218260608a018a61434b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a089013560208201526040016121d76101008a0160e08b016139bd565b6001600160a01b031690526040516121f29190602001614391565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612276928201908061224d6101208c016101008d016139bd565b6001600160a01b03168152602090810188905290825260808a0135908201526040016000610b7e565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168888604051611c7f92919061449e565b60006122be610e89565b90506122e583356122d560408601602087016139bd565b611cc160e0870160c088016139bd565b60006122fd836120eb610120870161010088016139bd565b604080518082019091529194509150600090806004815260200160405180610160016040528061232a3390565b6001600160a01b031681526020018860000135815260200188602001602081019061235591906139bd565b6001600160a01b0316815260200161237360608a0160408b016139bd565b6001600160a01b031681526020810188905260400161239560608a018a61434b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a089013560208201526040016123ea6101008a0160e08b016139bd565b6001600160a01b031681526080890135602082015260400161241260e08a0160c08b016139bd565b6001600160a01b031681526101408901356020918201526040516124379291016145ad565b60408051601f198184030181529190529052905060006105dc612467612460606089018961434b565b9050610e72565b612471919061468b565b61247e9062055730613df5565b6040805160c0810182526001870154815260028701546001600160a01b031660208201528151808301835292935060009261250992820190806124c96101208d016101008e016139bd565b6001600160a01b031681526020908101899052908252818101869052604080516000815280830182528184015251606090920191610bbe91889101613e1e565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b16898960405161254792919061449e565b60405180910390a350505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c59190613e63565b90506125dc6001600160a01b0386168530866130d3565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126479190613e63565b90508181116126ad5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610605565b6126b782826146a2565b9695505050505050565b600080609760009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273b91906146b5565b905061275f816001600160a01b031660009081526098602052604090205460ff1690565b156127c55760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610605565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190613e63565b6128499190613df5565b6040516001600160a01b038516602482015260448101829052909150610da190859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261310b565b816001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b826040516128ea91815260200190565b60405180910390a261092d82826131dd565b61290630826131dd565b61291530836060015183610ead565b600082600001518360200151846040015130858760a00151604051602401612942969594939291906146d2565b60408051601f198184030181529190526020810180516001600160e01b03166394395edd60e01b17905260c0840151606085015191925060009161298791908461329e565b90506000612999308660600151610da7565b90506129ab3086606001516000610ead565b81156129fd5784606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff4856040516129f091815260200190565b60405180910390a2612a45565b84606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb085604051612a3c91815260200190565b60405180910390a25b801561091c5761091c308660e0015183611045565b600054610100900460ff16612a815760405162461bcd60e51b815260040161060590613e7c565b6036612a8d8382614759565b5060376119968282614759565b600054610100900460ff16612ac15760405162461bcd60e51b815260040161060590613e7c565b612aca826132b5565b612ad26133e3565b61092d81610dfc565b600054610100900460ff16612b025760405162461bcd60e51b815260040161060590613e7c565b61096160017fd2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c750055565b600054610100900460ff16612b525760405162461bcd60e51b815260040161060590613e7c565b6000612b5c610e89565b90506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc79190613e63565b81556040840151612c2d5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d6520626c6f60448201526918dad8da185a5b88125160b21b6064820152608401610605565b8054604085015103612ca75760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e52656d6f74653a2063616e6e6f74206465706c6f7920746f20736160448201527f6d6520626c6f636b636861696e20617320746f6b656e20686f6d6500000000006064820152608401610605565b60608401516001600160a01b0316612d0d5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d65206164646044820152637265737360e01b6064820152608401610605565b6012846080015160ff161115612d775760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20746f6b656e20686f6d6520646563696d616c73604482015268040e8dede40d0d2ced60bb1b6064820152608401610605565b60128260ff161115612dd75760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a20746f6b656e20646563696d616c7320746f6f206044820152630d0d2ced60e31b6064820152608401610605565b60408401516001820155606084015160028201805460058401869055600684018054871560ff1990911617905560808701516001600160a01b039093166001600160a81b031990911617600160a01b60ff808516919091029190911760ff60a81b1916600160a81b91861691909102179055612e539083613412565b60048301805460ff1916911515919091179055600390910155505050565b6000612e7b610e89565b60028101549091506001600160a01b03858116911614612ead5760405162461bcd60e51b815260040161060590614818565b8215612f075760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f207365636f6e646172792060448201526266656560e81b6064820152608401610605565b6001600160a01b03821615610da15760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f206d756c74692d686f702060448201526766616c6c6261636b60c01b6064820152608401610605565b6000806000612f7c610e89565b9050612f8886866115b0565b9450612f938761345d565b60038201546004830154919850612fad9160ff1686613476565b60038201546004830154612fc5919060ff168a613476565b116130275760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a20696e73756666696369656e7420746f6b656e7360448201526b103a37903a3930b739b332b960a11b6064820152608401610605565b5094959294509192505050565b600061303e610e89565b8054909150840361307157306001600160a01b038416036130715760405162461bcd60e51b815260040161060590614818565b6001600160a01b038216610da15760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f206d756c74692d686f702066616c6c6044820152636261636b60e01b6064820152608401610605565b6040516001600160a01b0380851660248301528316604482015260648101829052610da19085906323b872dd60e01b90608401612878565b6000613160826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134859092919063ffffffff16565b805190915015611996578080602001905181019061317e9190614875565b6119965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610605565b6001600160a01b0382166132335760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610605565b80603560008282546132459190613df5565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60006132ad8460008585613494565b949350505050565b600054610100900460ff166132dc5760405162461bcd60e51b815260040161060590613e7c565b6132e4613569565b6001600160a01b0381166133605760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f7274657220726567697374727920616464726573730000000000000000006064820152608401610605565b609780546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa1580156133b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133dd9190613e63565b60995550565b600054610100900460ff1661340a5760405162461bcd60e51b815260040161060590613e7c565b610961613598565b60008060ff8085169084161181816134365761342e8587614897565b60ff16613444565b6134408686614897565b60ff165b61344f90600a614994565b9350909150505b9250929050565b6000613468336115d7565b61347233836135c8565b5090565b60006132ad84848460006136fc565b60606132ad848460008561372d565b6000845a10156134e65760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e742067617300000000006044820152606401610605565b834710156135365760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c75650000006044820152606401610605565b826001600160a01b03163b600003613550575060006132ad565b600080600084516020860188888bf19695505050505050565b600054610100900460ff166135905760405162461bcd60e51b815260040161060590613e7c565b610961613808565b600054610100900460ff166135bf5760405162461bcd60e51b815260040161060590613e7c565b6109613361155e565b6001600160a01b0382166136285760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610605565b6001600160a01b0382166000908152603360205260409020548181101561369c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610605565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60008115158415150361371a57613713858461468b565b90506132ad565b61372485846149a0565b95945050505050565b60608247101561378e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610605565b600080866001600160a01b031685876040516137aa91906149c2565b60006040518083038185875af1925050503d80600081146137e7576040519150601f19603f3d011682016040523d82523d6000602084013e6137ec565b606091505b50915091506137fd8783838761382f565b979650505050505050565b600054610100900460ff1661198f5760405162461bcd60e51b815260040161060590613e7c565b6060831561389e578251600003613897576001600160a01b0385163b6138975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610605565b50816132ad565b6132ad83838151156138b35781518083602001fd5b8060405162461bcd60e51b8152600401610605919061391d565b60005b838110156138e85781810151838201526020016138d0565b50506000910152565b600081518084526139098160208601602086016138cd565b601f01601f19169290920160200192915050565b6020815260006115fb60208301846138f1565b6001600160a01b038116811461094257600080fd5b80356127c581613930565b6000806040838503121561396357600080fd5b823561396e81613930565b946020939093013593505050565b60008060006060848603121561399157600080fd5b833561399c81613930565b925060208401356139ac81613930565b929592945050506040919091013590565b6000602082840312156139cf57600080fd5b81356115fb81613930565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715613a1257613a126139da565b60405290565b604080519081016001600160401b0381118282101715613a1257613a126139da565b60405161010081016001600160401b0381118282101715613a1257613a126139da565b604051601f8201601f191681016001600160401b0381118282101715613a8557613a856139da565b604052919050565b803560ff811681146127c557600080fd5b60006001600160401b03821115613ab757613ab76139da565b50601f01601f191660200190565b600082601f830112613ad657600080fd5b8135613ae9613ae482613a9e565b613a5d565b818152846020838601011115613afe57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080848603610100811215613b3357600080fd5b60a0811215613b4157600080fd5b50613b4a6139f0565b8535613b5581613930565b81526020860135613b6581613930565b6020820152604086810135908201526060860135613b8281613930565b6060820152613b9360808701613a8d565b6080820152935060a08501356001600160401b0380821115613bb457600080fd5b613bc088838901613ac5565b945060c0870135915080821115613bd657600080fd5b50613be387828801613ac5565b925050613bf260e08601613a8d565b905092959194509250565b600080828403610120811215613c1257600080fd5b61010080821215613c2257600080fd5b9395938601359450505050565b600060208284031215613c4157600080fd5b5035919050565b60008060408385031215613c5b57600080fd5b82356001600160401b03811115613c7157600080fd5b8301610160818603121561396e57600080fd5b600060408284031215613c9657600080fd5b50919050565b60008060008060608587031215613cb257600080fd5b843593506020850135613cc481613930565b925060408501356001600160401b0380821115613ce057600080fd5b818701915087601f830112613cf457600080fd5b813581811115613d0357600080fd5b886020828501011115613d1557600080fd5b95989497505060200194505050565b60008060408385031215613d3757600080fd5b8235613d4281613930565b91506020830135613d5281613930565b809150509250929050565b600181811c90821680613d7157607f821691505b602082108103613c9657634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156105ad576105ad613ddf565b634e487b7160e01b600052602160045260246000fd5b602081526000825160058110613e4457634e487b7160e01b600052602160045260246000fd5b8060208401525060208301516040808401526132ad60608401826138f1565b600060208284031215613e7557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b80841015613f9a57845183168252938501936001939093019290850190613f78565b5060a0880151878203601f190160e08901529450613fb881866138f1565b98975050505050505050565b600082601f830112613fd557600080fd5b8151613fe3613ae482613a9e565b818152846020838601011115613ff857600080fd5b6132ad8260208301602087016138cd565b60006020828403121561401b57600080fd5b81516001600160401b038082111561403257600080fd5b908301906040828603121561404657600080fd5b61404e613a18565b82516005811061405d57600080fd5b815260208301518281111561407157600080fd5b61407d87828601613fc4565b60208301525095945050505050565b80516127c581613930565b6000604082840312156140a957600080fd5b6140b1613a18565b82516140bc81613930565b81526020928301519281019290925250919050565b6000602082840312156140e357600080fd5b81516001600160401b03808211156140fa57600080fd5b90830190610100828603121561410f57600080fd5b614117613a3a565b825181526141276020840161408c565b60208201526141386040840161408c565b60408201526141496060840161408c565b60608201526080830151608082015260a08301518281111561416a57600080fd5b61417687828601613fc4565b60a08301525060c083015160c082015261419260e0840161408c565b60e082015295945050505050565b60208082526024908201527f546f6b656e52656d6f74653a207a65726f20726571756972656420676173206c6040820152631a5b5a5d60e21b606082015260800190565b6020808252602b908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20626c60408201526a1bd8dad8da185a5b88125160aa1b606082015260800190565b60208082526037908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20746f60408201527f6b656e207472616e736665727265722061646472657373000000000000000000606082015260800190565b81516001600160a01b0316815260208083015190820152604081016105ad565b82358152610120810160208401356142c381613930565b6001600160a01b0390811660208401526040850135906142e282613930565b1660408301526142f460608501613945565b6001600160a01b0381166060840152506080840135608083015260a084013560a083015260c084013560c083015261432e60e08501613945565b6001600160a01b031660e083015261010090910191909152919050565b6000808335601e1984360301811261436257600080fd5b8301803591506001600160401b0382111561437c57600080fd5b60200191503681900382131561345657600080fd5b60208152815160208201526000602083015160018060a01b038082166040850152806040860151166060850152505060608301516143da60808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c08501526144016101208501836138f1565b915060c085015160e085015260e0850151614426828601826001600160a01b03169052565b5090949350505050565b6000808335601e1984360301811261444757600080fd5b83016020810192503590506001600160401b0381111561446657600080fd5b80360382131561345657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081528235604082015260006144b760208501613945565b6001600160a01b031660608301526144d160408501613945565b6001600160a01b031660808301526144ec6060850185614430565b6101608060a08601526145046101a086018385614475565b9250608087013560c086015260a087013560e086015261452660c08801613945565b915061010061453f818701846001600160a01b03169052565b61454b60e08901613945565b9250610120614564818801856001600160a01b03169052565b61456f828a01613945565b9350610140915061458a828801856001600160a01b03169052565b880135918601919091529095013561018084015260209092019290925292915050565b602081526145c76020820183516001600160a01b03169052565b60208201516040820152600060408301516145ed60608401826001600160a01b03169052565b5060608301516001600160a01b038116608084015250608083015160a083015260a08301516101608060c08501526146296101808501836138f1565b915060c085015160e085015260e0850151610100614651818701836001600160a01b03169052565b86015161012086810191909152860151905061014061467a818701836001600160a01b03169052565b959095015193019290925250919050565b80820281158282048414176105ad576105ad613ddf565b818103818111156105ad576105ad613ddf565b6000602082840312156146c757600080fd5b81516115fb81613930565b8681526001600160a01b0386811660208301528581166040830152841660608201526080810183905260c060a08201819052600090613fb8908301846138f1565b601f82111561199657600081815260208120601f850160051c8101602086101561473a5750805b601f850160051c820191505b81811015610bd557828155600101614746565b81516001600160401b03811115614772576147726139da565b614786816147808454613d5d565b84614713565b602080601f8311600181146147bb57600084156147a35750858301515b600019600386901b1c1916600185901b178555610bd5565b600085815260208120601f198616915b828110156147ea578886015182559484019460019091019084016147cb565b50858210156148085787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252603a908201527f546f6b656e52656d6f74653a20696e76616c69642064657374696e6174696f6e60408201527f20746f6b656e207472616e736665727265722061646472657373000000000000606082015260800190565b60006020828403121561488757600080fd5b815180151581146115fb57600080fd5b60ff82811682821603908111156105ad576105ad613ddf565b600181815b808511156148eb5781600019048211156148d1576148d1613ddf565b808516156148de57918102915b93841c93908002906148b5565b509250929050565b600082614902575060016105ad565b8161490f575060006105ad565b8160018114614925576002811461492f5761494b565b60019150506105ad565b60ff84111561494057614940613ddf565b50506001821b6105ad565b5060208310610133831016604e8410600b841016171561496e575081810a6105ad565b61497883836148b0565b806000190482111561498c5761498c613ddf565b029392505050565b60006115fb83836148f3565b6000826149bd57634e487b7160e01b600052601260045260246000fd5b500490565b600082516149d48184602087016138cd565b919091019291505056fea2646970667358221220d1e7211391f85fdcdba9e6631435a6cd024e0e71860cce1daf00d6fa493669a664736f6c63430008120033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\"}],\"name\":\"MinTeleporterVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MULTI_HOP_CALL_GAS_PER_WORD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_CALL_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_SEND_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_REMOTE_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payloadSize\",\"type\":\"uint256\"}],\"name\":\"calculateNumWords\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInitialReserveImbalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsCollateralized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinTeleporterVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMultiplyOnRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenHomeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenHomeBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"teleporterRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"teleporterManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tokenHomeBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenHomeAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenHomeDecimals\",\"type\":\"uint8\"}],\"internalType\":\"structTokenRemoteSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"isTeleporterAddressPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"pauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"receiveTeleporterMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTeleporterFeeInfo\",\"name\":\"feeInfo\",\"type\":\"tuple\"}],\"name\":\"registerWithHome\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"teleporterRegistry\",\"outputs\":[{\"internalType\":\"contractTeleporterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"unpauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"updateMinTeleporterVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b50614a14806100206000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80636569003811610130578063a9059cbb116100b8578063dd62ed3e1161007c578063dd62ed3e14610491578063e0fd9cb8146104a4578063ef793e2a146104ac578063f2fde38b146104b4578063f3f981d8146104c757600080fd5b8063a9059cbb14610448578063b8a46d021461045b578063c3cd69271461046e578063c868efaa14610476578063d2cc7a701461048957600080fd5b80637ee3779a116100ff5780637ee3779a146103e85780638da5cb5b146103f057806395d89b41146104015780639731429714610409578063a457c2d71461043557600080fd5b8063656900381461039a57806370a08231146103ad578063715018a6146103d657806371717c18146103de57600080fd5b80632b0d8f18116101b35780634511243e116101825780634511243e146103445780634ed52e96146103575780635507f3d11461036a5780635d16225d146103745780635eb995141461038757600080fd5b80632b0d8f18146102e0578063313ce567146102f557806339509351146103295780634213cf781461033c57600080fd5b806315beb59f116101fa57806315beb59f1461028757806318160ddd146102905780631a7f5bec1461029857806323b872dd146102c3578063254ac160146102d657600080fd5b806302a30c7d1461022c57806306fdde03146102495780630733c8c81461025e578063095ea7b314610274575b600080fd5b6102346104da565b60405190151581526020015b60405180910390f35b6102516104f2565b604051610240919061391d565b610266610584565b604051908152602001610240565b610234610282366004613950565b610599565b6102666105dc81565b603554610266565b6097546102ab906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b6102346102d136600461397c565b6105b3565b6102666201fbd081565b6102f36102ee3660046139bd565b6105d7565b005b7f69a5f7616543528c4fbe43f410b1034bd6da4ba06c25bedf04617268014cf5005460405160ff9091168152602001610240565b610234610337366004613950565b6106d9565b6102666106fb565b6102f36103523660046139bd565b61070d565b6102f3610365366004613b1b565b61080a565b6102666205302081565b6102f3610382366004613bfd565b610923565b6102f3610395366004613c2f565b610931565b6102f36103a8366004613c48565b610945565b6102666103bb3660046139bd565b6001600160a01b031660009081526033602052604090205490565b6102f361094f565b6102666205573081565b610234610963565b609a546001600160a01b03166102ab565b61025161097b565b6102346104173660046139bd565b6001600160a01b031660009081526098602052604090205460ff1690565b610234610443366004613950565b61098a565b610234610456366004613950565b610a05565b6102f3610469366004613c84565b610a13565b6102ab610bdd565b6102f3610484366004613c9c565b610bfb565b609954610266565b61026661049f366004613d24565b610da7565b610266610dd2565b610266610de7565b6102f36104c23660046139bd565b610dfc565b6102666104d5366004613c2f565b610e72565b6000806104e5610e89565b6006015460ff1692915050565b60606036805461050190613d5d565b80601f016020809104026020016040519081016040528092919081815260200182805461052d90613d5d565b801561057a5780601f1061054f5761010080835404028352916020019161057a565b820191906000526020600020905b81548152906001019060200180831161055d57829003601f168201915b5050505050905090565b60008061058f610e89565b6003015492915050565b6000336105a7818585610ead565b60019150505b92915050565b6000336105c1858285610fd1565b6105cc858585611045565b506001949350505050565b6105df6111f0565b6001600160a01b03811661060e5760405162461bcd60e51b815260040161060590613d91565b60405180910390fd5b6001600160a01b03811660009081526098602052604090205460ff161561068d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610605565b6001600160a01b038116600081815260986020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b6000336105a78185856106ec8383610da7565b6106f69190613df5565b610ead565b600080610706610e89565b5492915050565b6107156111f0565b6001600160a01b03811661073b5760405162461bcd60e51b815260040161060590613d91565b6001600160a01b03811660009081526098602052604090205460ff166107b55760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610605565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152609860205260409020805460ff19169055565b600054610100900460ff161580801561082a5750600054600160ff909116105b806108445750303b158015610844575060005460ff166001145b6108a75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610605565b6000805460ff1916600117905580156108ca576000805461ff0019166101001790555b6108d6858585856111f8565b801561091c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b61092d8282611268565b5050565b6109396111f0565b610942816112f1565b50565b61092d828261147b565b610957611504565b610961600061155e565b565b60008061096e610e89565b6004015460ff1692915050565b60606037805461050190613d5d565b600033816109988286610da7565b9050838110156109f85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610605565b6105cc8286868403610ead565b6000336105a7818585611045565b6000610a1d610e89565b6006810154909150610100900460ff1615610a7a5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e52656d6f74653a20616c72656164792072656769737465726564006044820152606401610605565b604080516060808201835260058401548252600284015460ff600160a01b820481166020808601918252600160a81b9093048216858701908152865180880188526000808252885188518188015293518516848a01529151909316828601528651808303909501855260809091019095528082019290925291929091610b1090610b06908701876139bd565b86602001356115b0565b6040805160c0810182526001870154815260028701546001600160a01b031660208083019190915282518084018452939450610bd5939192830191908190610b5a908b018b6139bd565b6001600160a01b0316815260209081018690529082526201fbd09082015260400160005b604051908082528060200260200182016040528015610ba7578160200160208202803683370190505b50815260200184604051602001610bbe9190613e1e565b604051602081830303815290604052815250611602565b505050505050565b600080610be8610e89565b600201546001600160a01b031692915050565b610c03611721565b6099546097546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c809190613e63565b1015610ce75760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610605565b610cf033610417565b15610d565760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610605565b610d97848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177a92505050565b610da16001606555565b50505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b600080610ddd610e89565b6001015492915050565b600080610df2610e89565b6005015492915050565b610e04611504565b6001600160a01b038116610e695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610605565b6109428161155e565b60006005610e8183601f613df5565b901c92915050565b7f600d6a9b283d1eda563de594ce4843869b6f128a4baa222422ed94a60b0cef0090565b6001600160a01b038316610f0f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610605565b6001600160a01b038216610f705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610605565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610fdd8484610da7565b90506000198114610da157818110156110385760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610605565b610da18484848403610ead565b6001600160a01b0383166110a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610605565b6001600160a01b03821661110b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610605565b6001600160a01b038316600090815260336020526040902054818110156111835760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610605565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e39086815260200190565b60405180910390a3610da1565b610961611504565b600054610100900460ff1661121f5760405162461bcd60e51b815260040161060590613e7c565b611229838361199b565b611235846000836119cc565b7f69a5f7616543528c4fbe43f410b1034bd6da4ba06c25bedf04617268014cf500805460ff191660ff8316179055610da1565b7fd2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c750080546001146112aa5760405162461bcd60e51b815260040161060590613ec7565b6002815560006112b8610e89565b90506112c384611a18565b60018101548435036112de576112d98484611b06565b6112e8565b6112e88484611c8f565b50600190555050565b6097546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190613e63565b609954909150818311156113cf5760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610605565b8083116114445760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610605565b6099839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b7fd2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c750080546001146114bd5760405162461bcd60e51b815260040161060590613ec7565b6002815560006114cb610e89565b90506114d684611e5f565b60018101548435036114f2576114ec848461209e565b506114fc565b6114ec84846122b4565b600190555050565b609a546001600160a01b031633146109615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610605565b609a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000816000036115c2575060006105ad565b306001600160a01b038416036115f0576115de335b3084610fd1565b6115e9333084611045565b50806105ad565b6115fb833384612558565b9392505050565b60008061160d6126c1565b604084015160200151909150156116b2576040830151516001600160a01b031661168f5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610605565b6040830151602081015190516116b2916001600160a01b039091169083906127ca565b604051630624488560e41b81526001600160a01b038216906362448850906116de908690600401613f0b565b6020604051808303816000875af11580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fb9190613e63565b6002606554036117735760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610605565b6002606555565b6000611784610e89565b9050806001015484146117eb5760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20696e76616c696420736f7572636520626c6f636044820152681ad8da185a5b88125160ba1b6064820152608401610605565b60028101546001600160a01b0384811691161461185d5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a20696e76616c6964206f726967696e2073656e646044820152696572206164647265737360b01b6064820152608401610605565b6000828060200190518101906118739190614009565b6006830154909150610100900460ff1615806118945750600682015460ff16155b156118ab5760068201805461ffff19166101011790555b6001815160048111156118c0576118c0613e08565b036118f957600081602001518060200190518101906118df9190614097565b90506118f3816000015182602001516128af565b5061091c565b60028151600481111561190e5761190e613e08565b0361193d576000816020015180602001905181019061192d91906140d1565b90506118f38182608001516128fc565b60405162461bcd60e51b815260206004820152602160248201527f546f6b656e52656d6f74653a20696e76616c6964206d657373616765207479706044820152606560f81b6064820152608401610605565b6001606555565b505050565b600054610100900460ff166119c25760405162461bcd60e51b815260040161060590613e7c565b61092d8282612a5a565b600054610100900460ff166119f35760405162461bcd60e51b815260040161060590613e7c565b611a0583600001518460200151612a9a565b611a0d612adb565b611996838383612b2b565b6000611a2a60608301604084016139bd565b6001600160a01b031603611a8c5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e74206164647260448201526265737360e81b6064820152608401610605565b60008160c0013511611ab05760405162461bcd60e51b8152600401610605906141a0565b8035611ace5760405162461bcd60e51b8152600401610605906141e4565b6000611ae060408301602084016139bd565b6001600160a01b0316036109425760405162461bcd60e51b81526004016106059061422f565b6000611b10610e89565b9050611b40611b2560408501602086016139bd565b60a0850135611b3b610100870160e088016139bd565b612e71565b6000611b6583611b5660808701606088016139bd565b86608001358760a00135612f6f565b60408051808201909152919450915060009080600181526020016040518060400160405280886040016020810190611b9d91906139bd565b6001600160a01b0316815260200187815250604051602001611bbf919061428c565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092611c419282019080611c1860808c0160608d016139bd565b6001600160a01b03168152602090810188905290825260c08a0135908201526040016000610b7e565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528888604051611c7f9291906142ac565b60405180910390a3505050505050565b6000611c99610e89565b9050611cc68335611cb060408601602087016139bd565b611cc1610100870160e088016139bd565b613034565b6000611cdc83611b5660808701606088016139bd565b60408051808201825260038152815160e0810183528835815293965091935060009260208084019282820191611d16918b01908b016139bd565b6001600160a01b03168152602001611d3460608a0160408b016139bd565b6001600160a01b031681526020810188905260a0890135604082015260c08901356060820152608001611d6e6101008a0160e08b016139bd565b6001600160a01b03169052604051611dde9190602001815181526020808301516001600160a01b0390811691830191909152604080840151821690830152606080840151908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092611c419282019080611e3760808c0160608d016139bd565b6001600160a01b03168152602090810188905290825262053020908201526040016000610b7e565b8035611e7d5760405162461bcd60e51b8152600401610605906141e4565b6000611e8f60408301602084016139bd565b6001600160a01b031603611eb55760405162461bcd60e51b81526004016106059061422f565b6000611ec760608301604084016139bd565b6001600160a01b031603611f325760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420636f6e7460448201526b72616374206164647265737360a01b6064820152608401610605565b6000816080013511611f565760405162461bcd60e51b8152600401610605906141a0565b60008160a0013511611fb85760405162461bcd60e51b815260206004820152602560248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420676173206044820152641b1a5b5a5d60da1b6064820152608401610605565b80608001358160a00135106120205760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a20696e76616c696420726563697069656e742067604482015267185cc81b1a5b5a5d60c21b6064820152608401610605565b6000612033610100830160e084016139bd565b6001600160a01b0316036109425760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f2066616c6c6261636b20726563697060448201526b69656e74206164647265737360a01b6064820152608401610605565b60006120a8610e89565b90506120d36120bd60408501602086016139bd565b610140850135611b3b60e0870160c088016139bd565b60006120fc836120eb610120870161010088016139bd565b866101200135876101400135612f6f565b604080518082019091529194509150600090806002815260200160405180610100016040528086600001548152602001306001600160a01b031681526020016121423390565b6001600160a01b0316815260200161216060608a0160408b016139bd565b6001600160a01b031681526020810188905260400161218260608a018a61434b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a089013560208201526040016121d76101008a0160e08b016139bd565b6001600160a01b031690526040516121f29190602001614391565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612276928201908061224d6101208c016101008d016139bd565b6001600160a01b03168152602090810188905290825260808a0135908201526040016000610b7e565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168888604051611c7f92919061449e565b60006122be610e89565b90506122e583356122d560408601602087016139bd565b611cc160e0870160c088016139bd565b60006122fd836120eb610120870161010088016139bd565b604080518082019091529194509150600090806004815260200160405180610160016040528061232a3390565b6001600160a01b031681526020018860000135815260200188602001602081019061235591906139bd565b6001600160a01b0316815260200161237360608a0160408b016139bd565b6001600160a01b031681526020810188905260400161239560608a018a61434b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a089013560208201526040016123ea6101008a0160e08b016139bd565b6001600160a01b031681526080890135602082015260400161241260e08a0160c08b016139bd565b6001600160a01b031681526101408901356020918201526040516124379291016145ad565b60408051601f198184030181529190529052905060006105dc612467612460606089018961434b565b9050610e72565b612471919061468b565b61247e9062055730613df5565b6040805160c0810182526001870154815260028701546001600160a01b031660208201528151808301835292935060009261250992820190806124c96101208d016101008e016139bd565b6001600160a01b031681526020908101899052908252818101869052604080516000815280830182528184015251606090920191610bbe91889101613e1e565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b16898960405161254792919061449e565b60405180910390a350505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c59190613e63565b90506125dc6001600160a01b0386168530866130d3565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126479190613e63565b90508181116126ad5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610605565b6126b782826146a2565b9695505050505050565b600080609760009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273b91906146b5565b905061275f816001600160a01b031660009081526098602052604090205460ff1690565b156127c55760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610605565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190613e63565b6128499190613df5565b6040516001600160a01b038516602482015260448101829052909150610da190859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261310b565b816001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b826040516128ea91815260200190565b60405180910390a261092d82826131dd565b61290630826131dd565b61291530836060015183610ead565b600082600001518360200151846040015130858760a00151604051602401612942969594939291906146d2565b60408051601f198184030181529190526020810180516001600160e01b03166394395edd60e01b17905260c0840151606085015191925060009161298791908461329e565b90506000612999308660600151610da7565b90506129ab3086606001516000610ead565b81156129fd5784606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff4856040516129f091815260200190565b60405180910390a2612a45565b84606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb085604051612a3c91815260200190565b60405180910390a25b801561091c5761091c308660e0015183611045565b600054610100900460ff16612a815760405162461bcd60e51b815260040161060590613e7c565b6036612a8d8382614759565b5060376119968282614759565b600054610100900460ff16612ac15760405162461bcd60e51b815260040161060590613e7c565b612aca826132b5565b612ad26133e3565b61092d81610dfc565b600054610100900460ff16612b025760405162461bcd60e51b815260040161060590613e7c565b61096160017fd2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c750055565b600054610100900460ff16612b525760405162461bcd60e51b815260040161060590613e7c565b6000612b5c610e89565b90506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc79190613e63565b81556040840151612c2d5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d6520626c6f60448201526918dad8da185a5b88125160b21b6064820152608401610605565b8054604085015103612ca75760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e52656d6f74653a2063616e6e6f74206465706c6f7920746f20736160448201527f6d6520626c6f636b636861696e20617320746f6b656e20686f6d6500000000006064820152608401610605565b60608401516001600160a01b0316612d0d5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d65206164646044820152637265737360e01b6064820152608401610605565b6012846080015160ff161115612d775760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20746f6b656e20686f6d6520646563696d616c73604482015268040e8dede40d0d2ced60bb1b6064820152608401610605565b60128260ff161115612dd75760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a20746f6b656e20646563696d616c7320746f6f206044820152630d0d2ced60e31b6064820152608401610605565b60408401516001820155606084015160028201805460058401869055600684018054871560ff1990911617905560808701516001600160a01b039093166001600160a81b031990911617600160a01b60ff808516919091029190911760ff60a81b1916600160a81b91861691909102179055612e539083613412565b60048301805460ff1916911515919091179055600390910155505050565b6000612e7b610e89565b60028101549091506001600160a01b03858116911614612ead5760405162461bcd60e51b815260040161060590614818565b8215612f075760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f207365636f6e646172792060448201526266656560e81b6064820152608401610605565b6001600160a01b03821615610da15760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f206d756c74692d686f702060448201526766616c6c6261636b60c01b6064820152608401610605565b6000806000612f7c610e89565b9050612f8886866115b0565b9450612f938761345d565b60038201546004830154919850612fad9160ff1686613476565b60038201546004830154612fc5919060ff168a613476565b116130275760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a20696e73756666696369656e7420746f6b656e7360448201526b103a37903a3930b739b332b960a11b6064820152608401610605565b5094959294509192505050565b600061303e610e89565b8054909150840361307157306001600160a01b038416036130715760405162461bcd60e51b815260040161060590614818565b6001600160a01b038216610da15760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f206d756c74692d686f702066616c6c6044820152636261636b60e01b6064820152608401610605565b6040516001600160a01b0380851660248301528316604482015260648101829052610da19085906323b872dd60e01b90608401612878565b6000613160826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134859092919063ffffffff16565b805190915015611996578080602001905181019061317e9190614875565b6119965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610605565b6001600160a01b0382166132335760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610605565b80603560008282546132459190613df5565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60006132ad8460008585613494565b949350505050565b600054610100900460ff166132dc5760405162461bcd60e51b815260040161060590613e7c565b6132e4613569565b6001600160a01b0381166133605760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f7274657220726567697374727920616464726573730000000000000000006064820152608401610605565b609780546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa1580156133b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133dd9190613e63565b60995550565b600054610100900460ff1661340a5760405162461bcd60e51b815260040161060590613e7c565b610961613598565b60008060ff8085169084161181816134365761342e8587614897565b60ff16613444565b6134408686614897565b60ff165b61344f90600a614994565b9350909150505b9250929050565b6000613468336115d7565b61347233836135c8565b5090565b60006132ad84848460006136fc565b60606132ad848460008561372d565b6000845a10156134e65760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e742067617300000000006044820152606401610605565b834710156135365760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c75650000006044820152606401610605565b826001600160a01b03163b600003613550575060006132ad565b600080600084516020860188888bf19695505050505050565b600054610100900460ff166135905760405162461bcd60e51b815260040161060590613e7c565b610961613808565b600054610100900460ff166135bf5760405162461bcd60e51b815260040161060590613e7c565b6109613361155e565b6001600160a01b0382166136285760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610605565b6001600160a01b0382166000908152603360205260409020548181101561369c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610605565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60008115158415150361371a57613713858461468b565b90506132ad565b61372485846149a0565b95945050505050565b60608247101561378e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610605565b600080866001600160a01b031685876040516137aa91906149c2565b60006040518083038185875af1925050503d80600081146137e7576040519150601f19603f3d011682016040523d82523d6000602084013e6137ec565b606091505b50915091506137fd8783838761382f565b979650505050505050565b600054610100900460ff1661198f5760405162461bcd60e51b815260040161060590613e7c565b6060831561389e578251600003613897576001600160a01b0385163b6138975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610605565b50816132ad565b6132ad83838151156138b35781518083602001fd5b8060405162461bcd60e51b8152600401610605919061391d565b60005b838110156138e85781810151838201526020016138d0565b50506000910152565b600081518084526139098160208601602086016138cd565b601f01601f19169290920160200192915050565b6020815260006115fb60208301846138f1565b6001600160a01b038116811461094257600080fd5b80356127c581613930565b6000806040838503121561396357600080fd5b823561396e81613930565b946020939093013593505050565b60008060006060848603121561399157600080fd5b833561399c81613930565b925060208401356139ac81613930565b929592945050506040919091013590565b6000602082840312156139cf57600080fd5b81356115fb81613930565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715613a1257613a126139da565b60405290565b604080519081016001600160401b0381118282101715613a1257613a126139da565b60405161010081016001600160401b0381118282101715613a1257613a126139da565b604051601f8201601f191681016001600160401b0381118282101715613a8557613a856139da565b604052919050565b803560ff811681146127c557600080fd5b60006001600160401b03821115613ab757613ab76139da565b50601f01601f191660200190565b600082601f830112613ad657600080fd5b8135613ae9613ae482613a9e565b613a5d565b818152846020838601011115613afe57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080848603610100811215613b3357600080fd5b60a0811215613b4157600080fd5b50613b4a6139f0565b8535613b5581613930565b81526020860135613b6581613930565b6020820152604086810135908201526060860135613b8281613930565b6060820152613b9360808701613a8d565b6080820152935060a08501356001600160401b0380821115613bb457600080fd5b613bc088838901613ac5565b945060c0870135915080821115613bd657600080fd5b50613be387828801613ac5565b925050613bf260e08601613a8d565b905092959194509250565b600080828403610120811215613c1257600080fd5b61010080821215613c2257600080fd5b9395938601359450505050565b600060208284031215613c4157600080fd5b5035919050565b60008060408385031215613c5b57600080fd5b82356001600160401b03811115613c7157600080fd5b8301610160818603121561396e57600080fd5b600060408284031215613c9657600080fd5b50919050565b60008060008060608587031215613cb257600080fd5b843593506020850135613cc481613930565b925060408501356001600160401b0380821115613ce057600080fd5b818701915087601f830112613cf457600080fd5b813581811115613d0357600080fd5b886020828501011115613d1557600080fd5b95989497505060200194505050565b60008060408385031215613d3757600080fd5b8235613d4281613930565b91506020830135613d5281613930565b809150509250929050565b600181811c90821680613d7157607f821691505b602082108103613c9657634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156105ad576105ad613ddf565b634e487b7160e01b600052602160045260246000fd5b602081526000825160058110613e4457634e487b7160e01b600052602160045260246000fd5b8060208401525060208301516040808401526132ad60608401826138f1565b600060208284031215613e7557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b80841015613f9a57845183168252938501936001939093019290850190613f78565b5060a0880151878203601f190160e08901529450613fb881866138f1565b98975050505050505050565b600082601f830112613fd557600080fd5b8151613fe3613ae482613a9e565b818152846020838601011115613ff857600080fd5b6132ad8260208301602087016138cd565b60006020828403121561401b57600080fd5b81516001600160401b038082111561403257600080fd5b908301906040828603121561404657600080fd5b61404e613a18565b82516005811061405d57600080fd5b815260208301518281111561407157600080fd5b61407d87828601613fc4565b60208301525095945050505050565b80516127c581613930565b6000604082840312156140a957600080fd5b6140b1613a18565b82516140bc81613930565b81526020928301519281019290925250919050565b6000602082840312156140e357600080fd5b81516001600160401b03808211156140fa57600080fd5b90830190610100828603121561410f57600080fd5b614117613a3a565b825181526141276020840161408c565b60208201526141386040840161408c565b60408201526141496060840161408c565b60608201526080830151608082015260a08301518281111561416a57600080fd5b61417687828601613fc4565b60a08301525060c083015160c082015261419260e0840161408c565b60e082015295945050505050565b60208082526024908201527f546f6b656e52656d6f74653a207a65726f20726571756972656420676173206c6040820152631a5b5a5d60e21b606082015260800190565b6020808252602b908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20626c60408201526a1bd8dad8da185a5b88125160aa1b606082015260800190565b60208082526037908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20746f60408201527f6b656e207472616e736665727265722061646472657373000000000000000000606082015260800190565b81516001600160a01b0316815260208083015190820152604081016105ad565b82358152610120810160208401356142c381613930565b6001600160a01b0390811660208401526040850135906142e282613930565b1660408301526142f460608501613945565b6001600160a01b0381166060840152506080840135608083015260a084013560a083015260c084013560c083015261432e60e08501613945565b6001600160a01b031660e083015261010090910191909152919050565b6000808335601e1984360301811261436257600080fd5b8301803591506001600160401b0382111561437c57600080fd5b60200191503681900382131561345657600080fd5b60208152815160208201526000602083015160018060a01b038082166040850152806040860151166060850152505060608301516143da60808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c08501526144016101208501836138f1565b915060c085015160e085015260e0850151614426828601826001600160a01b03169052565b5090949350505050565b6000808335601e1984360301811261444757600080fd5b83016020810192503590506001600160401b0381111561446657600080fd5b80360382131561345657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081528235604082015260006144b760208501613945565b6001600160a01b031660608301526144d160408501613945565b6001600160a01b031660808301526144ec6060850185614430565b6101608060a08601526145046101a086018385614475565b9250608087013560c086015260a087013560e086015261452660c08801613945565b915061010061453f818701846001600160a01b03169052565b61454b60e08901613945565b9250610120614564818801856001600160a01b03169052565b61456f828a01613945565b9350610140915061458a828801856001600160a01b03169052565b880135918601919091529095013561018084015260209092019290925292915050565b602081526145c76020820183516001600160a01b03169052565b60208201516040820152600060408301516145ed60608401826001600160a01b03169052565b5060608301516001600160a01b038116608084015250608083015160a083015260a08301516101608060c08501526146296101808501836138f1565b915060c085015160e085015260e0850151610100614651818701836001600160a01b03169052565b86015161012086810191909152860151905061014061467a818701836001600160a01b03169052565b959095015193019290925250919050565b80820281158282048414176105ad576105ad613ddf565b818103818111156105ad576105ad613ddf565b6000602082840312156146c757600080fd5b81516115fb81613930565b8681526001600160a01b0386811660208301528581166040830152841660608201526080810183905260c060a08201819052600090613fb8908301846138f1565b601f82111561199657600081815260208120601f850160051c8101602086101561473a5750805b601f850160051c820191505b81811015610bd557828155600101614746565b81516001600160401b03811115614772576147726139da565b614786816147808454613d5d565b84614713565b602080601f8311600181146147bb57600084156147a35750858301515b600019600386901b1c1916600185901b178555610bd5565b600085815260208120601f198616915b828110156147ea578886015182559484019460019091019084016147cb565b50858210156148085787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252603a908201527f546f6b656e52656d6f74653a20696e76616c69642064657374696e6174696f6e60408201527f20746f6b656e207472616e736665727265722061646472657373000000000000606082015260800190565b60006020828403121561488757600080fd5b815180151581146115fb57600080fd5b60ff82811682821603908111156105ad576105ad613ddf565b600181815b808511156148eb5781600019048211156148d1576148d1613ddf565b808516156148de57918102915b93841c93908002906148b5565b509250929050565b600082614902575060016105ad565b8161490f575060006105ad565b8160018114614925576002811461492f5761494b565b60019150506105ad565b60ff84111561494057614940613ddf565b50506001821b6105ad565b5060208310610133831016604e8410600b841016171561496e575081810a6105ad565b61497883836148b0565b806000190482111561498c5761498c613ddf565b029392505050565b60006115fb83836148f3565b6000826149bd57634e487b7160e01b600052601260045260246000fd5b500490565b600082516149d48184602087016138cd565b919091019291505056fea26469706673582212205b1285a6b2618280c0fd9e49b6bcabb65848bbc8005332407105943ccbd82c6c64736f6c63430008120033", } // ERC20TokenRemoteABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/TokenRemote/NativeTokenRemote/NativeTokenRemote.go b/abi-bindings/go/TokenRemote/NativeTokenRemote/NativeTokenRemote.go index 32508ee1..3b4914ac 100644 --- a/abi-bindings/go/TokenRemote/NativeTokenRemote/NativeTokenRemote.go +++ b/abi-bindings/go/TokenRemote/NativeTokenRemote/NativeTokenRemote.go @@ -73,8 +73,8 @@ type TokenRemoteSettings struct { // NativeTokenRemoteMetaData contains all meta data concerning the NativeTokenRemote contract. var NativeTokenRemoteMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"BURNED_FOR_TRANSFER_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BURNED_TX_FEES_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"HOME_CHAIN_BURN_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_CALL_GAS_PER_WORD\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_CALL_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_SEND_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"NATIVE_MINTER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractINativeMinter\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"REGISTER_REMOTE_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"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\":\"amount\",\"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\":\"calculateNumWords\",\"inputs\":[{\"name\":\"payloadSize\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"getBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getInitialReserveImbalance\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsCollateralized\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMultiplyOnRemote\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenHomeAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenHomeBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenMultiplier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalMinted\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structTokenRemoteSettings\",\"components\":[{\"name\":\"teleporterRegistryAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"teleporterManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenHomeBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"tokenHomeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenHomeDecimals\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"nativeAssetSymbol\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"initialReserveImbalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"burnedFeesReportingRewardPercentage_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isTeleporterAddressPaused\",\"inputs\":[{\"name\":\"teleporterAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"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\":\"registerWithHome\",\"inputs\":[{\"name\":\"feeInfo\",\"type\":\"tuple\",\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"reportBurnedTxFees\",\"inputs\":[{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"send\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"sendAndCall\",\"inputs\":[{\"name\":\"input\",\"type\":\"tuple\",\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"teleporterRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTeleporterRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalNativeAssetSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"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\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"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\":\"CallFailed\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CallSucceeded\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"ReportBurnedTxFees\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"feesBurned\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"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\":\"event\",\"name\":\"TokensAndCallSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"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\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b5061533d806100206000396000f3fe6080604052600436106102815760003560e01c806370a082311161014f578063c3cd6927116100c1578063e0fd9cb81161007a578063e0fd9cb814610735578063ed0ae4b014610481578063ef793e2a1461074a578063f2fde38b1461075f578063f3f981d81461077f578063f56c363d1461079f57610290565b8063c3cd6927146106b3578063c452165e146106c8578063c868efaa146106e0578063d0e30db014610290578063d2cc7a7014610700578063dd62ed3e1461071557610290565b80638da5cb5b116101135780638da5cb5b146105e757806395d89b4114610605578063973142971461061a578063a457c2d714610653578063a9059cbb14610673578063b8a46d021461069357610290565b806370a082311461055d578063715018a61461059357806371717c18146105a85780637ee3779a146105bf5780638bf2fa94146105d457610290565b80632b0d8f18116101f35780634213cf78116101ac5780634213cf78146104be5780634511243e146104d35780635507f3d1146104f357806355538c8b1461050a5780635eb995141461052a5780636e6eef8d1461054a57610290565b80632b0d8f181461040a5780632e1a7d4d1461042a578063313ce5671461044a578063329c3e1214610466578063347212c414610481578063395093511461049e57610290565b806315beb59f1161024557806315beb59f1461035b57806318160ddd146103715780631906529c146103865780631a7f5bec1461039b57806323b872dd146103d3578063254ac160146103f357610290565b806302a30c7d1461029857806306fdde03146102c25780630733c8c8146102e4578063095ea7b3146103075780630ca1c5c91461032757610290565b366102905761028e6107bf565b005b61028e6107bf565b3480156102a457600080fd5b506102ad610800565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102d7610818565b6040516102b99190614216565b3480156102f057600080fd5b506102f96108aa565b6040519081526020016102b9565b34801561031357600080fd5b506102ad610322366004614249565b6108bf565b34801561033357600080fd5b507f914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29501546102f9565b34801561036757600080fd5b506102f96105dc81565b34801561037d57600080fd5b506035546102f9565b34801561039257600080fd5b506102f96108d9565b3480156103a757600080fd5b506097546103bb906001600160a01b031681565b6040516001600160a01b0390911681526020016102b9565b3480156103df57600080fd5b506102ad6103ee366004614275565b610933565b3480156103ff57600080fd5b506102f96201fbd081565b34801561041657600080fd5b5061028e6104253660046142b6565b610957565b34801561043657600080fd5b5061028e6104453660046142d3565b610a59565b34801561045657600080fd5b50604051601281526020016102b9565b34801561047257600080fd5b506103bb6001600160991b0181565b34801561048d57600080fd5b506103bb62010203600160981b0181565b3480156104aa57600080fd5b506102ad6104b9366004614249565b610aa5565b3480156104ca57600080fd5b506102f9610ac7565b3480156104df57600080fd5b5061028e6104ee3660046142b6565b610ad9565b3480156104ff57600080fd5b506102f96205302081565b34801561051657600080fd5b5061028e6105253660046142d3565b610bd6565b34801561053657600080fd5b5061028e6105453660046142d3565b610ef2565b61028e6105583660046142ec565b610f03565b34801561056957600080fd5b506102f96105783660046142b6565b6001600160a01b031660009081526033602052604090205490565b34801561059f57600080fd5b5061028e610f31565b3480156105b457600080fd5b506102f96205573081565b3480156105cb57600080fd5b506102ad610f43565b61028e6105e2366004614327565b610f5b565b3480156105f357600080fd5b50609a546001600160a01b03166103bb565b34801561061157600080fd5b506102d7610f89565b34801561062657600080fd5b506102ad6106353660046142b6565b6001600160a01b031660009081526098602052604090205460ff1690565b34801561065f57600080fd5b506102ad61066e366004614249565b610f98565b34801561067f57600080fd5b506102ad61068e366004614249565b611013565b34801561069f57600080fd5b5061028e6106ae366004614340565b611021565b3480156106bf57600080fd5b506103bb611198565b3480156106d457600080fd5b506103bb600160981b81565b3480156106ec57600080fd5b5061028e6106fb366004614352565b6111b6565b34801561070c57600080fd5b506099546102f9565b34801561072157600080fd5b506102f96107303660046143da565b611362565b34801561074157600080fd5b506102f961138d565b34801561075657600080fd5b506102f96113a2565b34801561076b57600080fd5b5061028e61077a3660046142b6565b6113b7565b34801561078b57600080fd5b506102f961079a3660046142d3565b61142d565b3480156107ab57600080fd5b5061028e6107ba366004614543565b611444565b60405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a26107fe333461155d565b565b60008061080b61161f565b6006015460ff1692915050565b60606036805461082790614606565b80601f016020809104026020016040519081016040528092919081815260200182805461085390614606565b80156108a05780601f10610875576101008083540402835291602001916108a0565b820191906000526020600020905b81548152906001019060200180831161088357829003601f168201915b5050505050905090565b6000806108b561161f565b6003015492915050565b6000336108cd818585611643565b60019150505b92915050565b60006000805160206152e88339815191528161090462010203600160981b0131600160981b31614650565b905060006109106113a2565b836001015461091f9190614650565b905061092b8282614663565b935050505090565b600033610941858285611768565b61094c8585856117dc565b506001949350505050565b61095f611987565b6001600160a01b03811661098e5760405162461bcd60e51b815260040161098590614676565b60405180910390fd5b6001600160a01b03811660009081526098602052604090205460ff1615610a0d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610985565b6001600160a01b038116600081815260986020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b60405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a2610a98338261198f565b610aa23382611ac0565b50565b6000336108cd818585610ab88383611362565b610ac29190614650565b611643565b600080610ad261161f565b5492915050565b610ae1611987565b6001600160a01b038116610b075760405162461bcd60e51b815260040161098590614676565b6001600160a01b03811660009081526098602052604090205460ff16610b815760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610985565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152609860205260409020805460ff19169055565b6000805160206152c88339815191528054600114610c065760405162461bcd60e51b8152600401610985906146c4565b600281557f914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29502546000805160206152e883398151915290600160981b31908111610cc55760405162461bcd60e51b8152602060048201526044602482018190527f4e6174697665546f6b656e52656d6f74653a206275726e206164647265737320908201527f62616c616e6365206e6f742067726561746572207468616e206c6173742072656064820152631c1bdc9d60e21b608482015260a401610985565b6000826002015482610cd79190614663565b905060006064846000015483610ced9190614708565b610cf7919061471f565b90506000610d058284614663565b6002860185905590508115610d2857610d1e3083611bd9565b610d28308361155d565b6000610d43610d356108aa565b610d3d610f43565b84611c8d565b11610dad5760405162461bcd60e51b815260206004820152603460248201527f4e6174697665546f6b656e52656d6f74653a207a65726f207363616c6564206160448201527336b7bab73a103a37903932b837b93a10313ab93760611b6064820152608401610985565b604080518082018252600181528151808301835262010203600160981b0181526020808201859052925160009380840192610dea92909101614757565b60405160208183030381529060405281525090506000610ea76040518060c00160405280610e1661138d565b8152602001610e23611198565b6001600160a01b0316815260408051808201825230815260208181018a905283015281018c905260600160005b604051908082528060200260200182016040528015610e79578160200160208202803683370190505b50815260200184604051602001610e909190614777565b604051602081830303815290604052815250611ca4565b9050807f0832c643b65d6d3724ed14ac3a655fbc7cae54fb010918b2c2f70ef6b1bb94a584604051610edb91815260200190565b60405180910390a250506001909555505050505050565b610efa611987565b610aa281611dca565b610f0b610800565b610f275760405162461bcd60e51b8152600401610985906147bc565b610aa28134611f54565b610f39611fcd565b6107fe6000612027565b600080610f4e61161f565b6004015460ff1692915050565b610f63610800565b610f7f5760405162461bcd60e51b8152600401610985906147bc565b610aa28134612079565b60606037805461082790614606565b60003381610fa68286611362565b9050838110156110065760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610985565b61094c8286868403611643565b6000336108cd8185856117dc565b600061102b61161f565b6006810154909150610100900460ff16156110885760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e52656d6f74653a20616c72656164792072656769737465726564006044820152606401610985565b604080516060808201835260058401548252600284015460ff600160a01b820481166020808601918252600160a81b9093048216858701908152865180880188526000808252885188518188015293518516848a0152915190931682860152865180830390950185526080909101909552808201929092529192909161111e90611114908701876142b6565b86602001356120e7565b6040805160c0810182526001870154815260028701546001600160a01b031660208083019190915282518084018452939450611190939192830191908190611168908b018b6142b6565b6001600160a01b0316815260209081018690529082526201fbd0908201526040016000610e50565b505050505050565b6000806111a361161f565b600201546001600160a01b031692915050565b6111be612131565b6099546097546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b919061480b565b10156112a25760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610985565b6112ab33610635565b156113115760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610985565b611352848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061218a92505050565b61135c6001606555565b50505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60008061139861161f565b6001015492915050565b6000806113ad61161f565b6005015492915050565b6113bf611fcd565b6001600160a01b0381166114245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610985565b610aa281612027565b6000600561143c83601f614650565b901c92915050565b600054610100900460ff16158080156114645750600054600160ff909116105b8061147e5750303b15801561147e575060005460ff166001145b6114e15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610985565b6000805460ff191660011790558015611504576000805461ff0019166101001790555b611510858585856123a6565b8015611556576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0382166115b35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610985565b80603560008282546115c59190614650565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b7f600d6a9b283d1eda563de594ce4843869b6f128a4baa222422ed94a60b0cef0090565b6001600160a01b0383166116a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610985565b6001600160a01b0382166117065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610985565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006117748484611362565b9050600019811461135c57818110156117cf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610985565b61135c8484848403611643565b6001600160a01b0383166118405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610985565b6001600160a01b0382166118a25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610985565b6001600160a01b0383166000908152603360205260409020548181101561191a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610985565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061197a9086815260200190565b60405180910390a361135c565b6107fe611fcd565b6001600160a01b0382166119ef5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610985565b6001600160a01b03821660009081526033602052604090205481811015611a635760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610985565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161175b565b505050565b80471015611b105760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610985565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b5d576040519150601f19603f3d011682016040523d82523d6000602084013e611b62565b606091505b5050905080611abb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610985565b7f914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e2950180546000805160206152e8833981519152918391600090611c1c908490614650565b90915550506040516327ad555d60e11b81526001600160a01b0384166004820152602481018390526001600160991b0190634f5aaaba90604401600060405180830381600087803b158015611c7057600080fd5b505af1158015611c84573d6000803e3d6000fd5b50505050505050565b6000611c9c8484846000612456565b949350505050565b600080611caf612487565b60408401516020015190915015611d54576040830151516001600160a01b0316611d315760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610985565b604083015160208101519051611d54916001600160a01b03909116908390612590565b604051630624488560e41b81526001600160a01b03821690636244885090611d80908690600401614824565b6020604051808303816000875af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc3919061480b565b9392505050565b6097546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015611e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e38919061480b565b60995490915081831115611ea85760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610985565b808311611f1d5760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610985565b6099839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b6000805160206152c88339815191528054600114611f845760405162461bcd60e51b8152600401610985906146c4565b600281556000611f9261161f565b9050611f9d84612675565b6001810154843503611fb957611fb384846128b4565b50611fc5565b611fb38484612adf565b505b600190555050565b609a546001600160a01b031633146107fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610985565b609a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000805160206152c883398151915280546001146120a95760405162461bcd60e51b8152600401610985906146c4565b6002815560006120b761161f565b90506120c284612d88565b60018101548435036120dd576120d88484612e76565b611fc3565b611fc38484612fea565b6000816000036120f9575060006108d3565b306001600160a01b0384160361212657612114333084611768565b61211f3330846117dc565b50806108d3565b611dc38333846131b5565b6002606554036121835760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610985565b6002606555565b600061219461161f565b9050806001015484146121fb5760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20696e76616c696420736f7572636520626c6f636044820152681ad8da185a5b88125160ba1b6064820152608401610985565b60028101546001600160a01b0384811691161461226d5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a20696e76616c6964206f726967696e2073656e646044820152696572206164647265737360b01b6064820152608401610985565b6000828060200190518101906122839190614922565b6006830154909150610100900460ff1615806122a45750600682015460ff16155b156122bb5760068201805461ffff19166101011790555b6001815160048111156122d0576122d0614741565b0361230957600081602001518060200190518101906122ef91906149b0565b90506123038160000151826020015161331e565b50611556565b60028151600481111561231e5761231e614741565b0361234d576000816020015180602001905181019061233d91906149ea565b905061230381826080015161336b565b60405162461bcd60e51b815260206004820152602160248201527f546f6b656e52656d6f74653a20696e76616c6964206d657373616765207479706044820152606560f81b6064820152608401610985565b6001606555565b600054610100900460ff166123cd5760405162461bcd60e51b815260040161098590614ab9565b816000036124375760405162461bcd60e51b815260206004820152603160248201527f4e6174697665546f6b656e52656d6f74653a207a65726f20696e697469616c206044820152707265736572766520696d62616c616e636560781b6064820152608401610985565b6124418384613498565b61244d848360126134c9565b61135c81613515565b6000811515841515036124745761246d8584614708565b9050611c9c565b61247e858461471f565b95945050505050565b600080609760009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125019190614b04565b9050612525816001600160a01b031660009081526098602052604090205460ff1690565b1561258b5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610985565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156125e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612605919061480b565b61260f9190614650565b6040516001600160a01b03851660248201526044810182905290915061135c90859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526135ac565b80356126935760405162461bcd60e51b815260040161098590614b21565b60006126a560408301602084016142b6565b6001600160a01b0316036126cb5760405162461bcd60e51b815260040161098590614b6c565b60006126dd60608301604084016142b6565b6001600160a01b0316036127485760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420636f6e7460448201526b72616374206164647265737360a01b6064820152608401610985565b600081608001351161276c5760405162461bcd60e51b815260040161098590614bc9565b60008160a00135116127ce5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420676173206044820152641b1a5b5a5d60da1b6064820152608401610985565b80608001358160a00135106128365760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a20696e76616c696420726563697069656e742067604482015267185cc81b1a5b5a5d60c21b6064820152608401610985565b6000612849610100830160e084016142b6565b6001600160a01b031603610aa25760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f2066616c6c6261636b20726563697060448201526b69656e74206164647265737360a01b6064820152608401610985565b60006128be61161f565b90506128ee6128d360408501602086016142b6565b6101408501356128e960e0870160c088016142b6565b61367e565b600061291783612906610120870161010088016142b6565b86610120013587610140013561377c565b604080518082019091529194509150600090806002815260200160405180610100016040528086600001548152602001306001600160a01b0316815260200161295d3390565b6001600160a01b0316815260200161297b60608a0160408b016142b6565b6001600160a01b031681526020810188905260400161299d60608a018a614c0d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a089013560208201526040016129f26101008a0160e08b016142b6565b6001600160a01b03169052604051612a0d9190602001614c53565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612a919282019080612a686101208c016101008d016142b6565b6001600160a01b03168152602090810188905290825260808a0135908201526040016000610e50565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168888604051612acf929190614d60565b60405180910390a3505050505050565b6000612ae961161f565b9050612b158335612b0060408601602087016142b6565b612b1060e0870160c088016142b6565b613841565b6000612b2d83612906610120870161010088016142b6565b6040805180820190915291945091506000908060048152602001604051806101600160405280612b5a3390565b6001600160a01b0316815260200188600001358152602001886020016020810190612b8591906142b6565b6001600160a01b03168152602001612ba360608a0160408b016142b6565b6001600160a01b0316815260208101889052604001612bc560608a018a614c0d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a08901356020820152604001612c1a6101008a0160e08b016142b6565b6001600160a01b0316815260808901356020820152604001612c4260e08a0160c08b016142b6565b6001600160a01b03168152610140890135602091820152604051612c67929101614e6f565b60408051601f198184030181529190529052905060006105dc612c97612c906060890189614c0d565b905061142d565b612ca19190614708565b612cae9062055730614650565b6040805160c0810182526001870154815260028701546001600160a01b0316602082015281518083018352929350600092612d399282019080612cf96101208d016101008e016142b6565b6001600160a01b031681526020908101899052908252818101869052604080516000815280830182528184015251606090920191610e9091889101614777565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168989604051612d77929190614d60565b60405180910390a350505050505050565b6000612d9a60608301604084016142b6565b6001600160a01b031603612dfc5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e74206164647260448201526265737360e81b6064820152608401610985565b60008160c0013511612e205760405162461bcd60e51b815260040161098590614bc9565b8035612e3e5760405162461bcd60e51b815260040161098590614b21565b6000612e5060408301602084016142b6565b6001600160a01b031603610aa25760405162461bcd60e51b815260040161098590614b6c565b6000612e8061161f565b9050612eab612e9560408501602086016142b6565b60a08501356128e9610100870160e088016142b6565b6000612ed083612ec160808701606088016142b6565b86608001358760a0013561377c565b60408051808201909152919450915060009080600181526020016040518060400160405280886040016020810190612f0891906142b6565b6001600160a01b0316815260200187815250604051602001612f2a9190614757565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612fac9282019080612f8360808c0160608d016142b6565b6001600160a01b03168152602090810188905290825260c08a0135908201526040016000610e50565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528888604051612acf929190614f4d565b6000612ff461161f565b905061301c833561300b60408601602087016142b6565b612b10610100870160e088016142b6565b600061303283612ec160808701606088016142b6565b60408051808201825260038152815160e081018352883581529396509193506000926020808401928282019161306c918b01908b016142b6565b6001600160a01b0316815260200161308a60608a0160408b016142b6565b6001600160a01b031681526020810188905260a0890135604082015260c089013560608201526080016130c46101008a0160e08b016142b6565b6001600160a01b031690526040516131349190602001815181526020808301516001600160a01b0390811691830191909152604080840151821690830152606080840151908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612fac928201908061318d60808c0160608d016142b6565b6001600160a01b03168152602090810188905290825262053020908201526040016000610e50565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156131fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613222919061480b565b90506132396001600160a01b0386168530866138e0565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015613280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a4919061480b565b905081811161330a5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610985565b6133148282614663565b9695505050505050565b816001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b8260405161335991815260200190565b60405180910390a261161b8282611bd9565b6133753082611bd9565b60008260000151836020015184604001518560a0015160405160240161339e9493929190614fec565b60408051601f198184030181529190526020810180516001600160e01b031663161b12ff60e11b17905260c084015160608501519192506000916133e59190859085613918565b905080156134395783606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff48460405161342c91815260200190565b60405180910390a261135c565b83606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb08460405161347891815260200190565b60405180910390a260e084015161135c906001600160a01b031684611ac0565b600054610100900460ff166134bf5760405162461bcd60e51b815260040161098590614ab9565b61161b82826139ed565b600054610100900460ff166134f05760405162461bcd60e51b815260040161098590614ab9565b61350283600001518460200151613a2d565b61350a613a6e565b611abb838383613aac565b600054610100900460ff1661353c5760405162461bcd60e51b815260040161098590614ab9565b6000805160206152e8833981519152606482106135a95760405162461bcd60e51b815260206004820152602560248201527f4e6174697665546f6b656e52656d6f74653a20696e76616c69642070657263656044820152646e7461676560d81b6064820152608401610985565b55565b6000613601826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613df29092919063ffffffff16565b805190915015611abb578080602001905181019061361f919061501e565b611abb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610985565b600061368861161f565b60028101549091506001600160a01b038581169116146136ba5760405162461bcd60e51b815260040161098590615040565b82156137145760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f207365636f6e646172792060448201526266656560e81b6064820152608401610985565b6001600160a01b0382161561135c5760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f206d756c74692d686f702060448201526766616c6c6261636b60c01b6064820152608401610985565b600080600061378961161f565b905061379586866120e7565b94506137a087613e01565b600382015460048301549198506137ba9160ff1686611c8d565b600382015460048301546137d2919060ff168a611c8d565b116138345760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a20696e73756666696369656e7420746f6b656e7360448201526b103a37903a3930b739b332b960a11b6064820152608401610985565b5094959294509192505050565b600061384b61161f565b8054909150840361387e57306001600160a01b0384160361387e5760405162461bcd60e51b815260040161098590615040565b6001600160a01b03821661135c5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f206d756c74692d686f702066616c6c6044820152636261636b60e01b6064820152608401610985565b6040516001600160a01b038085166024830152831660448201526064810182905261135c9085906323b872dd60e01b9060840161263e565b6000845a101561396a5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e742067617300000000006044820152606401610985565b834710156139ba5760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c75650000006044820152606401610985565b826001600160a01b03163b6000036139d457506000611c9c565b600080600084516020860188888bf19695505050505050565b600054610100900460ff16613a145760405162461bcd60e51b815260040161098590614ab9565b6036613a2083826150e3565b506037611abb82826150e3565b600054610100900460ff16613a545760405162461bcd60e51b815260040161098590614ab9565b613a5d82613e1a565b613a65613f48565b61161b816113b7565b600054610100900460ff16613a955760405162461bcd60e51b815260040161098590614ab9565b6107fe60016000805160206152c883398151915255565b600054610100900460ff16613ad35760405162461bcd60e51b815260040161098590614ab9565b6000613add61161f565b90506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b48919061480b565b81556040840151613bae5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d6520626c6f60448201526918dad8da185a5b88125160b21b6064820152608401610985565b8054604085015103613c285760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e52656d6f74653a2063616e6e6f74206465706c6f7920746f20736160448201527f6d6520626c6f636b636861696e20617320746f6b656e20686f6d6500000000006064820152608401610985565b60608401516001600160a01b0316613c8e5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d65206164646044820152637265737360e01b6064820152608401610985565b6012846080015160ff161115613cf85760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20746f6b656e20686f6d6520646563696d616c73604482015268040e8dede40d0d2ced60bb1b6064820152608401610985565b60128260ff161115613d585760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a20746f6b656e20646563696d616c7320746f6f206044820152630d0d2ced60e31b6064820152608401610985565b60408401516001820155606084015160028201805460058401869055600684018054871560ff1990911617905560808701516001600160a01b039093166001600160a81b031990911617600160a01b60ff808516919091029190911760ff60a81b1916600160a81b91861691909102179055613dd49083613f77565b60048301805460ff1916911515919091179055600390910155505050565b6060611c9c8484600085613fc2565b6000613e1662010203600160981b0183611ac0565b5090565b600054610100900460ff16613e415760405162461bcd60e51b815260040161098590614ab9565b613e4961409d565b6001600160a01b038116613ec55760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f7274657220726567697374727920616464726573730000000000000000006064820152608401610985565b609780546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa158015613f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f42919061480b565b60995550565b600054610100900460ff16613f6f5760405162461bcd60e51b815260040161098590614ab9565b6107fe6140cc565b60008060ff808516908416118181613f9b57613f9385876151a2565b60ff16613fa9565b613fa586866151a2565b60ff165b613fb490600a61529f565b9350909150505b9250929050565b6060824710156140235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610985565b600080866001600160a01b0316858760405161403f91906152ab565b60006040518083038185875af1925050503d806000811461407c576040519150601f19603f3d011682016040523d82523d6000602084013e614081565b606091505b5091509150614092878383876140fc565b979650505050505050565b600054610100900460ff166140c45760405162461bcd60e51b815260040161098590614ab9565b6107fe614175565b600054610100900460ff166140f35760405162461bcd60e51b815260040161098590614ab9565b6107fe33612027565b6060831561416b578251600003614164576001600160a01b0385163b6141645760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610985565b5081611c9c565b611c9c838361419c565b600054610100900460ff1661239f5760405162461bcd60e51b815260040161098590614ab9565b8151156141ac5781518083602001fd5b8060405162461bcd60e51b81526004016109859190614216565b60005b838110156141e15781810151838201526020016141c9565b50506000910152565b600081518084526142028160208601602086016141c6565b601f01601f19169290920160200192915050565b602081526000611dc360208301846141ea565b6001600160a01b0381168114610aa257600080fd5b803561258b81614229565b6000806040838503121561425c57600080fd5b823561426781614229565b946020939093013593505050565b60008060006060848603121561428a57600080fd5b833561429581614229565b925060208401356142a581614229565b929592945050506040919091013590565b6000602082840312156142c857600080fd5b8135611dc381614229565b6000602082840312156142e557600080fd5b5035919050565b6000602082840312156142fe57600080fd5b81356001600160401b0381111561431457600080fd5b82016101608185031215611dc357600080fd5b6000610100828403121561433a57600080fd5b50919050565b60006040828403121561433a57600080fd5b6000806000806060858703121561436857600080fd5b84359350602085013561437a81614229565b925060408501356001600160401b038082111561439657600080fd5b818701915087601f8301126143aa57600080fd5b8135818111156143b957600080fd5b8860208285010111156143cb57600080fd5b95989497505060200194505050565b600080604083850312156143ed57600080fd5b82356143f881614229565b9150602083013561440881614229565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561444b5761444b614413565b60405290565b604080519081016001600160401b038111828210171561444b5761444b614413565b60405161010081016001600160401b038111828210171561444b5761444b614413565b604051601f8201601f191681016001600160401b03811182821017156144be576144be614413565b604052919050565b60006001600160401b038211156144df576144df614413565b50601f01601f191660200190565b600082601f8301126144fe57600080fd5b813561451161450c826144c6565b614496565b81815284602083860101111561452657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008084860361010081121561455b57600080fd5b60a081121561456957600080fd5b50614572614429565b853561457d81614229565b8152602086013561458d81614229565b60208201526040868101359082015260608601356145aa81614229565b6060820152608086013560ff811681146145c357600080fd5b6080820152935060a08501356001600160401b038111156145e357600080fd5b6145ef878288016144ed565b949794965050505060c08301359260e00135919050565b600181811c9082168061461a57607f821691505b60208210810361433a57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156108d3576108d361463a565b818103818111156108d3576108d361463a565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b80820281158282048414176108d3576108d361463a565b60008261473c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b81516001600160a01b0316815260208083015190820152604081016108d3565b60208152600082516005811061479d57634e487b7160e01b600052602160045260246000fd5b806020840152506020830151604080840152611c9c60608401826141ea565b6020808252602f908201527f4e6174697665546f6b656e52656d6f74653a20636f6e747261637420756e646560408201526e1c98dbdb1b185d195c985b1a5e9959608a1b606082015260800190565b60006020828403121561481d57600080fd5b5051919050565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b808410156148b357845183168252938501936001939093019290850190614891565b5060a0880151878203601f190160e089015294506148d181866141ea565b98975050505050505050565b600082601f8301126148ee57600080fd5b81516148fc61450c826144c6565b81815284602083860101111561491157600080fd5b611c9c8260208301602087016141c6565b60006020828403121561493457600080fd5b81516001600160401b038082111561494b57600080fd5b908301906040828603121561495f57600080fd5b614967614451565b82516005811061497657600080fd5b815260208301518281111561498a57600080fd5b614996878286016148dd565b60208301525095945050505050565b805161258b81614229565b6000604082840312156149c257600080fd5b6149ca614451565b82516149d581614229565b81526020928301519281019290925250919050565b6000602082840312156149fc57600080fd5b81516001600160401b0380821115614a1357600080fd5b908301906101008286031215614a2857600080fd5b614a30614473565b82518152614a40602084016149a5565b6020820152614a51604084016149a5565b6040820152614a62606084016149a5565b60608201526080830151608082015260a083015182811115614a8357600080fd5b614a8f878286016148dd565b60a08301525060c083015160c0820152614aab60e084016149a5565b60e082015295945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215614b1657600080fd5b8151611dc381614229565b6020808252602b908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20626c60408201526a1bd8dad8da185a5b88125160aa1b606082015260800190565b60208082526037908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20746f60408201527f6b656e207472616e736665727265722061646472657373000000000000000000606082015260800190565b60208082526024908201527f546f6b656e52656d6f74653a207a65726f20726571756972656420676173206c6040820152631a5b5a5d60e21b606082015260800190565b6000808335601e19843603018112614c2457600080fd5b8301803591506001600160401b03821115614c3e57600080fd5b602001915036819003821315613fbb57600080fd5b60208152815160208201526000602083015160018060a01b03808216604085015280604086015116606085015250506060830151614c9c60808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c0850152614cc36101208501836141ea565b915060c085015160e085015260e0850151614ce8828601826001600160a01b03169052565b5090949350505050565b6000808335601e19843603018112614d0957600080fd5b83016020810192503590506001600160401b03811115614d2857600080fd5b803603821315613fbb57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152823560408201526000614d796020850161423e565b6001600160a01b03166060830152614d936040850161423e565b6001600160a01b03166080830152614dae6060850185614cf2565b6101608060a0860152614dc66101a086018385614d37565b9250608087013560c086015260a087013560e0860152614de860c0880161423e565b9150610100614e01818701846001600160a01b03169052565b614e0d60e0890161423e565b9250610120614e26818801856001600160a01b03169052565b614e31828a0161423e565b93506101409150614e4c828801856001600160a01b03169052565b880135918601919091529095013561018084015260209092019290925292915050565b60208152614e896020820183516001600160a01b03169052565b6020820151604082015260006040830151614eaf60608401826001600160a01b03169052565b5060608301516001600160a01b038116608084015250608083015160a083015260a08301516101608060c0850152614eeb6101808501836141ea565b915060c085015160e085015260e0850151610100614f13818701836001600160a01b03169052565b860151610120868101919091528601519050610140614f3c818701836001600160a01b03169052565b959095015193019290925250919050565b8235815261012081016020840135614f6481614229565b6001600160a01b039081166020840152604085013590614f8382614229565b166040830152614f956060850161423e565b6001600160a01b0381166060840152506080840135608083015260a084013560a083015260c084013560c0830152614fcf60e0850161423e565b6001600160a01b031660e083015261010090910191909152919050565b8481526001600160a01b03848116602083015283166040820152608060608201819052600090613314908301846141ea565b60006020828403121561503057600080fd5b81518015158114611dc357600080fd5b6020808252603a908201527f546f6b656e52656d6f74653a20696e76616c69642064657374696e6174696f6e60408201527f20746f6b656e207472616e736665727265722061646472657373000000000000606082015260800190565b601f821115611abb57600081815260208120601f850160051c810160208610156150c45750805b601f850160051c820191505b81811015611190578281556001016150d0565b81516001600160401b038111156150fc576150fc614413565b6151108161510a8454614606565b8461509d565b602080601f831160018114615145576000841561512d5750858301515b600019600386901b1c1916600185901b178555611190565b600085815260208120601f198616915b8281101561517457888601518255948401946001909101908401615155565b50858210156151925787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60ff82811682821603908111156108d3576108d361463a565b600181815b808511156151f65781600019048211156151dc576151dc61463a565b808516156151e957918102915b93841c93908002906151c0565b509250929050565b60008261520d575060016108d3565b8161521a575060006108d3565b8160018114615230576002811461523a57615256565b60019150506108d3565b60ff84111561524b5761524b61463a565b50506001821b6108d3565b5060208310610133831016604e8410600b8410161715615279575081810a6108d3565b61528383836151bb565b80600019048211156152975761529761463a565b029392505050565b6000611dc383836151fe565b600082516152bd8184602087016141c6565b919091019291505056fed2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c7500914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29500a26469706673582212207557e2b303df06846fb8ab74a00641a8920fae4b873f9bfcc0df54383a6c841464736f6c63430008120033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\"}],\"name\":\"MinTeleporterVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feesBurned\",\"type\":\"uint256\"}],\"name\":\"ReportBurnedTxFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"BURNED_FOR_TRANSFER_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNED_TX_FEES_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOME_CHAIN_BURN_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_CALL_GAS_PER_WORD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_CALL_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_SEND_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_MINTER\",\"outputs\":[{\"internalType\":\"contractINativeMinter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_REMOTE_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payloadSize\",\"type\":\"uint256\"}],\"name\":\"calculateNumWords\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInitialReserveImbalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsCollateralized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinTeleporterVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMultiplyOnRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenHomeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenHomeBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalMinted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"teleporterRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"teleporterManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tokenHomeBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenHomeAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenHomeDecimals\",\"type\":\"uint8\"}],\"internalType\":\"structTokenRemoteSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"nativeAssetSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialReserveImbalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"burnedFeesReportingRewardPercentage_\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"isTeleporterAddressPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"pauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"receiveTeleporterMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTeleporterFeeInfo\",\"name\":\"feeInfo\",\"type\":\"tuple\"}],\"name\":\"registerWithHome\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"}],\"name\":\"reportBurnedTxFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"teleporterRegistry\",\"outputs\":[{\"internalType\":\"contractTeleporterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalNativeAssetSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"unpauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"updateMinTeleporterVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801561001057600080fd5b5061533d806100206000396000f3fe6080604052600436106102815760003560e01c806370a082311161014f578063c3cd6927116100c1578063e0fd9cb81161007a578063e0fd9cb814610735578063ed0ae4b014610481578063ef793e2a1461074a578063f2fde38b1461075f578063f3f981d81461077f578063f56c363d1461079f57610290565b8063c3cd6927146106b3578063c452165e146106c8578063c868efaa146106e0578063d0e30db014610290578063d2cc7a7014610700578063dd62ed3e1461071557610290565b80638da5cb5b116101135780638da5cb5b146105e757806395d89b4114610605578063973142971461061a578063a457c2d714610653578063a9059cbb14610673578063b8a46d021461069357610290565b806370a082311461055d578063715018a61461059357806371717c18146105a85780637ee3779a146105bf5780638bf2fa94146105d457610290565b80632b0d8f18116101f35780634213cf78116101ac5780634213cf78146104be5780634511243e146104d35780635507f3d1146104f357806355538c8b1461050a5780635eb995141461052a5780636e6eef8d1461054a57610290565b80632b0d8f181461040a5780632e1a7d4d1461042a578063313ce5671461044a578063329c3e1214610466578063347212c414610481578063395093511461049e57610290565b806315beb59f1161024557806315beb59f1461035b57806318160ddd146103715780631906529c146103865780631a7f5bec1461039b57806323b872dd146103d3578063254ac160146103f357610290565b806302a30c7d1461029857806306fdde03146102c25780630733c8c8146102e4578063095ea7b3146103075780630ca1c5c91461032757610290565b366102905761028e6107bf565b005b61028e6107bf565b3480156102a457600080fd5b506102ad610800565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102d7610818565b6040516102b99190614216565b3480156102f057600080fd5b506102f96108aa565b6040519081526020016102b9565b34801561031357600080fd5b506102ad610322366004614249565b6108bf565b34801561033357600080fd5b507f914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29501546102f9565b34801561036757600080fd5b506102f96105dc81565b34801561037d57600080fd5b506035546102f9565b34801561039257600080fd5b506102f96108d9565b3480156103a757600080fd5b506097546103bb906001600160a01b031681565b6040516001600160a01b0390911681526020016102b9565b3480156103df57600080fd5b506102ad6103ee366004614275565b610933565b3480156103ff57600080fd5b506102f96201fbd081565b34801561041657600080fd5b5061028e6104253660046142b6565b610957565b34801561043657600080fd5b5061028e6104453660046142d3565b610a59565b34801561045657600080fd5b50604051601281526020016102b9565b34801561047257600080fd5b506103bb6001600160991b0181565b34801561048d57600080fd5b506103bb62010203600160981b0181565b3480156104aa57600080fd5b506102ad6104b9366004614249565b610aa5565b3480156104ca57600080fd5b506102f9610ac7565b3480156104df57600080fd5b5061028e6104ee3660046142b6565b610ad9565b3480156104ff57600080fd5b506102f96205302081565b34801561051657600080fd5b5061028e6105253660046142d3565b610bd6565b34801561053657600080fd5b5061028e6105453660046142d3565b610ef2565b61028e6105583660046142ec565b610f03565b34801561056957600080fd5b506102f96105783660046142b6565b6001600160a01b031660009081526033602052604090205490565b34801561059f57600080fd5b5061028e610f31565b3480156105b457600080fd5b506102f96205573081565b3480156105cb57600080fd5b506102ad610f43565b61028e6105e2366004614327565b610f5b565b3480156105f357600080fd5b50609a546001600160a01b03166103bb565b34801561061157600080fd5b506102d7610f89565b34801561062657600080fd5b506102ad6106353660046142b6565b6001600160a01b031660009081526098602052604090205460ff1690565b34801561065f57600080fd5b506102ad61066e366004614249565b610f98565b34801561067f57600080fd5b506102ad61068e366004614249565b611013565b34801561069f57600080fd5b5061028e6106ae366004614340565b611021565b3480156106bf57600080fd5b506103bb611198565b3480156106d457600080fd5b506103bb600160981b81565b3480156106ec57600080fd5b5061028e6106fb366004614352565b6111b6565b34801561070c57600080fd5b506099546102f9565b34801561072157600080fd5b506102f96107303660046143da565b611362565b34801561074157600080fd5b506102f961138d565b34801561075657600080fd5b506102f96113a2565b34801561076b57600080fd5b5061028e61077a3660046142b6565b6113b7565b34801561078b57600080fd5b506102f961079a3660046142d3565b61142d565b3480156107ab57600080fd5b5061028e6107ba366004614543565b611444565b60405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a26107fe333461155d565b565b60008061080b61161f565b6006015460ff1692915050565b60606036805461082790614606565b80601f016020809104026020016040519081016040528092919081815260200182805461085390614606565b80156108a05780601f10610875576101008083540402835291602001916108a0565b820191906000526020600020905b81548152906001019060200180831161088357829003601f168201915b5050505050905090565b6000806108b561161f565b6003015492915050565b6000336108cd818585611643565b60019150505b92915050565b60006000805160206152e88339815191528161090462010203600160981b0131600160981b31614650565b905060006109106113a2565b836001015461091f9190614650565b905061092b8282614663565b935050505090565b600033610941858285611768565b61094c8585856117dc565b506001949350505050565b61095f611987565b6001600160a01b03811661098e5760405162461bcd60e51b815260040161098590614676565b60405180910390fd5b6001600160a01b03811660009081526098602052604090205460ff1615610a0d5760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a2061646472657373206160448201526c1b1c9958591e481c185d5cd959609a1b6064820152608401610985565b6001600160a01b038116600081815260986020526040808220805460ff19166001179055517f933f93e57a222e6330362af8b376d0a8725b6901e9a2fb86d00f169702b28a4c9190a250565b60405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a2610a98338261198f565b610aa23382611ac0565b50565b6000336108cd818585610ab88383611362565b610ac29190614650565b611643565b600080610ad261161f565b5492915050565b610ae1611987565b6001600160a01b038116610b075760405162461bcd60e51b815260040161098590614676565b6001600160a01b03811660009081526098602052604090205460ff16610b815760405162461bcd60e51b815260206004820152602960248201527f54656c65706f727465725570677261646561626c653a2061646472657373206e6044820152681bdd081c185d5cd95960ba1b6064820152608401610985565b6040516001600160a01b038216907f844e2f3154214672229235858fd029d1dfd543901c6d05931f0bc2480a2d72c390600090a26001600160a01b03166000908152609860205260409020805460ff19169055565b6000805160206152c88339815191528054600114610c065760405162461bcd60e51b8152600401610985906146c4565b600281557f914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29502546000805160206152e883398151915290600160981b31908111610cc55760405162461bcd60e51b8152602060048201526044602482018190527f4e6174697665546f6b656e52656d6f74653a206275726e206164647265737320908201527f62616c616e6365206e6f742067726561746572207468616e206c6173742072656064820152631c1bdc9d60e21b608482015260a401610985565b6000826002015482610cd79190614663565b905060006064846000015483610ced9190614708565b610cf7919061471f565b90506000610d058284614663565b6002860185905590508115610d2857610d1e3083611bd9565b610d28308361155d565b6000610d43610d356108aa565b610d3d610f43565b84611c8d565b11610dad5760405162461bcd60e51b815260206004820152603460248201527f4e6174697665546f6b656e52656d6f74653a207a65726f207363616c6564206160448201527336b7bab73a103a37903932b837b93a10313ab93760611b6064820152608401610985565b604080518082018252600181528151808301835262010203600160981b0181526020808201859052925160009380840192610dea92909101614757565b60405160208183030381529060405281525090506000610ea76040518060c00160405280610e1661138d565b8152602001610e23611198565b6001600160a01b0316815260408051808201825230815260208181018a905283015281018c905260600160005b604051908082528060200260200182016040528015610e79578160200160208202803683370190505b50815260200184604051602001610e909190614777565b604051602081830303815290604052815250611ca4565b9050807f0832c643b65d6d3724ed14ac3a655fbc7cae54fb010918b2c2f70ef6b1bb94a584604051610edb91815260200190565b60405180910390a250506001909555505050505050565b610efa611987565b610aa281611dca565b610f0b610800565b610f275760405162461bcd60e51b8152600401610985906147bc565b610aa28134611f54565b610f39611fcd565b6107fe6000612027565b600080610f4e61161f565b6004015460ff1692915050565b610f63610800565b610f7f5760405162461bcd60e51b8152600401610985906147bc565b610aa28134612079565b60606037805461082790614606565b60003381610fa68286611362565b9050838110156110065760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610985565b61094c8286868403611643565b6000336108cd8185856117dc565b600061102b61161f565b6006810154909150610100900460ff16156110885760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e52656d6f74653a20616c72656164792072656769737465726564006044820152606401610985565b604080516060808201835260058401548252600284015460ff600160a01b820481166020808601918252600160a81b9093048216858701908152865180880188526000808252885188518188015293518516848a0152915190931682860152865180830390950185526080909101909552808201929092529192909161111e90611114908701876142b6565b86602001356120e7565b6040805160c0810182526001870154815260028701546001600160a01b031660208083019190915282518084018452939450611190939192830191908190611168908b018b6142b6565b6001600160a01b0316815260209081018690529082526201fbd0908201526040016000610e50565b505050505050565b6000806111a361161f565b600201546001600160a01b031692915050565b6111be612131565b6099546097546001600160a01b0316634c1f08ce336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b919061480b565b10156112a25760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201526f32b632b837b93a32b91039b2b73232b960811b6064820152608401610985565b6112ab33610635565b156113115760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881859191c995cdcc81c185d5cd95960821b6064820152608401610985565b611352848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061218a92505050565b61135c6001606555565b50505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60008061139861161f565b6001015492915050565b6000806113ad61161f565b6005015492915050565b6113bf611fcd565b6001600160a01b0381166114245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610985565b610aa281612027565b6000600561143c83601f614650565b901c92915050565b600054610100900460ff16158080156114645750600054600160ff909116105b8061147e5750303b15801561147e575060005460ff166001145b6114e15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610985565b6000805460ff191660011790558015611504576000805461ff0019166101001790555b611510858585856123a6565b8015611556576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0382166115b35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610985565b80603560008282546115c59190614650565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b7f600d6a9b283d1eda563de594ce4843869b6f128a4baa222422ed94a60b0cef0090565b6001600160a01b0383166116a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610985565b6001600160a01b0382166117065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610985565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006117748484611362565b9050600019811461135c57818110156117cf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610985565b61135c8484848403611643565b6001600160a01b0383166118405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610985565b6001600160a01b0382166118a25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610985565b6001600160a01b0383166000908152603360205260409020548181101561191a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610985565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061197a9086815260200190565b60405180910390a361135c565b6107fe611fcd565b6001600160a01b0382166119ef5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610985565b6001600160a01b03821660009081526033602052604090205481811015611a635760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610985565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161175b565b505050565b80471015611b105760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610985565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b5d576040519150601f19603f3d011682016040523d82523d6000602084013e611b62565b606091505b5050905080611abb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610985565b7f914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e2950180546000805160206152e8833981519152918391600090611c1c908490614650565b90915550506040516327ad555d60e11b81526001600160a01b0384166004820152602481018390526001600160991b0190634f5aaaba90604401600060405180830381600087803b158015611c7057600080fd5b505af1158015611c84573d6000803e3d6000fd5b50505050505050565b6000611c9c8484846000612456565b949350505050565b600080611caf612487565b60408401516020015190915015611d54576040830151516001600160a01b0316611d315760405162461bcd60e51b815260206004820152602d60248201527f54656c65706f727465725570677261646561626c653a207a65726f206665652060448201526c746f6b656e206164647265737360981b6064820152608401610985565b604083015160208101519051611d54916001600160a01b03909116908390612590565b604051630624488560e41b81526001600160a01b03821690636244885090611d80908690600401614824565b6020604051808303816000875af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc3919061480b565b9392505050565b6097546040805163301fd1f560e21b815290516000926001600160a01b03169163c07f47d49160048083019260209291908290030181865afa158015611e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e38919061480b565b60995490915081831115611ea85760405162461bcd60e51b815260206004820152603160248201527f54656c65706f727465725570677261646561626c653a20696e76616c6964205460448201527032b632b837b93a32b9103b32b939b4b7b760791b6064820152608401610985565b808311611f1d5760405162461bcd60e51b815260206004820152603f60248201527f54656c65706f727465725570677261646561626c653a206e6f7420677265617460448201527f6572207468616e2063757272656e74206d696e696d756d2076657273696f6e006064820152608401610985565b6099839055604051839082907fa9a7ef57e41f05b4c15480842f5f0c27edfcbb553fed281f7c4068452cc1c02d90600090a3505050565b6000805160206152c88339815191528054600114611f845760405162461bcd60e51b8152600401610985906146c4565b600281556000611f9261161f565b9050611f9d84612675565b6001810154843503611fb957611fb384846128b4565b50611fc5565b611fb38484612adf565b505b600190555050565b609a546001600160a01b031633146107fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610985565b609a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000805160206152c883398151915280546001146120a95760405162461bcd60e51b8152600401610985906146c4565b6002815560006120b761161f565b90506120c284612d88565b60018101548435036120dd576120d88484612e76565b611fc3565b611fc38484612fea565b6000816000036120f9575060006108d3565b306001600160a01b0384160361212657612114333084611768565b61211f3330846117dc565b50806108d3565b611dc38333846131b5565b6002606554036121835760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610985565b6002606555565b600061219461161f565b9050806001015484146121fb5760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20696e76616c696420736f7572636520626c6f636044820152681ad8da185a5b88125160ba1b6064820152608401610985565b60028101546001600160a01b0384811691161461226d5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a20696e76616c6964206f726967696e2073656e646044820152696572206164647265737360b01b6064820152608401610985565b6000828060200190518101906122839190614922565b6006830154909150610100900460ff1615806122a45750600682015460ff16155b156122bb5760068201805461ffff19166101011790555b6001815160048111156122d0576122d0614741565b0361230957600081602001518060200190518101906122ef91906149b0565b90506123038160000151826020015161331e565b50611556565b60028151600481111561231e5761231e614741565b0361234d576000816020015180602001905181019061233d91906149ea565b905061230381826080015161336b565b60405162461bcd60e51b815260206004820152602160248201527f546f6b656e52656d6f74653a20696e76616c6964206d657373616765207479706044820152606560f81b6064820152608401610985565b6001606555565b600054610100900460ff166123cd5760405162461bcd60e51b815260040161098590614ab9565b816000036124375760405162461bcd60e51b815260206004820152603160248201527f4e6174697665546f6b656e52656d6f74653a207a65726f20696e697469616c206044820152707265736572766520696d62616c616e636560781b6064820152608401610985565b6124418384613498565b61244d848360126134c9565b61135c81613515565b6000811515841515036124745761246d8584614708565b9050611c9c565b61247e858461471f565b95945050505050565b600080609760009054906101000a90046001600160a01b03166001600160a01b031663d820e64f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125019190614b04565b9050612525816001600160a01b031660009081526098602052604090205460ff1690565b1561258b5760405162461bcd60e51b815260206004820152603060248201527f54656c65706f727465725570677261646561626c653a2054656c65706f72746560448201526f1c881cd95b991a5b99c81c185d5cd95960821b6064820152608401610985565b919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156125e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612605919061480b565b61260f9190614650565b6040516001600160a01b03851660248201526044810182905290915061135c90859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526135ac565b80356126935760405162461bcd60e51b815260040161098590614b21565b60006126a560408301602084016142b6565b6001600160a01b0316036126cb5760405162461bcd60e51b815260040161098590614b6c565b60006126dd60608301604084016142b6565b6001600160a01b0316036127485760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420636f6e7460448201526b72616374206164647265737360a01b6064820152608401610985565b600081608001351161276c5760405162461bcd60e51b815260040161098590614bc9565b60008160a00135116127ce5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e7420676173206044820152641b1a5b5a5d60da1b6064820152608401610985565b80608001358160a00135106128365760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a20696e76616c696420726563697069656e742067604482015267185cc81b1a5b5a5d60c21b6064820152608401610985565b6000612849610100830160e084016142b6565b6001600160a01b031603610aa25760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a207a65726f2066616c6c6261636b20726563697060448201526b69656e74206164647265737360a01b6064820152608401610985565b60006128be61161f565b90506128ee6128d360408501602086016142b6565b6101408501356128e960e0870160c088016142b6565b61367e565b600061291783612906610120870161010088016142b6565b86610120013587610140013561377c565b604080518082019091529194509150600090806002815260200160405180610100016040528086600001548152602001306001600160a01b0316815260200161295d3390565b6001600160a01b0316815260200161297b60608a0160408b016142b6565b6001600160a01b031681526020810188905260400161299d60608a018a614c0d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a089013560208201526040016129f26101008a0160e08b016142b6565b6001600160a01b03169052604051612a0d9190602001614c53565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612a919282019080612a686101208c016101008d016142b6565b6001600160a01b03168152602090810188905290825260808a0135908201526040016000610e50565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168888604051612acf929190614d60565b60405180910390a3505050505050565b6000612ae961161f565b9050612b158335612b0060408601602087016142b6565b612b1060e0870160c088016142b6565b613841565b6000612b2d83612906610120870161010088016142b6565b6040805180820190915291945091506000908060048152602001604051806101600160405280612b5a3390565b6001600160a01b0316815260200188600001358152602001886020016020810190612b8591906142b6565b6001600160a01b03168152602001612ba360608a0160408b016142b6565b6001600160a01b0316815260208101889052604001612bc560608a018a614c0d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060a08901356020820152604001612c1a6101008a0160e08b016142b6565b6001600160a01b0316815260808901356020820152604001612c4260e08a0160c08b016142b6565b6001600160a01b03168152610140890135602091820152604051612c67929101614e6f565b60408051601f198184030181529190529052905060006105dc612c97612c906060890189614c0d565b905061142d565b612ca19190614708565b612cae9062055730614650565b6040805160c0810182526001870154815260028701546001600160a01b0316602082015281518083018352929350600092612d399282019080612cf96101208d016101008e016142b6565b6001600160a01b031681526020908101899052908252818101869052604080516000815280830182528184015251606090920191610e9091889101614777565b9050336001600160a01b0316817f5d76dff81bf773b908b050fa113d39f7d8135bb4175398f313ea19cd3a1a0b168989604051612d77929190614d60565b60405180910390a350505050505050565b6000612d9a60608301604084016142b6565b6001600160a01b031603612dfc5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a207a65726f20726563697069656e74206164647260448201526265737360e81b6064820152608401610985565b60008160c0013511612e205760405162461bcd60e51b815260040161098590614bc9565b8035612e3e5760405162461bcd60e51b815260040161098590614b21565b6000612e5060408301602084016142b6565b6001600160a01b031603610aa25760405162461bcd60e51b815260040161098590614b6c565b6000612e8061161f565b9050612eab612e9560408501602086016142b6565b60a08501356128e9610100870160e088016142b6565b6000612ed083612ec160808701606088016142b6565b86608001358760a0013561377c565b60408051808201909152919450915060009080600181526020016040518060400160405280886040016020810190612f0891906142b6565b6001600160a01b0316815260200187815250604051602001612f2a9190614757565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612fac9282019080612f8360808c0160608d016142b6565b6001600160a01b03168152602090810188905290825260c08a0135908201526040016000610e50565b9050336001600160a01b0316817f93f19bf1ec58a15dc643b37e7e18a1c13e85e06cd11929e283154691ace9fb528888604051612acf929190614f4d565b6000612ff461161f565b905061301c833561300b60408601602087016142b6565b612b10610100870160e088016142b6565b600061303283612ec160808701606088016142b6565b60408051808201825260038152815160e081018352883581529396509193506000926020808401928282019161306c918b01908b016142b6565b6001600160a01b0316815260200161308a60608a0160408b016142b6565b6001600160a01b031681526020810188905260a0890135604082015260c089013560608201526080016130c46101008a0160e08b016142b6565b6001600160a01b031690526040516131349190602001815181526020808301516001600160a01b0390811691830191909152604080840151821690830152606080840151908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b60408051601f198184030181529181529152805160c0810182526001860154815260028601546001600160a01b0316602082015281518083018352929350600092612fac928201908061318d60808c0160608d016142b6565b6001600160a01b03168152602090810188905290825262053020908201526040016000610e50565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156131fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613222919061480b565b90506132396001600160a01b0386168530866138e0565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015613280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a4919061480b565b905081811161330a5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610985565b6133148282614663565b9695505050505050565b816001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b8260405161335991815260200190565b60405180910390a261161b8282611bd9565b6133753082611bd9565b60008260000151836020015184604001518560a0015160405160240161339e9493929190614fec565b60408051601f198184030181529190526020810180516001600160e01b031663161b12ff60e11b17905260c084015160608501519192506000916133e59190859085613918565b905080156134395783606001516001600160a01b03167f104deb555f67e63782bb817bc26c39050894645f9b9f29c4be8ae68d0e8b7ff48460405161342c91815260200190565b60405180910390a261135c565b83606001516001600160a01b03167fb9eaeae386d339f8115782f297a9e5f0e13fb587cd6b0d502f113cb8dd4d6cb08460405161347891815260200190565b60405180910390a260e084015161135c906001600160a01b031684611ac0565b600054610100900460ff166134bf5760405162461bcd60e51b815260040161098590614ab9565b61161b82826139ed565b600054610100900460ff166134f05760405162461bcd60e51b815260040161098590614ab9565b61350283600001518460200151613a2d565b61350a613a6e565b611abb838383613aac565b600054610100900460ff1661353c5760405162461bcd60e51b815260040161098590614ab9565b6000805160206152e8833981519152606482106135a95760405162461bcd60e51b815260206004820152602560248201527f4e6174697665546f6b656e52656d6f74653a20696e76616c69642070657263656044820152646e7461676560d81b6064820152608401610985565b55565b6000613601826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613df29092919063ffffffff16565b805190915015611abb578080602001905181019061361f919061501e565b611abb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610985565b600061368861161f565b60028101549091506001600160a01b038581169116146136ba5760405162461bcd60e51b815260040161098590615040565b82156137145760405162461bcd60e51b815260206004820152602360248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f207365636f6e646172792060448201526266656560e81b6064820152608401610985565b6001600160a01b0382161561135c5760405162461bcd60e51b815260206004820152602860248201527f546f6b656e52656d6f74653a206e6f6e2d7a65726f206d756c74692d686f702060448201526766616c6c6261636b60c01b6064820152608401610985565b600080600061378961161f565b905061379586866120e7565b94506137a087613e01565b600382015460048301549198506137ba9160ff1686611c8d565b600382015460048301546137d2919060ff168a611c8d565b116138345760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e52656d6f74653a20696e73756666696369656e7420746f6b656e7360448201526b103a37903a3930b739b332b960a11b6064820152608401610985565b5094959294509192505050565b600061384b61161f565b8054909150840361387e57306001600160a01b0384160361387e5760405162461bcd60e51b815260040161098590615040565b6001600160a01b03821661135c5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f206d756c74692d686f702066616c6c6044820152636261636b60e01b6064820152608401610985565b6040516001600160a01b038085166024830152831660448201526064810182905261135c9085906323b872dd60e01b9060840161263e565b6000845a101561396a5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e73756666696369656e742067617300000000006044820152606401610985565b834710156139ba5760405162461bcd60e51b815260206004820152601d60248201527f43616c6c5574696c733a20696e73756666696369656e742076616c75650000006044820152606401610985565b826001600160a01b03163b6000036139d457506000611c9c565b600080600084516020860188888bf19695505050505050565b600054610100900460ff16613a145760405162461bcd60e51b815260040161098590614ab9565b6036613a2083826150e3565b506037611abb82826150e3565b600054610100900460ff16613a545760405162461bcd60e51b815260040161098590614ab9565b613a5d82613e1a565b613a65613f48565b61161b816113b7565b600054610100900460ff16613a955760405162461bcd60e51b815260040161098590614ab9565b6107fe60016000805160206152c883398151915255565b600054610100900460ff16613ad35760405162461bcd60e51b815260040161098590614ab9565b6000613add61161f565b90506005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b48919061480b565b81556040840151613bae5760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d6520626c6f60448201526918dad8da185a5b88125160b21b6064820152608401610985565b8054604085015103613c285760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e52656d6f74653a2063616e6e6f74206465706c6f7920746f20736160448201527f6d6520626c6f636b636861696e20617320746f6b656e20686f6d6500000000006064820152608401610985565b60608401516001600160a01b0316613c8e5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a207a65726f20746f6b656e20686f6d65206164646044820152637265737360e01b6064820152608401610985565b6012846080015160ff161115613cf85760405162461bcd60e51b815260206004820152602960248201527f546f6b656e52656d6f74653a20746f6b656e20686f6d6520646563696d616c73604482015268040e8dede40d0d2ced60bb1b6064820152608401610985565b60128260ff161115613d585760405162461bcd60e51b8152602060048201526024808201527f546f6b656e52656d6f74653a20746f6b656e20646563696d616c7320746f6f206044820152630d0d2ced60e31b6064820152608401610985565b60408401516001820155606084015160028201805460058401869055600684018054871560ff1990911617905560808701516001600160a01b039093166001600160a81b031990911617600160a01b60ff808516919091029190911760ff60a81b1916600160a81b91861691909102179055613dd49083613f77565b60048301805460ff1916911515919091179055600390910155505050565b6060611c9c8484600085613fc2565b6000613e1662010203600160981b0183611ac0565b5090565b600054610100900460ff16613e415760405162461bcd60e51b815260040161098590614ab9565b613e4961409d565b6001600160a01b038116613ec55760405162461bcd60e51b815260206004820152603760248201527f54656c65706f727465725570677261646561626c653a207a65726f2074656c6560448201527f706f7274657220726567697374727920616464726573730000000000000000006064820152608401610985565b609780546001600160a01b0319166001600160a01b0383169081179091556040805163301fd1f560e21b8152905163c07f47d4916004808201926020929091908290030181865afa158015613f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f42919061480b565b60995550565b600054610100900460ff16613f6f5760405162461bcd60e51b815260040161098590614ab9565b6107fe6140cc565b60008060ff808516908416118181613f9b57613f9385876151a2565b60ff16613fa9565b613fa586866151a2565b60ff165b613fb490600a61529f565b9350909150505b9250929050565b6060824710156140235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610985565b600080866001600160a01b0316858760405161403f91906152ab565b60006040518083038185875af1925050503d806000811461407c576040519150601f19603f3d011682016040523d82523d6000602084013e614081565b606091505b5091509150614092878383876140fc565b979650505050505050565b600054610100900460ff166140c45760405162461bcd60e51b815260040161098590614ab9565b6107fe614175565b600054610100900460ff166140f35760405162461bcd60e51b815260040161098590614ab9565b6107fe33612027565b6060831561416b578251600003614164576001600160a01b0385163b6141645760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610985565b5081611c9c565b611c9c838361419c565b600054610100900460ff1661239f5760405162461bcd60e51b815260040161098590614ab9565b8151156141ac5781518083602001fd5b8060405162461bcd60e51b81526004016109859190614216565b60005b838110156141e15781810151838201526020016141c9565b50506000910152565b600081518084526142028160208601602086016141c6565b601f01601f19169290920160200192915050565b602081526000611dc360208301846141ea565b6001600160a01b0381168114610aa257600080fd5b803561258b81614229565b6000806040838503121561425c57600080fd5b823561426781614229565b946020939093013593505050565b60008060006060848603121561428a57600080fd5b833561429581614229565b925060208401356142a581614229565b929592945050506040919091013590565b6000602082840312156142c857600080fd5b8135611dc381614229565b6000602082840312156142e557600080fd5b5035919050565b6000602082840312156142fe57600080fd5b81356001600160401b0381111561431457600080fd5b82016101608185031215611dc357600080fd5b6000610100828403121561433a57600080fd5b50919050565b60006040828403121561433a57600080fd5b6000806000806060858703121561436857600080fd5b84359350602085013561437a81614229565b925060408501356001600160401b038082111561439657600080fd5b818701915087601f8301126143aa57600080fd5b8135818111156143b957600080fd5b8860208285010111156143cb57600080fd5b95989497505060200194505050565b600080604083850312156143ed57600080fd5b82356143f881614229565b9150602083013561440881614229565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561444b5761444b614413565b60405290565b604080519081016001600160401b038111828210171561444b5761444b614413565b60405161010081016001600160401b038111828210171561444b5761444b614413565b604051601f8201601f191681016001600160401b03811182821017156144be576144be614413565b604052919050565b60006001600160401b038211156144df576144df614413565b50601f01601f191660200190565b600082601f8301126144fe57600080fd5b813561451161450c826144c6565b614496565b81815284602083860101111561452657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008084860361010081121561455b57600080fd5b60a081121561456957600080fd5b50614572614429565b853561457d81614229565b8152602086013561458d81614229565b60208201526040868101359082015260608601356145aa81614229565b6060820152608086013560ff811681146145c357600080fd5b6080820152935060a08501356001600160401b038111156145e357600080fd5b6145ef878288016144ed565b949794965050505060c08301359260e00135919050565b600181811c9082168061461a57607f821691505b60208210810361433a57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156108d3576108d361463a565b818103818111156108d3576108d361463a565b6020808252602e908201527f54656c65706f727465725570677261646561626c653a207a65726f2054656c6560408201526d706f72746572206164647265737360901b606082015260800190565b60208082526024908201527f53656e645265656e7472616e637947756172643a2073656e64207265656e7472604082015263616e637960e01b606082015260800190565b80820281158282048414176108d3576108d361463a565b60008261473c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b81516001600160a01b0316815260208083015190820152604081016108d3565b60208152600082516005811061479d57634e487b7160e01b600052602160045260246000fd5b806020840152506020830151604080840152611c9c60608401826141ea565b6020808252602f908201527f4e6174697665546f6b656e52656d6f74653a20636f6e747261637420756e646560408201526e1c98dbdb1b185d195c985b1a5e9959608a1b606082015260800190565b60006020828403121561481d57600080fd5b5051919050565b6020808252825182820152828101516001600160a01b039081166040808501919091528401518051821660608501528083015160808501526000929161010085019190606087015160a0870152608087015160e060c0880152805193849052840192600092506101208701905b808410156148b357845183168252938501936001939093019290850190614891565b5060a0880151878203601f190160e089015294506148d181866141ea565b98975050505050505050565b600082601f8301126148ee57600080fd5b81516148fc61450c826144c6565b81815284602083860101111561491157600080fd5b611c9c8260208301602087016141c6565b60006020828403121561493457600080fd5b81516001600160401b038082111561494b57600080fd5b908301906040828603121561495f57600080fd5b614967614451565b82516005811061497657600080fd5b815260208301518281111561498a57600080fd5b614996878286016148dd565b60208301525095945050505050565b805161258b81614229565b6000604082840312156149c257600080fd5b6149ca614451565b82516149d581614229565b81526020928301519281019290925250919050565b6000602082840312156149fc57600080fd5b81516001600160401b0380821115614a1357600080fd5b908301906101008286031215614a2857600080fd5b614a30614473565b82518152614a40602084016149a5565b6020820152614a51604084016149a5565b6040820152614a62606084016149a5565b60608201526080830151608082015260a083015182811115614a8357600080fd5b614a8f878286016148dd565b60a08301525060c083015160c0820152614aab60e084016149a5565b60e082015295945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215614b1657600080fd5b8151611dc381614229565b6020808252602b908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20626c60408201526a1bd8dad8da185a5b88125160aa1b606082015260800190565b60208082526037908201527f546f6b656e52656d6f74653a207a65726f2064657374696e6174696f6e20746f60408201527f6b656e207472616e736665727265722061646472657373000000000000000000606082015260800190565b60208082526024908201527f546f6b656e52656d6f74653a207a65726f20726571756972656420676173206c6040820152631a5b5a5d60e21b606082015260800190565b6000808335601e19843603018112614c2457600080fd5b8301803591506001600160401b03821115614c3e57600080fd5b602001915036819003821315613fbb57600080fd5b60208152815160208201526000602083015160018060a01b03808216604085015280604086015116606085015250506060830151614c9c60808401826001600160a01b03169052565b50608083015160a083015260a08301516101008060c0850152614cc36101208501836141ea565b915060c085015160e085015260e0850151614ce8828601826001600160a01b03169052565b5090949350505050565b6000808335601e19843603018112614d0957600080fd5b83016020810192503590506001600160401b03811115614d2857600080fd5b803603821315613fbb57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152823560408201526000614d796020850161423e565b6001600160a01b03166060830152614d936040850161423e565b6001600160a01b03166080830152614dae6060850185614cf2565b6101608060a0860152614dc66101a086018385614d37565b9250608087013560c086015260a087013560e0860152614de860c0880161423e565b9150610100614e01818701846001600160a01b03169052565b614e0d60e0890161423e565b9250610120614e26818801856001600160a01b03169052565b614e31828a0161423e565b93506101409150614e4c828801856001600160a01b03169052565b880135918601919091529095013561018084015260209092019290925292915050565b60208152614e896020820183516001600160a01b03169052565b6020820151604082015260006040830151614eaf60608401826001600160a01b03169052565b5060608301516001600160a01b038116608084015250608083015160a083015260a08301516101608060c0850152614eeb6101808501836141ea565b915060c085015160e085015260e0850151610100614f13818701836001600160a01b03169052565b860151610120868101919091528601519050610140614f3c818701836001600160a01b03169052565b959095015193019290925250919050565b8235815261012081016020840135614f6481614229565b6001600160a01b039081166020840152604085013590614f8382614229565b166040830152614f956060850161423e565b6001600160a01b0381166060840152506080840135608083015260a084013560a083015260c084013560c0830152614fcf60e0850161423e565b6001600160a01b031660e083015261010090910191909152919050565b8481526001600160a01b03848116602083015283166040820152608060608201819052600090613314908301846141ea565b60006020828403121561503057600080fd5b81518015158114611dc357600080fd5b6020808252603a908201527f546f6b656e52656d6f74653a20696e76616c69642064657374696e6174696f6e60408201527f20746f6b656e207472616e736665727265722061646472657373000000000000606082015260800190565b601f821115611abb57600081815260208120601f850160051c810160208610156150c45750805b601f850160051c820191505b81811015611190578281556001016150d0565b81516001600160401b038111156150fc576150fc614413565b6151108161510a8454614606565b8461509d565b602080601f831160018114615145576000841561512d5750858301515b600019600386901b1c1916600185901b178555611190565b600085815260208120601f198616915b8281101561517457888601518255948401946001909101908401615155565b50858210156151925787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60ff82811682821603908111156108d3576108d361463a565b600181815b808511156151f65781600019048211156151dc576151dc61463a565b808516156151e957918102915b93841c93908002906151c0565b509250929050565b60008261520d575060016108d3565b8161521a575060006108d3565b8160018114615230576002811461523a57615256565b60019150506108d3565b60ff84111561524b5761524b61463a565b50506001821b6108d3565b5060208310610133831016604e8410600b8410161715615279575081810a6108d3565b61528383836151bb565b80600019048211156152975761529761463a565b029392505050565b6000611dc383836151fe565b600082516152bd8184602087016141c6565b919091019291505056fed2f1ed38b7d242bfb8b41862afb813a15193219a4bc717f2056607593e6c7500914a9547f6c3ddce1d5efbd9e687708f0d1d408ce129e8e1a88bce4f40e29500a2646970667358221220464647cbdd573cd383ebaf9d45c0cc9a942a41e750103eb1a15afdb9634d3e8f64736f6c63430008120033", } // NativeTokenRemoteABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/TokenRemote/TokenRemote/TokenRemote.go b/abi-bindings/go/TokenRemote/TokenRemote/TokenRemote.go index 36384c3e..23296016 100644 --- a/abi-bindings/go/TokenRemote/TokenRemote/TokenRemote.go +++ b/abi-bindings/go/TokenRemote/TokenRemote/TokenRemote.go @@ -64,7 +64,7 @@ type TeleporterFeeInfo struct { // TokenRemoteMetaData contains all meta data concerning the TokenRemote contract. var TokenRemoteMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"MULTI_HOP_CALL_GAS_PER_WORD\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_CALL_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MULTI_HOP_SEND_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"REGISTER_REMOTE_REQUIRED_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateNumWords\",\"inputs\":[{\"name\":\"payloadSize\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getInitialReserveImbalance\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsCollateralized\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinTeleporterVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMultiplyOnRemote\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenHomeAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenHomeBlockchainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenMultiplier\",\"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\":\"registerWithHome\",\"inputs\":[{\"name\":\"feeInfo\",\"type\":\"tuple\",\"internalType\":\"structTeleporterFeeInfo\",\"components\":[{\"name\":\"feeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"teleporterRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractTeleporterRegistry\"}],\"stateMutability\":\"view\"},{\"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\":\"CallFailed\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CallSucceeded\",\"inputs\":[{\"name\":\"recipientContract\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"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\":\"event\",\"name\":\"TokensAndCallSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipientPayload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"recipientGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"fallbackRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensSent\",\"inputs\":[{\"name\":\"teleporterMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"input\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"components\":[{\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"primaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"secondaryFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"multiHopFallback\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokensWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CallSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldMinTeleporterVersion\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newMinTeleporterVersion\",\"type\":\"uint256\"}],\"name\":\"MinTeleporterVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"TeleporterAddressUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"recipientPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"recipientGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fallbackRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structSendAndCallInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensAndCallSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"teleporterMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destinationBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destinationTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"primaryFeeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"multiHopFallback\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structSendTokensInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MULTI_HOP_CALL_GAS_PER_WORD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_CALL_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTI_HOP_SEND_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_REMOTE_REQUIRED_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payloadSize\",\"type\":\"uint256\"}],\"name\":\"calculateNumWords\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInitialReserveImbalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsCollateralized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinTeleporterVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMultiplyOnRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenHomeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenHomeBlockchainID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"isTeleporterAddressPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"pauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"receiveTeleporterMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTeleporterFeeInfo\",\"name\":\"feeInfo\",\"type\":\"tuple\"}],\"name\":\"registerWithHome\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"teleporterRegistry\",\"outputs\":[{\"internalType\":\"contractTeleporterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teleporterAddress\",\"type\":\"address\"}],\"name\":\"unpauseTeleporterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"updateMinTeleporterVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // TokenRemoteABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go b/abi-bindings/go/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go index 5294fc4f..6ee2b99a 100644 --- a/abi-bindings/go/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go +++ b/abi-bindings/go/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go @@ -31,7 +31,7 @@ var ( // TransparentUpgradeableProxyMetaData contains all meta data concerning the TransparentUpgradeableProxy contract. var TransparentUpgradeableProxyMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_logic\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"admin_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"payable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"admin\",\"inputs\":[],\"outputs\":[{\"name\":\"admin_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"changeAdmin\",\"inputs\":[{\"name\":\"newAdmin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"implementation\",\"inputs\":[],\"outputs\":[{\"name\":\"implementation_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeTo\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"AdminChanged\",\"inputs\":[{\"name\":\"previousAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconUpgraded\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", Bin: "0x608060405260405162000e5138038062000e51833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200022e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e2a60279139620002f8565b9392505050565b60006200018060008051602062000e0a83398151915260001b6200037760201b620001ea1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e0a83398151915260001b6200037760201b620001ea1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b6200025a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001ea1760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61083080620005da6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208044414726c4af2e508bcf298163869828fd1ba6046de0d2fca9193d6155f40b64736f6c63430008120033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", } diff --git a/abi-bindings/go/WrappedNativeToken/WrappedNativeToken.go b/abi-bindings/go/WrappedNativeToken/WrappedNativeToken.go index ed55e68a..33eecc97 100644 --- a/abi-bindings/go/WrappedNativeToken/WrappedNativeToken.go +++ b/abi-bindings/go/WrappedNativeToken/WrappedNativeToken.go @@ -31,7 +31,7 @@ var ( // WrappedNativeTokenMetaData contains all meta data concerning the WrappedNativeToken contract. var WrappedNativeTokenMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"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\":\"amount\",\"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\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"increaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"symbol\",\"type\":\"string\",\"internalType\":\"string\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"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\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", Bin: "0x608060405234801561001057600080fd5b50611164806100206000396000f3fe6080604052600436106100e15760003560e01c806370a082311161007f578063a9059cbb11610059578063a9059cbb14610259578063d0e30db0146100f0578063dd62ed3e14610279578063f62d188814610299576100f0565b806370a08231146101ee57806395d89b4114610224578063a457c2d714610239576100f0565b806323b872dd116100bb57806323b872dd146101725780632e1a7d4d14610192578063313ce567146101b257806339509351146101ce576100f0565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610153576100f0565b366100f0576100ee6102b9565b005b6100ee6102b9565b34801561010457600080fd5b5061010d6102fa565b60405161011a9190610d37565b60405180910390f35b34801561012f57600080fd5b5061014361013e366004610d86565b61038c565b604051901515815260200161011a565b34801561015f57600080fd5b506035545b60405190815260200161011a565b34801561017e57600080fd5b5061014361018d366004610db0565b6103a6565b34801561019e57600080fd5b506100ee6101ad366004610dec565b6103ca565b3480156101be57600080fd5b506040516012815260200161011a565b3480156101da57600080fd5b506101436101e9366004610d86565b610416565b3480156101fa57600080fd5b50610164610209366004610e05565b6001600160a01b031660009081526033602052604090205490565b34801561023057600080fd5b5061010d610438565b34801561024557600080fd5b50610143610254366004610d86565b610447565b34801561026557600080fd5b50610143610274366004610d86565b6104c7565b34801561028557600080fd5b50610164610294366004610e27565b6104d5565b3480156102a557600080fd5b506100ee6102b4366004610e70565b610500565b6102c33334610652565b60405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b60606036805461030990610f21565b80601f016020809104026020016040519081016040528092919081815260200182805461033590610f21565b80156103825780601f1061035757610100808354040283529160200191610382565b820191906000526020600020905b81548152906001019060200180831161036557829003601f168201915b5050505050905090565b60003361039a818585610713565b60019150505b92915050565b6000336103b4858285610838565b6103bf8585856108b2565b506001949350505050565b6103d43382610a5d565b60405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a26104133382610b8e565b50565b60003361039a81858561042983836104d5565b6104339190610f5b565b610713565b60606037805461030990610f21565b6000338161045582866104d5565b9050838110156104ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103bf8286868403610713565b60003361039a8185856108b2565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b600054610100900460ff16158080156105205750600054600160ff909116105b8061053a5750303b15801561053a575060005460ff166001145b61059d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104b1565b6000805460ff1916600117905580156105c0576000805461ff0019166101001790555b610608826040516020016105d49190610f7c565b604051602081830303815290604052836040516020016105f49190610fac565b604051602081830303815290604052610ca7565b801561064e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0382166106a85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104b1565b80603560008282546106ba9190610f5b565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166107755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b1565b6001600160a01b0382166107d65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b1565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061084484846104d5565b905060001981146108ac578181101561089f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104b1565b6108ac8484848403610713565b50505050565b6001600160a01b0383166109165760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b1565b6001600160a01b0382166109785760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b1565b6001600160a01b038316600090815260336020526040902054818110156109f05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104b1565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a509086815260200190565b60405180910390a36108ac565b6001600160a01b038216610abd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104b1565b6001600160a01b03821660009081526033602052604090205481811015610b315760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104b1565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161082b565b505050565b80471015610bde5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016104b1565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c2b576040519150601f19603f3d011682016040523d82523d6000602084013e610c30565b606091505b5050905080610b895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016104b1565b600054610100900460ff16610cce5760405162461bcd60e51b81526004016104b190610fd5565b61064e8282600054610100900460ff16610cfa5760405162461bcd60e51b81526004016104b190610fd5565b6036610d06838261106e565b506037610b89828261106e565b60005b83811015610d2e578181015183820152602001610d16565b50506000910152565b6020815260008251806020840152610d56816040850160208701610d13565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610d8157600080fd5b919050565b60008060408385031215610d9957600080fd5b610da283610d6a565b946020939093013593505050565b600080600060608486031215610dc557600080fd5b610dce84610d6a565b9250610ddc60208501610d6a565b9150604084013590509250925092565b600060208284031215610dfe57600080fd5b5035919050565b600060208284031215610e1757600080fd5b610e2082610d6a565b9392505050565b60008060408385031215610e3a57600080fd5b610e4383610d6a565b9150610e5160208401610d6a565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610e8257600080fd5b813567ffffffffffffffff80821115610e9a57600080fd5b818401915084601f830112610eae57600080fd5b813581811115610ec057610ec0610e5a565b604051601f8201601f19908116603f01168101908382118183101715610ee857610ee8610e5a565b81604052828152876020848701011115610f0157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c90821680610f3557607f821691505b602082108103610f5557634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156103a057634e487b7160e01b600052601160045260246000fd5b6702bb930b83832b2160c51b815260008251610f9f816008850160208701610d13565b9190910160080192915050565b605760f81b815260008251610fc8816001850160208701610d13565b9190910160010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115610b8957600081815260208120601f850160051c810160208610156110475750805b601f850160051c820191505b8181101561106657828155600101611053565b505050505050565b815167ffffffffffffffff81111561108857611088610e5a565b61109c816110968454610f21565b84611020565b602080601f8311600181146110d157600084156110b95750858301515b600019600386901b1c1916600185901b178555611066565b600085815260208120601f198616915b82811015611100578886015182559484019460019091019084016110e1565b508582101561111e5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220cd7c06eb87f04cf488daac407d917ab4291c0ab3c400c218e203c0c9da82856164736f6c63430008120033", } diff --git a/abi-bindings/go/mocks/ExampleERC20Decimals/ExampleERC20Decimals.go b/abi-bindings/go/mocks/ExampleERC20Decimals/ExampleERC20Decimals.go index 723bc682..0b0d2a16 100644 --- a/abi-bindings/go/mocks/ExampleERC20Decimals/ExampleERC20Decimals.go +++ b/abi-bindings/go/mocks/ExampleERC20Decimals/ExampleERC20Decimals.go @@ -31,7 +31,7 @@ var ( // ExampleERC20DecimalsMetaData contains all meta data concerning the ExampleERC20Decimals contract. var ExampleERC20DecimalsMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"tokenDecimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"increaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"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\":\"tokenDecimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"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\":\"amount\",\"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\":\"amount\",\"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}]", + ABI: "[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"tokenDecimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", Bin: "0x60a06040523480156200001157600080fd5b5060405162000f2238038062000f2283398101604081905262000034916200018c565b6040518060400160405280600a81526020016926b7b1b5902a37b5b2b760b11b81525060405180604001604052806004815260200163045584d560e41b81525081600390816200008591906200025c565b5060046200009482826200025c565b505050620000b5336b204fce5e3e25026110000000620000c160201b60201c565b60ff1660805262000350565b6001600160a01b0382166200011c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000130919062000328565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000602082840312156200019f57600080fd5b815160ff81168114620001b157600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001e357607f821691505b6020821081036200020457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200018757600081815260208120601f850160051c81016020861015620002335750805b601f850160051c820191505b8181101562000254578281556001016200023f565b505050505050565b81516001600160401b03811115620002785762000278620001b8565b6200029081620002898454620001ce565b846200020a565b602080601f831160018114620002c85760008415620002af5750858301515b600019600386901b1c1916600185901b17855562000254565b600085815260208120601f198616915b82811015620002f957888601518255948401946001909101908401620002d8565b5085821015620003185787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200034a57634e487b7160e01b600052601160045260246000fd5b92915050565b608051610baf620003736000396000818161016201526101ac0152610baf6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063a0712d6811610066578063a0712d6814610227578063a457c2d71461023a578063a9059cbb1461024d578063dd62ed3e1461026057600080fd5b806342966c68146101ce57806370a08231146101e357806379cc67901461020c57806395d89b411461021f57600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce5671461016057806339509351146101945780633b97e856146101a757600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b610102610273565b60405161010f91906109e0565b60405180910390f35b61012b610126366004610a4a565b610305565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610a74565b61031f565b7f00000000000000000000000000000000000000000000000000000000000000005b60405160ff909116815260200161010f565b61012b6101a2366004610a4a565b610343565b6101827f000000000000000000000000000000000000000000000000000000000000000081565b6101e16101dc366004610ab0565b610365565b005b61013f6101f1366004610ac9565b6001600160a01b031660009081526020819052604090205490565b6101e161021a366004610a4a565b610372565b61010261038b565b6101e1610235366004610ab0565b61039a565b61012b610248366004610a4a565b610400565b61012b61025b366004610a4a565b61047b565b61013f61026e366004610aeb565b610489565b60606003805461028290610b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610b1e565b80156102fb5780601f106102d0576101008083540402835291602001916102fb565b820191906000526020600020905b8154815290600101906020018083116102de57829003601f168201915b5050505050905090565b6000336103138185856104b4565b60019150505b92915050565b60003361032d8582856105d9565b610338858585610653565b506001949350505050565b6000336103138185856103568383610489565b6103609190610b58565b6104b4565b61036f33826107f7565b50565b61037d8233836105d9565b61038782826107f7565b5050565b60606004805461028290610b1e565b662386f26fc100008111156103f65760405162461bcd60e51b815260206004820152601f60248201527f4578616d706c6545524332303a206d6178206d696e742065786365656465640060448201526064015b60405180910390fd5b61036f3382610921565b6000338161040e8286610489565b90508381101561046e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103ed565b61033882868684036104b4565b600033610313818585610653565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166105165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ed565b6001600160a01b0382166105775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ed565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006105e58484610489565b9050600019811461064d57818110156106405760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b61064d84848484036104b4565b50505050565b6001600160a01b0383166106b75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103ed565b6001600160a01b0382166107195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103ed565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103ed565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361064d565b6001600160a01b0382166108575760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103ed565b6001600160a01b038216600090815260208190526040902054818110156108cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103ed565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016105cc565b6001600160a01b0382166109775760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103ed565b80600260008282546109899190610b58565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b81811015610a0d578581018301518582016040015282016109f1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a4557600080fd5b919050565b60008060408385031215610a5d57600080fd5b610a6683610a2e565b946020939093013593505050565b600080600060608486031215610a8957600080fd5b610a9284610a2e565b9250610aa060208501610a2e565b9150604084013590509250925092565b600060208284031215610ac257600080fd5b5035919050565b600060208284031215610adb57600080fd5b610ae482610a2e565b9392505050565b60008060408385031215610afe57600080fd5b610b0783610a2e565b9150610b1560208401610a2e565b90509250929050565b600181811c90821680610b3257607f821691505b602082108103610b5257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561031957634e487b7160e01b600052601160045260246000fdfea2646970667358221220ed6e305375d5b861da9fea1b30980ffe8bbb0fa452c8837e0f0c7a0b060eefdf64736f6c63430008120033", } diff --git a/abi-bindings/go/mocks/MockERC20SendAndCallReceiver/MockERC20SendAndCallReceiver.go b/abi-bindings/go/mocks/MockERC20SendAndCallReceiver/MockERC20SendAndCallReceiver.go index 311aa32c..c0a4e59d 100644 --- a/abi-bindings/go/mocks/MockERC20SendAndCallReceiver/MockERC20SendAndCallReceiver.go +++ b/abi-bindings/go/mocks/MockERC20SendAndCallReceiver/MockERC20SendAndCallReceiver.go @@ -31,7 +31,7 @@ var ( // MockERC20SendAndCallReceiverMetaData contains all meta data concerning the MockERC20SendAndCallReceiver contract. var MockERC20SendAndCallReceiverMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"blockSender\",\"inputs\":[{\"name\":\"blockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blockedSenders\",\"inputs\":[{\"name\":\"blockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"blocked\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"TokensReceived\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"TokensReceived\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"blockSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"blockedSenders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"blocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"receiveTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", Bin: "0x608060405234801561001057600080fd5b506108ae806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063487bd69e146100465780637f450d8d1461008557806394395edd146100c3575b600080fd5b610071610054366004610670565b600060208181529281526040808220909352908152205460ff1681565b604051901515815260200160405180910390f35b6100c1610093366004610670565b6000918252602082815260408084206001600160a01b0390931684529190529020805460ff19166001179055565b005b6100c16100d136600461069c565b6000878152602081815260408083206001600160a01b038916845290915290205460ff161561015c5760405162461bcd60e51b815260206004820152602c60248201527f4d6f636b455243323053656e64416e6443616c6c52656365697665723a20736560448201526b1b99195c88189b1bd8dad95960a21b60648201526084015b60405180910390fd5b846001600160a01b0316866001600160a01b0316887f7149eb81ada224b86bfda05a4cf439b25596d3c0d8015aebd1cdc11ab17fe190878787876040516101a69493929190610754565b60405180910390a48061020f5760405162461bcd60e51b815260206004820152602b60248201527f4d6f636b455243323053656e64416e6443616c6c52656365697665723a20656d60448201526a1c1d1e481c185e5b1bd85960aa1b6064820152608401610153565b61021a843385610224565b5050505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa15801561026d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610291919061079c565b90506102a86001600160a01b03861685308661038d565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa1580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610313919061079c565b90508181116103795760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610153565b61038382826107b5565b9695505050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526103e79085906103ed565b50505050565b6000610442826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166104c49092919063ffffffff16565b8051909150156104bf578080602001905181019061046091906107dc565b6104bf5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610153565b505050565b60606104d384846000856104db565b949350505050565b60608247101561053c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610153565b600080866001600160a01b031685876040516105589190610829565b60006040518083038185875af1925050503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b606091505b50915091506105ab878383876105b6565b979650505050505050565b6060831561062557825160000361061e576001600160a01b0385163b61061e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610153565b50816104d3565b6104d3838381511561063a5781518083602001fd5b8060405162461bcd60e51b81526004016101539190610845565b80356001600160a01b038116811461066b57600080fd5b919050565b6000806040838503121561068357600080fd5b8235915061069360208401610654565b90509250929050565b600080600080600080600060c0888a0312156106b757600080fd5b873596506106c760208901610654565b95506106d560408901610654565b94506106e360608901610654565b93506080880135925060a088013567ffffffffffffffff8082111561070757600080fd5b818a0191508a601f83011261071b57600080fd5b81358181111561072a57600080fd5b8b602082850101111561073c57600080fd5b60208301945080935050505092959891949750929550565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6000602082840312156107ae57600080fd5b5051919050565b818103818111156107d657634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156107ee57600080fd5b815180151581146107fe57600080fd5b9392505050565b60005b83811015610820578181015183820152602001610808565b50506000910152565b6000825161083b818460208701610805565b9190910192915050565b6020815260008251806020840152610864816040850160208701610805565b601f01601f1916919091016040019291505056fea264697066735822122064f1d754377dce2bf8cb180cbacd8ea2f5522893cef8584d0d88723f34f981fe64736f6c63430008120033", } diff --git a/abi-bindings/go/mocks/MockNativeSendAndCallReceiver/MockNativeSendAndCallReceiver.go b/abi-bindings/go/mocks/MockNativeSendAndCallReceiver/MockNativeSendAndCallReceiver.go index a22ba143..ca21bcbe 100644 --- a/abi-bindings/go/mocks/MockNativeSendAndCallReceiver/MockNativeSendAndCallReceiver.go +++ b/abi-bindings/go/mocks/MockNativeSendAndCallReceiver/MockNativeSendAndCallReceiver.go @@ -31,7 +31,7 @@ var ( // MockNativeSendAndCallReceiverMetaData contains all meta data concerning the MockNativeSendAndCallReceiver contract. var MockNativeSendAndCallReceiverMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"blockSender\",\"inputs\":[{\"name\":\"blockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blockedSenders\",\"inputs\":[{\"name\":\"blockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"blocked\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"TokensReceived\",\"inputs\":[{\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"originSenderAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"TokensReceived\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"blockSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"blockedSenders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"blocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"originTokenTransferrerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"originSenderAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"receiveTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", Bin: "0x608060405234801561001057600080fd5b5061037b806100206000396000f3fe6080604052600436106100345760003560e01c80632c3625fe14610039578063487bd69e1461004e5780637f450d8d1461009a575b600080fd5b61004c610047366004610248565b6100e3565b005b34801561005a57600080fd5b506100866100693660046102e3565b600060208181529281526040808220909352908152205460ff1681565b604051901515815260200160405180910390f35b3480156100a657600080fd5b5061004c6100b53660046102e3565b6000918252602082815260408084206001600160a01b0390931684529190529020805460ff19166001179055565b6000858152602081815260408083206001600160a01b038716845290915290205460ff161561016f5760405162461bcd60e51b815260206004820152602d60248201527f4d6f636b4e617469766553656e64416e6443616c6c52656365697665723a207360448201526c195b99195c88189b1bd8dad959609a1b60648201526084015b60405180910390fd5b826001600160a01b0316846001600160a01b0316867f98f64f0ad4e0e2a42535fa15b05dc6e800e16e439c98143fefabb72b43bad53e3486866040516101b79392919061030f565b60405180910390a460008190036102255760405162461bcd60e51b815260206004820152602c60248201527f4d6f636b4e617469766553656e64416e6443616c6c52656365697665723a206560448201526b1b5c1d1e481c185e5b1bd85960a21b6064820152608401610166565b5050505050565b80356001600160a01b038116811461024357600080fd5b919050565b60008060008060006080868803121561026057600080fd5b853594506102706020870161022c565b935061027e6040870161022c565b9250606086013567ffffffffffffffff8082111561029b57600080fd5b818801915088601f8301126102af57600080fd5b8135818111156102be57600080fd5b8960208285010111156102d057600080fd5b9699959850939650602001949392505050565b600080604083850312156102f657600080fd5b823591506103066020840161022c565b90509250929050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea264697066735822122003c30d40630cf12784523ce9b526a351c7996a29151bd93ebc21dc4c2200d41c64736f6c63430008120033", } diff --git a/contracts/src/TokenHome/TokenHome.sol b/contracts/src/TokenHome/TokenHome.sol index 84b866e3..7a0844d0 100644 --- a/contracts/src/TokenHome/TokenHome.sol +++ b/contracts/src/TokenHome/TokenHome.sol @@ -60,7 +60,7 @@ abstract contract TokenHome is ITokenHome, TeleporterOwnerUpgradeable, SendReent address remoteTokenTransferrerAddress => RemoteTokenTransferrerSettings remoteSettings ) - ) _registeredRemotes; + ) _registeredRemotes; /** * @notice Tracks the balances of tokens sent to TokenRemote instances. * Balances are represented in the remote token's denomination, @@ -70,7 +70,7 @@ abstract contract TokenHome is ITokenHome, TeleporterOwnerUpgradeable, SendReent mapping( bytes32 remoteBlockchainID => mapping(address remoteTokenTransferrerAddress => uint256 balance) - ) _transferredBalances; + ) _transferredBalances; } // solhint-enable private-vars-leading-underscore @@ -237,7 +237,7 @@ abstract contract TokenHome is ITokenHome, TeleporterOwnerUpgradeable, SendReent messageType: TransferrerMessageType.SINGLE_HOP_SEND, payload: abi.encode( SingleHopSendMessage({recipient: input.recipient, amount: adjustedAmount}) - ) + ) }); // Send message to the TokenRemote instance @@ -295,7 +295,7 @@ abstract contract TokenHome is ITokenHome, TeleporterOwnerUpgradeable, SendReent messageType: TransferrerMessageType.SINGLE_HOP_SEND, payload: abi.encode( SingleHopSendMessage({recipient: input.recipient, amount: adjustedAmount}) - ) + ) }); // Send message to the TokenRemote instance. @@ -349,7 +349,7 @@ abstract contract TokenHome is ITokenHome, TeleporterOwnerUpgradeable, SendReent recipientGasLimit: input.recipientGasLimit, fallbackRecipient: input.fallbackRecipient }) - ) + ) }); // Send message to the TokenRemote instance. @@ -405,7 +405,7 @@ abstract contract TokenHome is ITokenHome, TeleporterOwnerUpgradeable, SendReent recipientGasLimit: input.recipientGasLimit, fallbackRecipient: input.fallbackRecipient }) - ) + ) }); // Send message to the TokenRemote instance. diff --git a/contracts/src/TokenRemote/NativeTokenRemote.sol b/contracts/src/TokenRemote/NativeTokenRemote.sol index 90660fc0..f1e2afc8 100644 --- a/contracts/src/TokenRemote/NativeTokenRemote.sol +++ b/contracts/src/TokenRemote/NativeTokenRemote.sol @@ -235,7 +235,7 @@ contract NativeTokenRemote is messageType: TransferrerMessageType.SINGLE_HOP_SEND, payload: abi.encode( SingleHopSendMessage({recipient: HOME_CHAIN_BURN_ADDRESS, amount: burnedTxFees}) - ) + ) }); bytes32 messageID = _sendTeleporterMessage( diff --git a/contracts/src/TokenRemote/TokenRemote.sol b/contracts/src/TokenRemote/TokenRemote.sol index 855880ca..f6a1adec 100644 --- a/contracts/src/TokenRemote/TokenRemote.sol +++ b/contracts/src/TokenRemote/TokenRemote.sol @@ -492,7 +492,7 @@ abstract contract TokenRemote is ITokenRemote, TeleporterOwnerUpgradeable, SendR secondaryGasLimit: input.requiredGasLimit, multiHopFallback: input.multiHopFallback }) - ) + ) }); bytes32 messageID = _sendTeleporterMessage( @@ -543,7 +543,7 @@ abstract contract TokenRemote is ITokenRemote, TeleporterOwnerUpgradeable, SendR recipientGasLimit: input.recipientGasLimit, fallbackRecipient: input.fallbackRecipient }) - ) + ) }); // Send message to the token TokenHome instance. @@ -600,7 +600,7 @@ abstract contract TokenRemote is ITokenRemote, TeleporterOwnerUpgradeable, SendR secondaryRequiredGasLimit: input.requiredGasLimit, secondaryFee: input.secondaryFee }) - ) + ) }); // The required gas limit for the first message sent back to the TokenHome instance