[ { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint32", "name": "crossChainFee", "type": "uint32" }, { "internalType": "uint256", "name": "preMintAmount", "type": "uint256" }, { "internalType": "address", "name": "genesisHub", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "fixedRate", "type": "uint256" }, { "internalType": "uint256", "name": "maxBonusFullDay", "type": "uint256" } ], "internalType": "struct IGenesisToken.GenesisConfiguration", "name": "configuration", "type": "tuple" } ], "internalType": "struct IGenesisToken.GenesisConstructor", "name": "_args", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "wrappedNative", "type": "address" }, { "internalType": "address", "name": "key", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "treasury", "type": "address" }, { "internalType": "address", "name": "feePayer", "type": "address" }, { "internalType": "address", "name": "heroglyphRelay", "type": "address" }, { "internalType": "address", "name": "localLzEndpoint", "type": "address" }, { "internalType": "uint32", "name": "localLzEndpointID", "type": "uint32" }, { "internalType": "uint32", "name": "lzGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" } ], "internalType": "struct IHeroOFTXOperator.HeroOFTXOperatorArgs", "name": "_heroArgs", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "ConversionOutOfBounds", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "EmptyFeeCollector", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "FailedToSendETH", "type": "error" }, { "inputs": [], "name": "FailedToSendWETH", "type": "error" }, { "inputs": [], "name": "FeePayerCannotBeZero", "type": "error" }, { "inputs": [], "name": "FeeTooHigh", "type": "error" }, { "inputs": [], "name": "GasLimitCannotBeZero", "type": "error" }, { "inputs": [], "name": "InvalidDelegate", "type": "error" }, { "inputs": [], "name": "InvalidEndpointCall", "type": "error" }, { "inputs": [], "name": "InvalidLocalDecimals", "type": "error" }, { "inputs": [ { "internalType": "uint16", "name": "optionType", "type": "uint16" } ], "name": "InvalidOptionType", "type": "error" }, { "inputs": [], "name": "LzTokenUnavailable", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "NoAction", "type": "error" }, { "inputs": [], "name": "NoKeyDetected", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "NoPeer", "type": "error" }, { "inputs": [], "name": "NoPermission", "type": "error" }, { "inputs": [], "name": "NoRedeemTokenDectected", "type": "error" }, { "inputs": [], "name": "NoRewardCurrently", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "msgValue", "type": "uint256" } ], "name": "NotEnoughNative", "type": "error" }, { "inputs": [], "name": "NotEnoughToLayerZeroFee", "type": "error" }, { "inputs": [], "name": "NotHeroglyph", "type": "error" }, { "inputs": [], "name": "NotgenesisHub", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "OnlyEndpoint", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" } ], "name": "OnlyPeer", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "RedeemDecayTooHigh", "type": "error" }, { "inputs": [], "name": "RewardLowerThanMinimumAllowed", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" } ], "name": "SlippageExceeded", "type": "error" }, { "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": [ { "components": [ { "internalType": "uint256", "name": "fixedRate", "type": "uint256" }, { "internalType": "uint256", "name": "maxBonusFullDay", "type": "uint256" } ], "indexed": false, "internalType": "struct IGenesisToken.GenesisConfiguration", "name": "configuration", "type": "tuple" } ], "name": "ConfigurationUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "feePayer", "type": "address" } ], "name": "FeePayerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "relay", "type": "address" } ], "name": "HeroglyphRelayUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": true, "internalType": "uint32", "name": "sourceEndpointId", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountOrId", "type": "uint256" } ], "name": "OFTReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": true, "internalType": "uint32", "name": "destinationEndpointId", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountOrId", "type": "uint256" } ], "name": "OFTSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "validator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountOrNftId", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "errorMessage", "type": "bytes" } ], "name": "OnCrossChainCallFails", "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": false, "internalType": "uint32", "name": "eid", "type": "uint32" }, { "indexed": false, "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "name": "PeerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "TokenRedeemed", "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": "treasury", "type": "address" } ], "name": "TreasuryUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "genesisHub", "type": "address" } ], "name": "genesisHubUpdated", "type": "event" }, { "inputs": [], "name": "ERROR_LZ_RETURNED_FALSE", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_BPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SECOND_PER_BLOCK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" } ], "name": "allowInitializePath", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "value", "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": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_srcLzEndpoint", "type": "uint32" }, { "internalType": "uint256[]", "name": "_indexes", "type": "uint256[]" } ], "name": "claimAction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "crossChainFee", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimalConversionRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "defaultLzOption", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpointV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_dstEid", "type": "uint32" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "estimateFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeCollector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_srcLzEndpoint", "type": "uint32" }, { "internalType": "address", "name": "_of", "type": "address" }, { "internalType": "uint256[]", "name": "_indexes", "type": "uint256[]" } ], "name": "forgiveDebt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "genesisHub", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_srcLzEndpoint", "type": "uint32" }, { "internalType": "address", "name": "_of", "type": "address" }, { "internalType": "uint256[]", "name": "_indexes", "type": "uint256[]" } ], "name": "getActionsFeeTotal", "outputs": [ { "internalType": "uint256", "name": "amountDue_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getConfiguration", "outputs": [ { "components": [ { "internalType": "uint256", "name": "fixedRate", "type": "uint256" }, { "internalType": "uint256", "name": "maxBonusFullDay", "type": "uint256" } ], "internalType": "struct IGenesisToken.GenesisConfiguration", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFeePayer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLatestBlockMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_multiplier", "type": "uint256" } ], "name": "getNextReward", "outputs": [ { "internalType": "uint256", "name": "redeemReward_", "type": "uint256" }, { "internalType": "uint256", "name": "blockProducingReward_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_lzEndpointID", "type": "uint32" }, { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getPendingActions", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amountOrId", "type": "uint256" }, { "internalType": "uint128", "name": "fee", "type": "uint128" } ], "internalType": "struct IHeroOFTXOperator.RequireAction[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "heroglyphRelay", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "", "type": "tuple" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "address", "name": "_sender", "type": "address" } ], "name": "isComposeMsgSender", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "key", "outputs": [ { "internalType": "contract IKey", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastMintTriggered", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "localLzEndpointID", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lzGasLimit", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "", "type": "uint32" }, { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "nextNonce", "outputs": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oAppVersion", "outputs": [ { "internalType": "uint64", "name": "senderVersion", "type": "uint64" }, { "internalType": "uint64", "name": "receiverVersion", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_lzEndpointSelected", "type": "uint32" }, { "internalType": "uint32", "name": "_blockMinted", "type": "uint32" }, { "internalType": "address", "name": "_validatorWithdrawer", "type": "address" }, { "internalType": "uint128", "name": "_feeToRepay", "type": "uint128" } ], "name": "onValidatorTriggered", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "peers", "outputs": [ { "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_multiplier", "type": "uint256" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "rewardMinted_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "retrieveNative", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_dstEid", "type": "uint32" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmountOut", "type": "uint256" } ], "name": "send", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "fee", "type": "tuple" } ], "internalType": "struct MessagingReceipt", "name": "msgReceipt", "type": "tuple" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegate", "type": "address" } ], "name": "setDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "setPeer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sharedDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalMintedSupply", "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": "value", "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": "value", "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": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "fixedRate", "type": "uint256" }, { "internalType": "uint256", "name": "maxBonusFullDay", "type": "uint256" } ], "internalType": "struct IGenesisToken.GenesisConfiguration", "name": "_configuration", "type": "tuple" } ], "name": "updateConfiguration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_fee", "type": "uint32" } ], "name": "updateCrossChainFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feeCollector", "type": "address" } ], "name": "updateFeeCollector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feePayer", "type": "address" } ], "name": "updateFeePayer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_genesisHub", "type": "address" } ], "name": "updateGenesisHub", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_relay", "type": "address" } ], "name": "updateHeroglyphRelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_lzGasLimit", "type": "uint32" } ], "name": "updateLayerZeroGasLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wrapper", "type": "address" } ], "name": "updateNativeWrapper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasury", "type": "address" } ], "name": "updateTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_lzDstEndpointId", "type": "uint32" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "validatorLZSend", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "wrappedNative", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
61010080604052346101675761458590813803809261001d82610182565b82396101608183018184126101675782516001600160401b0394909290858411610167578360e0910312610167576100536101fd565b938381015186811161016757838261006d9287010161025f565b8552610120840151958611610167576101a0846100d0936100998680956100e09b6100da9a010161025f565b60208901526100ab61014083016102db565b604089015281015160608801526100c5610180820161038d565b6080880152016103a1565b60a08401526103d9565b90610497565b60405161376e9081610e17823960805181818161071b01528181610fa001528181611d3301528181612e4d01528181612f400152613449015260a0518181816113be015281816117390152818161226e015281816125bf01526128b8015260c0518181816108c501528181610ce001526120ae015260e051818181610a3901526120fb0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b601f01601f1916610100908101906001600160401b038211908210176101a757604052565b61016c565b6001600160401b0381116101a757604052565b604081019081106001600160401b038211176101a757604052565b601f909101601f19168101906001600160401b038211908210176101a757604052565b6040519060c082016001600160401b038111838210176101a757604052565b6040519061014082016001600160401b038111838210176101a757604052565b60005b83811061024f5750506000910152565b818101518382015260200161023f565b81601f820112156101675780516001600160401b0381116101a75760405192610292601f8301601f1916602001856101da565b81845260208284010111610167576102b0916020808501910161023c565b90565b610200519063ffffffff8216820361016757565b610220519063ffffffff8216820361016757565b519063ffffffff8216820361016757565b61012051906001600160a01b038216820361016757565b61014051906001600160a01b038216820361016757565b61016051906001600160a01b038216820361016757565b61018051906001600160a01b038216820361016757565b6101a051906001600160a01b038216820361016757565b6101c051906001600160a01b038216820361016757565b6101e051906001600160a01b038216820361016757565b51906001600160a01b038216820361016757565b919082604091031261016757604080519081016001600160401b038111828210176101a7576040526020808294805184520151910152565b6101409061011f190112610167576103ef61021c565b906103f86102ec565b8252610402610303565b602083015261040f61031a565b604083015261041c610331565b6060830152610429610348565b608083015261043661035f565b60a0830152610443610376565b60c08301526104506102b3565b60e083015261045d6102c7565b61010083015261024051610120830152565b634e487b7160e01b600052601160045260246000fd5b9190820180921161049257565b61046f565b908151916020810151916105b1606082019461059860e060018060a01b038851169461051d63ffffffff988960408a015116956104dd604085015160018060a01b031690565b60a08501516001600160a01b031660808601516001600160a01b031661010087015163ffffffff1660c08801519091906001600160a01b0316928461067c565b8051600b80546001600160a01b0319166001600160a01b03928316179055602082015161055291165b6001600160a01b031690565b60c0528851600f80546001600160a01b0319166001600160a01b03909216919091179055610584610120820151600e55565b600e5415610671575b015163ffffffff1690565b60e05263ffffffff1663ffffffff196011541617601155565b60118054600160201b600160c01b031916602083901b600160201b600160c01b03161790551561065f576012805460808301516001600160a01b0316429490941660a01b63ffffffff60a01b166001600160c01b0319909116179290921790915560609060a0810151805160135560200151601455015190811561065b5751610659916106549161064c9082906001600160a01b0316610ab2565b600d54610485565b600d55565b565b5050565b604051630905532b60e11b8152600490fd5b600019600e5561058d565b9561068a9295979196610792565b6001600160a01b0391821660805284821615610769576080516106b5906001600160a01b0316610546565b803b156101675760405163ca5eb5e160e01b81526001600160a01b039690961660048701526000908690602490829084905af1908115610764576106599561070b9261074b575b5064e8d4a5100060a052610c0e565b811615610744575b600a80546001600160a01b039283166001600160a01b03199182161790915560098054939092169216919091179055565b5030610713565b8061075861075e926101ac565b8061077b565b386106fc565b610786565b604051632d618d8160e21b8152600490fd5b600091031261016757565b6040513d6000823e3d90fd5b815191939290916001600160401b0381116101a7576107bb816107b66003546108c6565b610917565b602080601f8311600114610837575090806107f3926107fb95969760009261082c575b50508160011b916000199060031b1c19161790565b6003556109d0565b6001600160a01b038116156108135761065990610d23565b604051631e4fbdf760e01b815260006004820152602490fd5b0151905038806107de565b6003600052601f198316969091907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8982106108ae575050908392916001946107fb97989910610895575b505050811b016003556109d0565b015160001960f88460031b161c19169055388080610887565b8060018596829496860151815501950193019061086b565b90600182811c921680156108f6575b60208310146108e057565b634e487b7160e01b600052602260045260246000fd5b91607f16916108d5565b81811061090b575050565b60008155600101610900565b90601f8211610924575050565b6106599160036000526020600020906020601f840160051c83019310610952575b601f0160051c0190610900565b9091508190610945565b90601f8211610969575050565b6106599160046000526020600020906020601f840160051c8301931061095257601f0160051c0190610900565b90601f82116109a3575050565b6106599160086000526020600020906020601f840160051c8301931061095257601f0160051c0190610900565b80519091906001600160401b0381116101a7576109f7816109f26004546108c6565b61095c565b602080601f8311600114610a2e57508190610a29939460009261082c5750508160011b916000199060031b1c19161790565b600455565b6004600052601f198316949091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b878210610a9a575050836001959610610a81575b505050811b01600455565b015160001960f88460031b161c19169055388080610a76565b80600185968294968601518155019501930190610a62565b6001600160a01b0316908115610b1357600254908082018092116104925760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160009360025584845283825260408420818154019055604051908152a3565b60405163ec442f0560e01b815260006004820152602490fd5b80519091906001600160401b0381116101a757610b5381610b4e6008546108c6565b610996565b602080601f8311600114610b8a57508190610b85939460009261082c5750508160011b916000199060031b1c19161790565b600855565b6008600052601f198316949091907ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3926000905b878210610bf6575050836001959610610bdd575b505050811b01600855565b015160001960f88460031b161c19169055388080610bd2565b80600185968294968601518155019501930190610bbe565b63ffffffff81168015610d115763ffffffff196007541617600755604090815190600360f01b602083015260028252610c46826101bf565b61ffff91600383610c5683610d6c565b1603610cef57835160809290921b63ffffffff60801b16602083015260108252610c7f826101bf565b600383610c8b83610d6c565b1603610cef578151838111610cd157831660010192831161049257610cbe610ccc92610659955194859360208501610dc1565b03601f1981018352826101da565b610b2c565b6044908551906306dfcc6560e41b8252601060048301526024820152fd5b8383610cfc602493610d6c565b9151633a51740d60e01b815291166004820152fd5b6040516387d9959360e01b8152600490fd5b600580546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6002815110610d7c576002015190565b60405162461bcd60e51b815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606490fd5b602090610dd860049594938281519485920161023c565b600160f81b910181815260f09290921b6001600160f01b03191660018301526003820152815191610e119083908584019060200161023c565b01019056fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806306fdde0314610406578063095ea7b314610401578063098d5611146103fc57806311c9b100146103f757806313137d65146103f2578063164d29f6146103ed57806317442b70146103e857806318160ddd146103e3578063185adbbc146103de5780631e9a6950146103d9578063212d840b146103d45780632197bf19146103cf57806323b872dd146103ca5780632a092d5a146103c5578063313ce567146103c05780633400288b146103bb578063340277ee146103b6578063355274ea146102fd5780633943380c146103b15780633be6af3a146103ac57806343d58a55146103a757806347f03d09146103a25780635220a7c21461039d57806352f3a8f8146103985780635e280f1114610393578063601e26031461038e57806361d027b3146103895780636a9a3831146103845780636bd50cef1461037f57806370a082311461037a578063715018a61461037557806373da67b5146103705780637d25a05e1461036b5780637f51bb1f1461036657806382413eac14610361578063857749b01461035c57806386b46006146103575780638a8408fc146103525780638c9d03bb1461034d5780638da5cb5b1461034857806395d89b4114610343578063963efcaa1461033e578063a9059cbb14610339578063b203905514610334578063b4872ef01461032f578063b86110611461032a578063bb0b6a5314610325578063c1400da014610320578063c30fe1f41461031b578063c317e28014610316578063c415b95c14610311578063c47c60701461030c578063ca5eb5e114610307578063d2c35ce814610302578063d5abeb01146102fd578063dd62ed3e146102f8578063debb500f146102f3578063eb6d3a11146102ee578063eba54c1b146102e9578063ee40b4e8146102e4578063f2fde38b146102df578063fd967f47146102da5763ff7bd03d0361000e57612007565b611fea565b611f58565b611f2f565b611ee8565b611ebf565b611e71565b611e0e565b610cac565b611d9b565b611d02565b611c92565b611c69565b611c40565b611c15565b611a1e565b6119e3565b6119bf565b61198f565b6117e4565b61175c565b611721565b611679565b611650565b61162d565b6114f0565b611376565b61131e565b6112c0565b611255565b61122e565b6111d5565b611177565b61113a565b6110fe565b61108e565b610fed565b610fcf565b610f8a565b610f61565b610eeb565b610e6c565b610d2d565b610d0f565b610cca565b610c3c565b610bb5565b610b99565b610b4b565b610a5d565b610a1c565b6109f5565b610879565b610822565b610804565b6107e2565b6107be565b6106bd565b610663565b61063f565b610571565b610477565b600091031261041657565b600080fd5b60005b83811061042e5750506000910152565b818101518382015260200161041e565b906020916104578151809281855285808601910161041b565b601f01601f1916010190565b90602061047492818152019061043e565b90565b346104165760008060031936011261055d5760405190806003549061049b82611a87565b8085529160209160019182811690811561053057506001146104d8575b6104d4866104c881880382611934565b60405191829182610463565b0390f35b9350600384527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061051d575050505081016020016104c8826104d4386104b8565b8054868601840152938201938101610500565b90508695506104d4969350602092506104c894915060ff191682840152151560051b8201019293386104b8565b80fd5b6001600160a01b0381160361041657565b346104165760403660031901126104165760043561058e81610560565b6024353315610626576001600160a01b03821691821561060d5733600090815260016020526040902082916105d5915b9060018060a01b0316600052602052604060002090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b3461041657600036600319011261041657602063ffffffff60075416604051908152f35b34610416576000366003190112610416576020604051600c8152f35b606090600319011261041657600490565b9181601f84011215610416578235916001600160401b038311610416576020838186019501011161041657565b60e0366003190112610416576106d23661067f565b6001600160401b03608435818111610416576106f2903690600401610690565b916106fe60a435610560565b60c43590811161041657610716903690600401610690565b5050337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036107a6576107596107548461204d565b6124a4565b9260208101358094036107745761001993506064359061254c565b61077e849161204d565b60405163309afaf360e21b815263ffffffff9190911660048201526024810191909152604490fd5b6040516391ac5e4f60e01b8152336004820152602490fd5b3461041657600036600319011261041657602063ffffffff60115416604051908152f35b3461041657600036600319011261041657604080516001815260026020820152f35b34610416576000366003190112610416576020600254604051908152f35b346104165760403660031901126104165761083b61267c565b7ff30ba00602860d0e4c31664e6661991eb281c04351e42af375b7f7a12300931d6040600435806013556024358060145582519182526020820152a1005b34610416576040806003193601126104165760043561089781610560565b6012546108b4906001600160a01b03165b6001600160a01b031690565b33036109e4576001600160a01b03907f000000000000000000000000000000000000000000000000000000000000000082168015159081610970575b5061095f57916104d4927fce4385affa8ad2cbec45b1660c6f6afcb691bf0a7a73ebda096ee1dfb670fe6f6109266024356126a8565b9361093b61093686600d54612088565b600d55565b6109458584612719565b8351858152921691602090a2519081529081906020820190565b825163f87e8d7d60e01b8152600490fd5b84516370a0823160e01b81526001600160a01b03841660048201529150602090829060249082905afa9081156109df576000916109b0575b5015386108f0565b6109d2915060203d6020116109d8575b6109ca8183611934565b810190612057565b386109a8565b503d6109c0565b612066565b8151632f58e00160e21b8152600490fd5b3461041657600036600319011261041657602063ffffffff60125460a01c16604051908152f35b3461041657600036600319011261041657602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461041657606036600319011261041657600435610a7a81610560565b602435610a8681610560565b6001600160a01b038216600090815260016020908152604080832033845290915290206044359190549260018401610acf575b610ac393506127a2565b60405160018152602090f35b828410610aeb57610ae683610ac395033383613294565b610ab9565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b63ffffffff81160361041657565b606090600319011261041657600435610b3781610b11565b90602435610b4481610560565b9060443590565b34610416576020610b90610b6a610b6136610b1f565b909291926128a6565b60405191610b8283610b7b81611ac1565b0384611934565b610b8a6121db565b50612ed5565b51604051908152f35b3461041657600036600319011261041657602060405160128152f35b34610416576040366003190112610416577f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b600435610bf381610b11565b60243590610bff61267c565b63ffffffff8116600052600660205281604060002055610c37604051928392836020909392919363ffffffff60408201951681520152565b0390a1005b34610416576020366003190112610416577fc28977e89e56d3a646b174c2ef377304f2ecb657c6b0c76eb4fc2f8271dbfd726020600435610c7c81610560565b610c8461267c565b600980546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b34610416576000366003190112610416576020600e54604051908152f35b34610416576000366003190112610416576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610416576000366003190112610416576020600c54604051908152f35b3461041657602036600319011261041657600435610d4a81610b11565b610d5261267c565b63ffffffff81168015610e5a5763ffffffff196007541617600755604090815190600360f01b602083015260028252610d8a826118d0565b61ffff91600383610d9a83613599565b1603610e3857835160809290921b63ffffffff60801b16602083015260108252610dc3826118d0565b600383610dcf83613599565b1603610e38578151838111610e1a578316600101928311610e1557610e02610e10926100199551948593602085016135e5565b03601f198101835282611934565b612983565b612072565b6044908551906306dfcc6560e41b8252601060048301526024820152fd5b8383610e45602493613599565b9151633a51740d60e01b815291166004820152fd5b6040516387d9959360e01b8152600490fd5b3461041657602036600319011261041657600435610e8981610560565b610e9161267c565b6001600160a01b03168015610ed957600a80546001600160a01b031916821790557fa2ef796a7c3b995771e36157fd4984dd7c60cc8018f29c27d487e712bd70e9db600080a2005b6040516360b47f8b60e11b8152600490fd5b3461041657608036600319011261041657600435610f0881610b11565b602435610f1481610b11565b604435610f2081610560565b606435916001600160801b0383168303610416576009546001600160a01b03163303610f4f5761001993612095565b60405163653e881960e11b8152600490fd5b3461041657600036600319011261041657600a546040516001600160a01b039091168152602090f35b34610416576000366003190112610416576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610416576000366003190112610416576020600d54604051908152f35b3461041657600036600319011261041657600f546040516001600160a01b039091168152602090f35b9181601f84011215610416578235916001600160401b038311610416576020808501948460051b01011161041657565b60606003198201126104165760043561105e81610b11565b9160243561106b81610560565b91604435906001600160401b0382116104165761108a91600401611016565b9091565b346104165761109c36611046565b906110a561267c565b6000936000935b8385106110cd5785156110bb57005b6040516397587a3360e01b8152600490fd5b90919293946110e86110e08787876121c6565b358385612bf3565b8101809111610e155794600101939291906110ac565b34610416576000366003190112610416576111176121db565b5060406111226121f4565b6111388251809260208091805184520151910152565bf35b346104165760203660031901126104165760043561115781610560565b60018060a01b031660005260006020526020604060002054604051908152f35b346104165760008060031936011261055d5761119161267c565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b346104165760203660031901126104165763ffffffff6004356111f781610b11565b6111ff61267c565b166103e8811161121c5763ffffffff196011541617601155600080f35b60405163cd4e616760e01b8152600490fd5b346104165760403660031901126104165761124a600435610b11565b602060405160008152f35b346104165760203660031901126104165760043561127281610560565b61127a61267c565b600f80546001600160a01b0319166001600160a01b039290921691821790557f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d1600080a2005b346104165760a0366003190112610416576112da3661067f565b506064356001600160401b038111610416576112fa903690600401610690565b5050602060843561130a81610560565b6040516001600160a01b0390911630148152f35b3461041657600036600319011261041657602060405160068152f35b611374909291926040806080830195805184526001600160401b036020820151166020850152015191019060208091805184520151910152565b565b60803660031901126104165760043561138e81610b11565b6024359061139b82610560565b606435906113a7612210565b50604051916113b983610b7b81611ac1565b6113ee7f00000000000000000000000000000000000000000000000000000000000000006113e981604435613065565b6130ac565b926011549363ffffffff946114058682168361363a565b820393828511610e15578085106114cf575081841061148f575b509061143b836104d49761143661144f9533613314565b6128a6565b3391611448818388612915565b9186612dc4565b80516040519283529093339316917ffff873bb909b73d08a8c1af4b21779e87103bb8ea8cf3b3a0067eb8526b8b80a90602090a46040519182918261133a565b919083810392818411610e15576104d49761144f9461143b938793611436926114c39160201c6001600160a01b0316612719565b9495505097505061141f565b6040516371c4efed60e01b8152600481018690526024810191909152604490fd5b346104165760403660031901126104165760043561150d81610b11565b6024356001600160401b0381116104165761152c903690600401611016565b906000926000925b8084106115fd578480156110bb57600b546115a191602091611560906108a8906001600160a01b031681565b600f546040516323b872dd60e01b81523360048201526001600160a01b03909116602482015260448101929092529092839190829060009082906064820190565b03925af19081156109df576000916115ce575b50156115bc57005b604051632f1431f760e11b8152600490fd5b6115f0915060203d6020116115f6575b6115e88183611934565b810190612238565b816115b4565b503d6115de565b9091929361162360019161161d6116158886896121c6565b353387612bf3565b90612088565b9401929190611534565b3461041657602061164661164036610b1f565b91612250565b6040519015158152f35b34610416576000366003190112610416576005546040516001600160a01b039091168152602090f35b346104165760008060031936011261055d5760405190806004549061169d82611a87565b8085529160209160019182811690811561053057506001146116c9576104d4866104c881880382611934565b9350600484527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061170e575050505081016020016104c8826104d4386104b8565b80548686018401529382019381016116f1565b346104165760003660031901126104165760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104165760403660031901126104165761178660043561177c81610560565b60243590336127a2565b602060405160018152f35b60208082019080835283518092528060408094019401926000905b8382106117bb57505050505090565b8451805187528301516001600160801b03168684015294850194938201936001909101906117ac565b34610416576040806003193601126104165760043561180281610b11565b63ffffffff6024359161181483610560565b1660005261183e6020916010835260406000209060018060a01b0316600052602052604060002090565b8054906001600160401b0382116118ba5760405192611862818460051b0185611934565b82845260009182528082208185015b84841061188657604051806104d48882611791565b6002836001928951611897816118d0565b855481526001600160801b03858701541683820152815201920193019290611871565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176118ba57604052565b6001600160401b0381116118ba57604052565b606081019081106001600160401b038211176118ba57604052565b60a081019081106001600160401b038211176118ba57604052565b90601f801991011681019081106001600160401b038211176118ba57604052565b60405190611374826118d0565b6040519061137482611919565b6040519061197c826118d0565b600482526314c386cf60e11b6020830152565b34610416576000366003190112610416576104d46119ab61196f565b60405191829160208352602083019061043e565b346104165760206119db6119d236611046565b929190916123b6565b604051908152f35b346104165760203660031901126104165763ffffffff600435611a0581610b11565b1660005260066020526020604060002054604051908152f35b3461041657602036600319011261041657600435611a3b81610560565b611a4361267c565b6000808080809447905af1611a56612465565b5015611a5f5780f35b6040516338822c1360e11b8152600490fd5b634e487b7160e01b600052600060045260246000fd5b90600182811c92168015611ab7575b6020831014611aa157565b634e487b7160e01b600052602260045260246000fd5b91607f1691611a96565b60085460009291611ad182611a87565b80825291602090600190818116908115611b3e5750600114611af4575b50505050565b929394506008600052600080516020613719833981519152926000935b858510611b2b575050506020925001019038808080611aee565b8054858501840152938201938101611b11565b92505050602093945060ff929192191683830152151560051b01019038808080611aee565b6040519060008260085491611b7783611a87565b80835292602090600190818116908115611bf15750600114611ba2575b505061137492500383611934565b9150926008600052600080516020613719833981519152936000925b828410611bd957506113749450505081016020013880611b94565b85548885018301529485019487945092810192611bbe565b9150506020925061137494915060ff191682840152151560051b8201013880611b94565b34610416576000366003190112610416576104d46040516119ab81611c3981611ac1565b0382611934565b34610416576000366003190112610416576012546040516001600160a01b039091168152602090f35b3461041657600036600319011261041657601154604051602091821c6001600160a01b03168152f35b34610416576020366003190112610416577f9ebf86b6ba1c5960b362f7a05cd80d0ba0fc6e065896337038cf1874ff5cd6486020600435611cd281610560565b611cda61267c565b601280546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b34610416576000602036600319011261055d57600435611d2181610560565b611d2961267c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691839190833b15611d975760249083604051958694859363ca5eb5e160e01b85521660048401525af180156109df57611d8b575080f35b611d94906118eb565b80f35b8280fd5b3461041657602036600319011261041657600435611db881610560565b611dc061267c565b6001600160a01b03811615611dfc5760118054640100000000600160c01b03191660209290921b640100000000600160c01b0316919091179055005b604051630905532b60e11b8152600490fd5b34610416576040366003190112610416576020611e68600435611e3081610560565b60243590611e3d82610560565b60018060a01b03166000526001835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b34610416576020366003190112610416576004358015611eb7575b611ea5611e98826130bf565b9163ffffffff421661318a565b60408051928352602083019190915290f35b506001611e8c565b3461041657600036600319011261041657600b546040516001600160a01b039091168152602090f35b3461041657602036600319011261041657600435611f0581610560565b611f0d61267c565b600b80546001600160a01b0319166001600160a01b0392909216919091179055005b34610416576000366003190112610416576009546040516001600160a01b039091168152602090f35b3461041657602036600319011261041657600435611f7581610560565b611f7d61267c565b6001600160a01b03908116908115611fd157600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b604051631e4fbdf760e01b815260006004820152602490fd5b346104165760003660031901126104165760206040516127108152f35b346104165760603660031901126104165760206120233661067f565b63ffffffff813561203381610b11565b166000526006825260406000205482604051920135148152f35b3561047481610b11565b90816020910312610416575190565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908201809211610e1557565b929192600c549063ffffffff80931691821115612149577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168015159081612150575b506121495761137494612135936120f961093694600c55565b7f000000000000000000000000000000000000000000000000000000000000000081169083161461213a5761212d91612a78565b600d54612088565b612b79565b61214491506126d2565b61212d565b5050505050565b6040516370a0823160e01b81526001600160a01b03881660048201529150602090829060249082905afa9081156109df57600091612191575b5015386120e0565b6121aa915060203d6020116109d8576109ca8183611934565b38612189565b634e487b7160e01b600052603260045260246000fd5b91908110156121d65760051b0190565b6121b0565b604051906121e8826118d0565b60006020838281520152565b60405190612201826118d0565b60135482526014546020830152565b6040519061221d826118fe565b81600081526000602082015260406122336121db565b910152565b90816020910312610416575180151581036104165790565b90303303612388576001600160401b0361229361226b611b63565b947f000000000000000000000000000000000000000000000000000000000000000090613065565b604080516001600160a01b03851660208201526001600160401b039390921692831690820152670de0b6b3a7640000606080830191909152815290939061233290601f19906122ef9084906122e9608082611934565b87612ed5565b936123268551604051988993602085016001600160401b03604092959493606083019660018060a01b031683521660208201520152565b03908101865285611934565b61235361234f61234984516001600160801b031690565b30612fa3565b1590565b61237f57600a546123799490612373906108a8906001600160a01b031681565b93612dc4565b50600190565b50505050600090565b604051639d7b369d60e01b8152600490fd5b80548210156121d65760005260206000209060011b0190600090565b92906123e99063ffffffff60009516600052601060205260406000209060018060a01b0316600052602052604060002090565b805491821561245b579291906000935b80851061240857505050505090565b90919293946124188683876121c6565b35848110156124515760016124356001600160801b03928661239a565b500154168101809111610e1557600190955b01939291906123f9565b5094600190612447565b5050505050600090565b3d1561249f573d906001600160401b0382116118ba5760405191612493601f8201601f191660200184611934565b82523d6000602084013e565b606090565b63ffffffff168060005260066020526040600020549081156124c4575090565b6024906040519063f6ff4fb760e01b82526004820152fd5b6001600160401b0381160361041657565b8054680100000000000000008110156118ba5761250f9160018201815561239a565b6125475760016001600160801b03602084611374955185550151169101906001600160801b03166001600160801b0319825416179055565b611a71565b91928360609181010312610416577fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61261763ffffffff6126056125ff86886125ed99359061259a82610560565b60406020820135916125ab836124dc565b6001600160a01b039093169b920135918b917f0000000000000000000000000000000000000000000000000000000000000000906001600160401b03166130ac565b91801515938461261c575b50506132ce565b9561204d565b60405195865216939081906020820190565b0390a4565b612674926105be61262f6126459361204d565b63ffffffff166000526010602052604060002090565b61266f6001600160801b03612658611955565b938685521660208401906001600160801b03169052565b6124ed565b89388a6125f8565b6005546001600160a01b0316330361269057565b60405163118cdaa760e01b8152336004820152602490fd5b6126b1906130bf565b6012805463ffffffff60a01b19164260a01b63ffffffff60a01b1617905590565b6126e163ffffffff421661324d565b6012805463ffffffff60a01b19164260a01b63ffffffff60a01b1617905590816001600160a01b03821661271457505090565b610474915b6001600160a01b038116919082156127895760025490828201809211610e15576002919091556001600160a01b0316600090815260208181526040822091927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92818154019055604051908152a3565b60405163ec442f0560e01b815260006004820152602490fd5b916001600160a01b038084169290831561288d578116938415612789576001600160a01b03811660009081526020819052604090205483811061285e576128599284926128287fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9661284394039160018060a01b03166000526000602052604060002090565b556001600160a01b0316600090815260208190526040902090565b8054820190556040519081529081906020820190565b0390a3565b60405163391434e360e21b81526001600160a01b03929092166004830152602482015260448101839052606490fd5b604051634b637e8f60e11b815260006004820152602490fd5b906128dd906001600160401b039182917f000000000000000000000000000000000000000000000000000000000000000090613065565b166040519260018060a01b03166020840152604083015260006060830152606082526080820190828210908211176118ba5760405290565b906104749291610b8a6121db565b601f811161292f575050565b6000906008600052600080516020613719833981519152906020601f850160051c83019410612979575b601f0160051c01915b82811061296e57505050565b818155600101612962565b9092508290612959565b9081516001600160401b0381116118ba576129a8816129a3600854611a87565b612923565b602080601f83116001146129eb575081906129db93946000926129e0575b50508160011b916000199060031b1c19161790565b600855565b0151905038806129c6565b90601f19831694612a0c600860005260008051602061371983398151915290565b926000905b878210612a49575050836001959610612a30575b505050811b01600855565b015160001960f88460031b161c19169055388080612a25565b80600185968294968601518155019501930190612a11565b60409061047493928152816020820152019061043e565b612a806132de565b93919290931561237f57604051638c9d03bb60e01b815263ffffffff9190911660048201526001600160a01b03821660248201526044810183905260009060609060208160648186305af160009181612b58575b50612b40575050612ae3612465565b905b15612af1575b50505090565b81612b1d847f6747eff295941fcdc192a79a53e496ea2d32a565b3d0a7200b4eacbb7ef7c25294612719565b612b3560405192839260018060a01b03169583612a61565b0390a2388080612aeb565b90915080612ae5579050612b5261196f565b90612ae5565b612b7291925060203d6020116115f6576115e88183611934565b9038612ad4565b6001600160801b03811615612ba557600954612b9e91906001600160a01b0316612fa3565b15611a5f57565b50565b91908203918211610e1557565b80548015612bdd576000190190612bcc828261239a565b612547576001816000809355015555565b634e487b7160e01b600052603160045260246000fd5b63ffffffff1660009081526010602090815260408083206001600160a01b03851684529091529020909181549283158015612ce2575b61237f576000198401938411610e15576001612c45838561239a565b50928354936001600160801b0392839101541695818103612c75575b505050612c7061047493612bb5565b612719565b612c85612c8d918793949761239a565b50928261239a565b959095612547578583612c70946104749803612cae575b5050819550612c61565b612cda9260018281935485550154169101906001600160801b03166001600160801b0319825416179055565b388080612ca4565b5083821015612c29565b919082604091031261041657604051612d04816118d0565b6020808294805184520151910152565b9060808282031261041657612d4e906040805193612d31856118fe565b805185526020810151612d43816124dc565b602086015201612cec565b604082015290565b906020909392936040835263ffffffff81511660408401528181015160608401526080612daa612d94604084015160a08488015260e087019061043e565b6060840151868203603f190160a088015261043e565b910151151560c08401526001600160a01b03909416910152565b612e2d60809492612e499694612dd8612210565b506020612de586516133d3565b950191825180612eb2575b50612dfa856124a4565b9251151592612e16612e0a611962565b63ffffffff9097168752565b602086015260408501526060840152151585830152565b6040518095819482936302637a4560e41b845260048401612d56565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156109df57600091612e89575090565b610474915060803d608011612eab575b612ea38183611934565b810190612d14565b503d612e99565b612ebb90613432565b38612df0565b906040828203126104165761047491612cec565b91612f3c9192612ee36121db565b50612eed816124a4565b916040948593612f0c855194612f0286611919565b63ffffffff168552565b602084015283830152606082015260006080820152815180938192631bb8518b60e31b8352309060048401612d56565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156109df57600092612f7d57505090565b6104749250803d10612f9c575b612f948183611934565b810190612ec1565b503d612f8a565b600a546001600160a01b03908116308103612ff757506001600160801b03479316809310612fef5781163014612fe857600080809381935af1612fe4612465565b5090565b5050600190565b505050600090565b809391503b1561041657604051637bf0862160e01b81526001600160a01b039290921660048301526001600160801b03166024820152906000908290604490829084905af180156109df5761304c5750600190565b8061305961305f926118eb565b8061040b565b38612379565b811561306f570490565b634e487b7160e01b600052601260045260246000fd5b63ffffffff9182169082160391908211610e1557565b9081156001838004141715610e1557565b81810292918115918404141715610e1557565b6131119060206130cd6121f4565b916130f06130e86108a86108a860125460018060a01b031690565b9184516130ac565b906040518080968194630d102ae160e21b8352600483019190602083019252565b03915afa9081156109df5761313692600092613164575b50602061161d91015161357b565b600d54600e5480821015612fef578061314f8484612088565b111561315f576104749250612ba8565b505090565b61161d919250613182602091823d84116109d8576109ca8183611934565b929150613128565b906131fd9160206131996121f4565b916131dc828401946131d56131b2875162015180900490565b6113e96131cc6012549663ffffffff8860a01c1690613085565b63ffffffff1690565b94516130ac565b906040518080978194630d102ae160e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156109df576131369360009261322a575b5061161d91925190613587565b61161d92506132479060203d6020116109d8576109ca8183611934565b9161321d565b6131fd906132596121f4565b6020808201926131dc61328d613273865162015180900490565b6113e96131cc6012549563ffffffff8760a01c1690613085565b935161309b565b906001600160a01b03808316156106265781161561060d576105be6132cb9260018060a01b03166000526001602052604060002090565b55565b90809261315f5761047491612719565b6132ed63ffffffff421661324d565b6012805463ffffffff60a01b19164260a01b63ffffffff60a01b1617905590819081151590565b91906001600160a01b03831690811561288d576001600160a01b038416600090815260208190526040902054938185106133a1578160209161338f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9460009798039160018060a01b03166000526000602052604060002090565b558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481018590526044810191909152606490fd5b473415801580613429575b6134115780613408575b6133f0575090565b602490604051906304fb820960e51b82526004820152fd5b508181106133e8565b6040516304fb820960e51b8152346004820152602490fd5b508234106133de565b60405163393f876560e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116926020929091908381600481885afa9081156109df57600091613545575b5016928315613533576040516323b872dd60e01b8482019081523360248301526001600160a01b03909216604482015260648101929092526134eb9160009182916134d68160848101610e02565b519082875af16134e4612465565b90846136b5565b805191821515928361351a575b5050506135025750565b60249060405190635274afe760e01b82526004820152fd5b61352a9350820181019101612238565b153880806134f8565b6040516329b99a9560e11b8152600490fd5b90508381813d8311613574575b61355c8183611934565b81010312610416575161356e81610560565b38613488565b503d613552565b80156104745750600090565b9080821015613594575090565b905090565b60028151106135a9576002015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6020906135fc60049594938281519485920161041b565b600160f81b910181815260f09290921b6001600160f01b031916600183015260038201528151916136359083908584019060200161041b565b010190565b9080820290600019818409908280831092039180830392146136aa576127109082821115613698577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91940990828211900360fc1b910360041c170290565b60405163227bc15360e01b8152600490fd5b505061271091500490565b906136dc57508051156136ca57805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061370f575b6136ed575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156136e556fef3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3a264697066735822122065dd223a0a053aefddfd40e52e3dd5a45d5bac2259493efca85fc86bdf7a332964736f6c634300081900330000000000000000000000000000000000000000000000000000000000000160000000000000000000000000deaddeaddeaddeaddeaddeaddeaddeaddead1111000000000000000000000000bcedcff31c68b1fb362faebe36917b35643de471000000000000000000000000c90b92d70af24ef1369389f1a1e3887305cd89c9000000000000000000000000888d768764a2e304215247f0ba3457ccb0f0ab4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a44076050125825900e736c501f859c50fe728c00000000000000000000000000000000000000000000000000000000000075e50000000000000000000000000000000000000000000000000000000000030d40000000000000000000000000000000000000000000000003bd913e6c1df4000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002363900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023639000000000000000000000000000000000000000000000000000000000000