ETH Price: $2,453.25 (-2.03%)

Contract

0x312C9b9bA2D67cAC21231D3d0f6E5d5D653c4D6d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction and > 10 Token Transfers found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method
Block
From
To
0x61014060221765182025-04-01 20:43:11521 days ago1743540191  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Similar Match: 0x19426e12...492C6D446
Constructor

Contract Name

RelayPool

Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled
Yes with 200 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"hyperlaneMailbox","type":"address"},{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"_yieldPool","type":"address"},{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_curator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailedTransfer","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"MessageAlreadyProcessed","type":"error"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint32","name":"coolDown","type":"uint32"}],"name":"MessageTooRecent","type":"error"},{"inputs":[],"name":"NotAWethPool","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":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"uint256","name":"actualPrice","type":"uint256"},{"internalType":"uint256","name":"maxPrice","type":"uint256"}],"name":"SharePriceTooHigh","type":"error"},{"inputs":[{"internalType":"uint256","name":"actualPrice","type":"uint256"},{"internalType":"uint256","name":"minPrice","type":"uint256"}],"name":"SharePriceTooLow","type":"error"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"uint256","name":"maxDebt","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TooMuchDebtFromOrigin","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"UnauthorizedCaller","type":"error"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"}],"name":"UnauthorizedOrigin","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"UnauthorizedSwap","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"yieldPool","type":"address"}],"name":"AssetsDepositedIntoYieldPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"yieldPool","type":"address"}],"name":"AssetsWithdrawnFromYieldPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"chainId","type":"uint32"},{"indexed":true,"internalType":"address","name":"bridge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"}],"name":"BridgeCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"contract ERC20","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"components":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"address","name":"curator","type":"address"},{"internalType":"uint256","name":"maxDebt","type":"uint256"},{"internalType":"uint256","name":"outstandingDebt","type":"uint256"},{"internalType":"address","name":"proxyBridge","type":"address"},{"internalType":"uint16","name":"bridgeFee","type":"uint16"},{"internalType":"uint32","name":"coolDown","type":"uint32"}],"indexed":false,"internalType":"struct OriginSettings","name":"origin","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"}],"name":"LoanEmitted","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"curator","type":"address"},{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"address","name":"proxyBridge","type":"address"},{"internalType":"uint256","name":"maxDebt","type":"uint256"},{"internalType":"uint16","name":"bridgeFee","type":"uint16"},{"internalType":"uint32","name":"coolDown","type":"uint32"}],"indexed":false,"internalType":"struct OriginParam","name":"origin","type":"tuple"}],"name":"OriginAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"chainId","type":"uint32"},{"indexed":false,"internalType":"address","name":"bridge","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxDebt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outstandingDebt","type":"uint256"},{"indexed":false,"internalType":"address","name":"proxyBridge","type":"address"}],"name":"OriginDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldDebt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDebt","type":"uint256"},{"components":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"address","name":"curator","type":"address"},{"internalType":"uint256","name":"maxDebt","type":"uint256"},{"internalType":"uint256","name":"outstandingDebt","type":"uint256"},{"internalType":"address","name":"proxyBridge","type":"address"},{"internalType":"uint16","name":"bridgeFee","type":"uint16"},{"internalType":"uint32","name":"coolDown","type":"uint32"}],"indexed":false,"internalType":"struct OriginSettings","name":"origin","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"oldOriginDebt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newOriginDebt","type":"uint256"}],"name":"OutstandingDebtChanged","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":"uint256","name":"oldPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPeriod","type":"uint256"}],"name":"StreamingPeriodChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"prevAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"TokenSwapChanged","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPool","type":"address"},{"indexed":false,"internalType":"address","name":"newPool","type":"address"}],"name":"YieldPoolChanged","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HYPERLANE_MAILBOX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"curator","type":"address"},{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"address","name":"proxyBridge","type":"address"},{"internalType":"uint256","name":"maxDebt","type":"uint256"},{"internalType":"uint16","name":"bridgeFee","type":"uint16"},{"internalType":"uint32","name":"coolDown","type":"uint32"}],"internalType":"struct OriginParam","name":"origin","type":"tuple"}],"name":"addOrigin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":[],"name":"asset","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"}],"name":"authorizedOrigins","outputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"address","name":"curator","type":"address"},{"internalType":"uint256","name":"maxDebt","type":"uint256"},{"internalType":"uint256","name":"outstandingDebt","type":"uint256"},{"internalType":"address","name":"proxyBridge","type":"address"},{"internalType":"uint16","name":"bridgeFee","type":"uint16"},{"internalType":"uint32","name":"coolDown","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"}],"name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectNonDepositedAssets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","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":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"}],"name":"disableOrigin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endOfStream","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"bytes32","name":"bridgeAddress","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"handle","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lastAssetsCollectedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"messages","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outstandingDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingBridgeFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"},{"internalType":"address","name":"bridge","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"processFailedHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenSwapAddress","type":"address"}],"name":"setTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"streamingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint24","name":"uniswapWethPoolFeeToken","type":"uint24"},{"internalType":"uint24","name":"uniswapWethPoolFeeAsset","type":"uint24"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"}],"name":"swapAndDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSwapAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssetsToStream","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":[],"name":"updateStreamedAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPeriod","type":"uint256"}],"name":"updateStreamingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPool","type":"address"},{"internalType":"uint256","name":"minSharePriceFromOldPool","type":"uint256"},{"internalType":"uint256","name":"maxSharePricePriceFromNewPool","type":"uint256"}],"name":"updateYieldPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"yieldPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x6080604052600436106103395760003560e01c8063765cb8d0116101ab578063b66ff261116100f7578063d02914a511610095578063dd62ed3e1161006f578063dd62ed3e14610b3e578063ef8b30f714610b76578063f1a3291d14610b96578063f2fde38b14610bac57600080fd5b8063d02914a514610ae8578063d505accf14610afe578063d905777e14610b1e57600080fd5b8063c6e6f592116100d1578063c6e6f59214610a54578063c751fbfb14610a74578063c9a7339f14610aa8578063ce96cb7714610ac857600080fd5b8063b66ff261146109f4578063ba08765214610a14578063c63d75b614610a3457600080fd5b80639671b58711610164578063ab6fb3801161013e578063ab6fb38014610960578063ad5c464814610980578063b3d7f6b9146109b4578063b460af94146109d457600080fd5b80639671b587146109005780639ef0304514610920578063a9059cbb1461094057600080fd5b8063765cb8d0146108375780637ecebe00146108575780638da5cb5b146108845780638f188dd4146108ab57806394bf804d146108cb57806395d89b41146108eb57600080fd5b806338d52e0f11610285578063580c93cd116102235780636e553f65116101fd5780636e553f65146107c057806370a08231146107e0578063715018a61461080d57806371d12ff81461082257600080fd5b8063580c93cd146106e35780635cf9e54a1461070357806366ef59ef1461072357600080fd5b80634cdad5061161025f5780634cdad506146106845780635014de65146106a4578063523bf8c0146106ba57806356d5d475146106d057600080fd5b806338d52e0f14610603578063402d267d146106445780634bf470271461066457600080fd5b80630b6a97cb116102f257806323658276116102cc578063236582761461057757806323b872dd1461058d578063313ce567146105ad5780633644e515146105ee57600080fd5b80630b6a97cb1461052c5780631790c5621461054157806318160ddd1461056157600080fd5b806301e1d1141461045c57806306f94a0d1461048757806306fdde031461049d57806307a2d13a146104bf578063095ea7b3146104df5780630a28a4771461050c57600080fd5b36610457577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316146103b057604051630c86197560e31b815260040160405180910390fd5b336001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21614610455577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561043b57600080fd5b505af115801561044f573d6000803e3d6000fd5b50505050505b005b600080fd5b34801561046857600080fd5b50610471610bcc565b60405161047e91906130ff565b60405180910390f35b34801561049357600080fd5b5061047160075481565b3480156104a957600080fd5b506104b2610cee565b60405161047e9190613163565b3480156104cb57600080fd5b506104716104da36600461318c565b610d7c565b3480156104eb57600080fd5b506104ff6104fa3660046131da565b610da9565b60405161047e919061321f565b34801561051857600080fd5b5061047161052736600461318c565b610e14565b34801561053857600080fd5b50610455610e34565b34801561054d57600080fd5b5061047161055c366004613244565b610ee3565b34801561056d57600080fd5b5061047160025481565b34801561058357600080fd5b50610471600e5481565b34801561059957600080fd5b506104ff6105a8366004613277565b6110e0565b3480156105b957600080fd5b506105e17f000000000000000000000000000000000000000000000000000000000000000681565b60405161047e91906132d0565b3480156105fa57600080fd5b506104716111be565b34801561060f57600080fd5b506106377f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b60405161047e9190613320565b34801561065057600080fd5b5061047161065f36600461332e565b611219565b34801561067057600080fd5b5061045561067f366004613244565b61128b565b34801561069057600080fd5b5061047161069f36600461318c565b6113c9565b3480156106b057600080fd5b5061047160105481565b3480156106c657600080fd5b50610471600c5481565b6104556106de3660046133a1565b6113d4565b3480156106ef57600080fd5b506104556106fe366004613531565b6116dd565b34801561070f57600080fd5b5061045561071e36600461332e565b6118fa565b34801561072f57600080fd5b506107ac61073e366004613244565b60086020908152600092835260408084209091529082529020805460018201546002830154600384015460049094015463ffffffff808516956001600160a01b036401000000009096048616959485169490929081169161ffff600160a01b83041691600160b01b90041688565b60405161047e989796959493929190613571565b3480156107cc57600080fd5b506104716107db3660046135e8565b611960565b3480156107ec57600080fd5b506104716107fb36600461332e565b60036020526000908152604090205481565b34801561081957600080fd5b50610455611a23565b34801561082e57600080fd5b50610471611a37565b34801561084357600080fd5b50610455610852366004613639565b611a4f565b34801561086357600080fd5b5061047161087236600461332e565b60056020526000908152604090205481565b34801561089057600080fd5b506006546001600160a01b03165b60405161047e91906136c3565b3480156108b757600080fd5b50600a5461089e906001600160a01b031681565b3480156108d757600080fd5b506104716108e63660046135e8565b611b4f565b3480156108f757600080fd5b506104b2611bf2565b34801561090c57600080fd5b5061045561091b36600461318c565b611bff565b34801561092c57600080fd5b506104b261093b3660046136d1565b611c4a565b34801561094c57600080fd5b506104ff61095b3660046131da565b611c74565b34801561096c57600080fd5b50600b5461089e906001600160a01b031681565b34801561098c57600080fd5b5061089e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156109c057600080fd5b506104716109cf36600461318c565b611cd8565b3480156109e057600080fd5b506104716109ef3660046136f5565b611cf7565b348015610a0057600080fd5b50610455610a0f36600461373b565b611e11565b348015610a2057600080fd5b50610471610a2f3660046136f5565b61216a565b348015610a4057600080fd5b50610471610a4f36600461332e565b6122a4565b348015610a6057600080fd5b50610471610a6f36600461318c565b6122bb565b348015610a8057600080fd5b5061089e7f000000000000000000000000c005dc82818d67af737725bd4bf75435d065d23981565b348015610ab457600080fd5b50610455610ac3366004613770565b6122db565b348015610ad457600080fd5b50610471610ae336600461332e565b612424565b348015610af457600080fd5b50610471600f5481565b348015610b0a57600080fd5b50610455610b193660046137ba565b61248f565b348015610b2a57600080fd5b50610471610b3936600461332e565b612659565b348015610b4a57600080fd5b50610471610b59366004613859565b600460209081526000928352604080842090915290825290205481565b348015610b8257600080fd5b50610471610b9136600461318c565b612670565b348015610ba257600080fd5b50610471600d5481565b348015610bb857600080fd5b50610455610bc736600461332e565b61267b565b600a546040516370a0823160e01b815260009182916001600160a01b03909116906370a0823190610c019030906004016136c3565b602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190613886565b600a5460405163266d6a8360e11b81529192506000916001600160a01b0390911690634cdad50690610c789085906004016130ff565b602060405180830381865afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190613886565b9050610cc36126b6565b600c54600754610cd390846138bd565b610cdd91906138d0565b610ce791906138d0565b9250505090565b60008054610cfb906138f9565b80601f0160208091040260200160405190810160405280929190818152602001828054610d27906138f9565b8015610d745780601f10610d4957610100808354040283529160200191610d74565b820191906000526020600020905b815481529060010190602001808311610d5757829003601f168201915b505050505081565b6002546000908015610da057610d9b610d93610bcc565b849083612709565b610da2565b825b9392505050565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e029086906130ff565b60405180910390a35060015b92915050565b6002546000908015610da057610d9b81610e2c610bcc565b859190612727565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a0823190610e839030906004016136c3565b602060405180830381865afa158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190613886565b90508015610ee057610ed58161274d565b610ede81612838565b505b50565b63ffffffff821660009081526008602090815260408083206001600160a01b038086168552925282206004810154909116610f3e5783836040516354f37a5760e11b8152600401610f35929190613925565b60405180910390fd5b60048101546001600160a01b039081169063aad3ec96907f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881167f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290911614610fc7577f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48610fca565b60005b83600301546040518363ffffffff1660e01b8152600401610fec929190613940565b6020604051808303816000875af115801561100b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102f9190613886565b915061103b82826128d8565b6110448261274d565b60048101546000906127109061106590600160a01b900461ffff168561395b565b61106f9190613990565b905080600c600082825461108391906138d0565b90915550611092905081612838565b50836001600160a01b03167f50be4e2318c5fc2e6b327c545d7150f7a0263792b687b5498583f8f3502bc9208685846040516110d0939291906139a4565b60405180910390a2505092915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019811461113c5761111783826138d0565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b038516600090815260036020526040812080548592906111649084906138d0565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716906000805160206142aa833981519152906111ab9087906130ff565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000146146111f4576111ef612954565b905090565b507ffcf927bf90437cebbc81062f7f0b63e26787432ee441ec8d1a5c8cf553a1935290565b600a5460405163402d267d60e01b81526000916001600160a01b03169063402d267d9061124a9030906004016136c3565b602060405180830381865afa158015611267573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190613886565b63ffffffff80831660009081526008602090815260408083206001600160a01b038087168552908352928190208151610100810183528154808716825264010000000090048516938101939093526001810154841691830182905260028101546060840152600381015460808401526004015492831660a083015261ffff600160a01b84041660c0830152600160b01b90920490921660e08301523314611347573360405163d86ad9cf60e01b8152600401610f3591906136c3565b63ffffffff831660009081526008602090815260408083206001600160a01b0386168452909152808220600201919091556060820151608083015160a084015192517f871fcd42f70c51db10c5be37946e7ba90f777bb6f84ad8f933da40645388ee4c936113bc9388938893919290916139cc565b60405180910390a1505050565b6000610e0e82610d7c565b336001600160a01b037f000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239161461141f573360405163d86ad9cf60e01b8152600401610f3591906136c3565b600061142a846129dd565b63ffffffff861660009081526008602090815260408083206001600160a01b03851684529091528120600281015492935091900361147f5785826040516354f37a5760e11b8152600401610f35929190613925565b600061148d84860186613a80565b60048301546060820151919250600160b01b900463ffffffff16906114b290426138d0565b10156114f7578683826000015183606001518560040160169054906101000a900463ffffffff16604051630cc7906f60e31b8152600401610f35959493929190613aa1565b63ffffffff871660009081526009602090815260408083206001600160a01b038716845282528083208451845290915281208054611534906138f9565b9050111561155c57805160405163fbeca95760e01b8152610f35918991869190600401613ae3565b63ffffffff871660009081526009602090815260408083206001600160a01b03871684528252808320845184529091529020611599858783613b8f565b5060048201546040820151600091612710916115c091600160a01b900461ffff169061395b565b6115ca9190613990565b905080600c60008282546115de91906138bd565b90915550506002830154604083015160038501546115fc91906138bd565b11156116345760028301548251602084015160408086015190516311a58fb160e01b8152610f35948d948a9491939092600401613c52565b611642826040015184612a0a565b61165f81836040015161165591906138d0565b8360200151612a37565b81602001516001600160a01b031682600001517f5e192c8296d4861109e0f5cb6389921c0893f54c7ffcc1e75c9adc7ac27047b67f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48856040015187866040516116cb9493929190613dd7565b60405180910390a35050505050505050565b6116e5612ba9565b604051806101000160405280826020015163ffffffff16815260200182604001516001600160a01b0316815260200182600001516001600160a01b03168152602001826080015181526020016000815260200182606001516001600160a01b031681526020018260a0015161ffff1681526020018260c0015163ffffffff1681525060086000836020015163ffffffff1663ffffffff168152602001908152602001600020600083604001516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a08201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160040160146101000a81548161ffff021916908361ffff16021790555060e08201518160040160166101000a81548163ffffffff021916908363ffffffff1602179055509050507f8be44323192e817ddc7a650324458e44ee2d8c55b05af56aab8196e59696396d816040516118ef9190613e9a565b60405180910390a150565b611902612ba9565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116917fa788a71062c303bd606016d2c906a6e64705cebfb5762489c5d0742cc07f5f0091611954918491613ea8565b60405180910390a15050565b600061196b83612670565b90508060000361198d5760405162461bcd60e51b8152600401610f3590613edb565b6119c26001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816333086612bd6565b6119cc8282612c58565b816001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78584604051611a11929190613eeb565b60405180910390a3610e0e8382612cb6565b611a2b612ba9565b611a356000612cbf565b565b6000611a416126b6565b600d81905542600e55919050565b611a57612ba9565b7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316866001600160a01b031603611aab5785604051631b37a25160e21b8152600401610f3591906136c3565b600b54611ac39087906001600160a01b031687612d11565b600b5460405163d3cc806b60e01b81526001600160a01b039091169063d3cc806b90611afb9089908890889088908890600401613f12565b6020604051808303816000875af1158015611b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3e9190613886565b50611b47610e34565b505050505050565b6000611b5a83611cd8565b9050611b916001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816333084612bd6565b611b9b8284612c58565b816001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78386604051611be0929190613eeb565b60405180910390a3610e0e8184612cb6565b60018054610cfb906138f9565b611c07612ba9565b611c0f611a37565b5060108054908290556040517f34a782ff69728aa1d7ca8340e4de986041b0a3d5a8271de29738bb8d43c4419d906119549083908590613eeb565b600960209081526000938452604080852082529284528284209052825290208054610cfb906138f9565b33600090815260036020526040812080548391908390611c959084906138d0565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133906000805160206142aa83398151915290610e029086906130ff565b6002546000908015610da057610d9b611cef610bcc565b849083612727565b6000611d0284610e14565b9050336001600160a01b03831614611d72576001600160a01b03821660009081526004602090815260408083203384529091529020546000198114611d7057611d4b82826138d0565b6001600160a01b03841660009081526004602090815260408083203384529091529020555b505b611d7c8482612d6e565b611d868282612d78565b816001600160a01b0316836001600160a01b0316336001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8785604051611dd5929190613eeb565b60405180910390a4610da26001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48168486612dda565b611e19612ba9565b600a546040516370a0823160e01b81526001600160a01b039091169060009082906370a0823190611e4e9030906004016136c3565b602060405180830381865afa158015611e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8f9190613886565b90506000611f5f836001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef89190613886565b846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5a9190613886565b612e4c565b905084811015611f86578085604051636f393ebf60e11b8152600401610f35929190613eeb565b600a54604051635d043b2960e11b81526000916001600160a01b03169063ba08765290611fbb90869030908190600401613f54565b6020604051808303816000875af1158015611fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffe9190613886565b905086600a60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006120cc886001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208e9190613886565b896001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f36573d6000803e3d6000fd5b9050858111156120f35780866040516327d54a6d60e11b8152600401610f35929190613eeb565b61211e7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488984612e61565b6121278261274d565b7f5d762e53f3264338f293b7162f91a331ded939875e7a9e81991fc30f2051c2858589604051612158929190613ea8565b60405180910390a15050505050505050565b6000336001600160a01b038316146121da576001600160a01b038216600090815260046020908152604080832033845290915290205460001981146121d8576121b385826138d0565b6001600160a01b03841660009081526004602090815260408083203384529091529020555b505b6121e3846113c9565b9050806000036122055760405162461bcd60e51b8152600401610f3590613f9e565b61220f8185612d6e565b6122198285612d78565b816001600160a01b0316836001600160a01b0316336001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8488604051612268929190613eeb565b60405180910390a4610da26001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48168483612dda565b6000806122b083611219565b9050610da281612670565b6002546000908015610da057610d9b816122d3610bcc565b859190612709565b6122e3612ba9565b63ffffffff841660009081526008602090815260408083206001600160a01b038716845290915281209061231983850185613a80565b63ffffffff871660009081526009602090815260408083206001600160a01b038a16845282528083208451845290915281208054929350909161235b906138f9565b9050111561238357805160405163fbeca95760e01b8152610f35918891889190600401613ae3565b63ffffffff861660009081526009602090815260408083206001600160a01b038916845282528083208451845290915290206123c0848683613b8f565b506123cf816040015183612a0a565b60006123db8787610ee3565b905081604001518110156124095780826040015160405162fae2d560e21b8152600401610f35929190613eeb565b61241b82604001518360200151612a37565b50505050505050565b6040516370a0823160e01b8152600090610e0e9030906370a082319061244e9086906004016136c3565b602060405180830381865afa15801561246b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da9190613886565b428410156124af5760405162461bcd60e51b8152600401610f3590613fe2565b600060016124bb6111be565b6001600160a01b038a166000908152600560209081526040918290208054600181019091559151612518927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e9290918e9101613ff2565b6040516020818303038152906040528051906020012060405160200161253f92919061403a565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051612575949392919061406b565b6020604051602081039080840390855afa158015612597573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906125cd5750876001600160a01b0316816001600160a01b0316145b6125e95760405162461bcd60e51b8152600401610f35906140c5565b6001600160a01b0390811660009081526004602090815260408083208a8516808552925291829020889055905190918916907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906126489089906130ff565b60405180910390a350505050505050565b60008061266583612424565b9050610da281610e14565b6000610e0e826122bb565b612683612ba9565b6001600160a01b0381166126ad576000604051631e4fbdf760e01b8152600401610f3591906136c3565b610ee081612cbf565b6000600f544211156126c85750600090565b600e54600f546126d891906138d0565b600e546126e590426138d0565b600d546126f2919061395b565b6126fc9190613990565b600d546111ef91906138d0565b600082600019048411830215820261272057600080fd5b5091020490565b600082600019048411830215820261273e57600080fd5b50910281810615159190040190565b600a54612785907f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b031683612e61565b600a54604051636e553f6560e01b81526001600160a01b0390911690636e553f65906127b790849030906004016140d5565b6020604051808303816000875af11580156127d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fa9190613886565b50600a546040517f8151101725f592af63b48bea397ac83f148fc58812547257268c3af666f10e4b916118ef9184916001600160a01b0316906140d5565b600081156128ba57612848611a37565b5060006128536126b6565b9050600042612864600f5442612ee9565b61286e91906138d0565b9050600061287c85846138bd565b601054612889908761395b565b612893848661395b565b61289d91906138bd565b6128a79190613990565b90506128b381426138bd565b600f555050505b81600d60008282546128cc91906138bd565b91829055509392505050565b60038101805490839060006128ed83856138d0565b909155505060078054908490600061290583856138d0565b909155505060075460038401546040517fe37bcf1f5213600df50a7cedb8b42867f10ca224f84592f0eb8870db0ea8fda392612946928592889188916140e3565b60405180910390a150505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612986919061419a565b6040519081900381206129c292917fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc690469030906020016141a6565b60405160208183030381529060405280519060200120905090565b60006001600160a01b03821115612a065760405162461bcd60e51b8152600401610f35906141c1565b5090565b6003810180549083906000612a1f83856138bd565b909155505060078054908490600061290583856138bd565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b031603612b9f57612a9a8230612ef9565b604051632e1a7d4d60e01b81526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21690632e1a7d4d90612ae69085906004016130ff565b600060405180830381600087803b158015612b0057600080fd5b505af1158015612b14573d6000803e3d6000fd5b505050506000816001600160a01b031683604051612b3190614209565b60006040518083038185875af1925050503d8060008114612b6e576040519150601f19603f3d011682016040523d82523d6000602084013e612b73565b606091505b5050905080612b99578183604051630d41accb60e21b8152600401610f35929190613940565b50610ede565b610ede8282612ef9565b6006546001600160a01b03163314611a35573360405163118cdaa760e01b8152600401610f3591906136c3565b60006040516323b872dd60e01b81526001600160a01b03851660048201526001600160a01b03841660248201528260448201526020600060648360008a5af1915081601f3d1160016000511416151615612c33573d863b15171591505b5080612c515760405162461bcd60e51b8152600401610f359061423f565b5050505050565b8060026000828254612c6a91906138bd565b90915550506001600160a01b038216600081815260036020526040808220805485019055516000805160206142aa83398151915290612caa9085906130ff565b60405180910390a35050565b610ede8261274d565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612d6983846001600160a01b031663a9059cbb8585604051602401612d37929190613940565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612fae565b505050565b610ede8230612ef9565b6001600160a01b03821660009081526003602052604081208054839290612da09084906138d0565b90915550506002805482900390556040516000906001600160a01b038416906000805160206142aa83398151915290612caa9085906130ff565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af1915081601f3d1160016000511416151615612e28573d853b15171591505b5080612e465760405162461bcd60e51b8152600401610f3590614275565b50505050565b6000610da283670de0b6b3a764000084612709565b604051636eb1769f60e11b81526000906001600160a01b0385169063dd62ed3e90612e929030908790600401613ea8565b602060405180830381865afa158015612eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed39190613886565b9050612e468484612ee485856138bd565b613016565b6000828218828411028218610da2565b600a54604051632d182be560e21b81526001600160a01b039091169063b460af9490612f2d90859085903090600401613f54565b6020604051808303816000875af1158015612f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f709190613886565b50600a546040517fbbbb987b866f90a30aa2441be3781842fb93cc31c782aeeb5644a525865efe7f916119549185916001600160a01b0316906140d5565b600080602060008451602086016000885af180612fd1576040513d6000823e3d81fd5b50506000513d91508115612fe9578060011415612ff6565b6001600160a01b0384163b155b15612e465783604051635274afe760e01b8152600401610f3591906136c3565b6000836001600160a01b031663095ea7b3848460405160240161303a929190613940565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050905061307384826130a8565b612e465761309e84856001600160a01b031663095ea7b3866000604051602401612d3792919061428e565b612e468482612fae565b6000806000806020600086516020880160008a5af192503d915060005190508280156130ed575081156130de57806001146130ed565b6000866001600160a01b03163b115b9695505050505050565b805b82525050565b60208101610e0e82846130f7565b60005b83811015613128578181015183820152602001613110565b50506000910152565b600061313b825190565b80845260208401935061315281856020860161310d565b601f01601f19169290920192915050565b60208082528101610da28184613131565b805b8114610ee057600080fd5b8035610e0e81613174565b6000602082840312156131a1576131a1600080fd5b60006131ad8484613181565b949350505050565b60006001600160a01b038216610e0e565b613176816131b5565b8035610e0e816131c6565b600080604083850312156131f0576131f0600080fd5b60006131fc85856131cf565b925050602061320d85828601613181565b9150509250929050565b8015156130f9565b60208101610e0e8284613217565b63ffffffff8116613176565b8035610e0e8161322d565b6000806040838503121561325a5761325a600080fd5b60006132668585613239565b925050602061320d858286016131cf565b60008060006060848603121561328f5761328f600080fd5b600061329b86866131cf565b93505060206132ac868287016131cf565b92505060406132bd86828701613181565b9150509250925092565b60ff81166130f9565b60208101610e0e82846132c7565b6000610e0e6001600160a01b0383166132f5565b90565b6001600160a01b031690565b6000610e0e826132de565b6000610e0e82613301565b6130f98161330c565b60208101610e0e8284613317565b60006020828403121561334357613343600080fd5b60006131ad84846131cf565b60008083601f84011261336457613364600080fd5b50813567ffffffffffffffff81111561337f5761337f600080fd5b60208301915083600182028301111561339a5761339a600080fd5b9250929050565b600080600080606085870312156133ba576133ba600080fd5b60006133c68787613239565b94505060206133d787828801613181565b935050604085013567ffffffffffffffff8111156133f7576133f7600080fd5b6134038782880161334f565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561344b5761344b61340f565b6040525050565b600061345d60405190565b90506134698282613425565b919050565b61ffff8116613176565b8035610e0e8161346e565b600060e0828403121561349857613498600080fd5b6134a260e0613452565b905060006134b084846131cf565b82525060206134c184848301613239565b60208301525060406134d5848285016131cf565b60408301525060606134e9848285016131cf565b60608301525060806134fd84828501613181565b60808301525060a061351184828501613478565b60a08301525060c061352584828501613239565b60c08301525092915050565b600060e0828403121561354657613546600080fd5b60006131ad8484613483565b63ffffffff81166130f9565b6130f9816131b5565b61ffff81166130f9565b6101008101613580828b613552565b61358d602083018a61355e565b61359a604083018961355e565b6135a760608301886130f7565b6135b460808301876130f7565b6135c160a083018661355e565b6135ce60c0830185613567565b6135db60e0830184613552565b9998505050505050505050565b600080604083850312156135fe576135fe600080fd5b60006132668585613181565b62ffffff8116613176565b8035610e0e8161360a565b65ffffffffffff8116613176565b8035610e0e81613620565b60008060008060008060c0878903121561365557613655600080fd5b600061366189896131cf565b965050602061367289828a01613181565b955050604061368389828a01613615565b945050606061369489828a01613615565b93505060806136a589828a0161362e565b92505060a06136b689828a01613181565b9150509295509295509295565b60208101610e0e828461355e565b6000806000606084860312156136e9576136e9600080fd5b600061329b8686613239565b60008060006060848603121561370d5761370d600080fd5b60006137198686613181565b935050602061372a868287016131cf565b92505060406132bd868287016131cf565b60008060006060848603121561375357613753600080fd5b600061375f86866131cf565b93505060206132ac86828701613181565b6000806000806060858703121561378957613789600080fd5b60006137958787613239565b94505060206133d7878288016131cf565b60ff8116613176565b8035610e0e816137a6565b600080600080600080600060e0888a0312156137d8576137d8600080fd5b60006137e48a8a6131cf565b97505060206137f58a828b016131cf565b96505060406138068a828b01613181565b95505060606138178a828b01613181565b94505060806138288a828b016137af565b93505060a06138398a828b01613181565b92505060c061384a8a828b01613181565b91505092959891949750929550565b6000806040838503121561386f5761386f600080fd5b600061326685856131cf565b8051610e0e81613174565b60006020828403121561389b5761389b600080fd5b60006131ad848461387b565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e0e57610e0e6138a7565b81810381811115610e0e57610e0e6138a7565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061390d57607f821691505b60208210810361391f5761391f6138e3565b50919050565b604081016139338285613552565b610da2602083018461355e565b6040810161394e828561355e565b610da260208301846130f7565b818102808215838204851417613973576139736138a7565b5092915050565b634e487b7160e01b600052601260045260246000fd5b60008261399f5761399f61397a565b500490565b606081016139b28286613552565b6139bf60208301856130f7565b6131ad60408301846130f7565b60a081016139da8288613552565b6139e7602083018761355e565b6139f460408301866130f7565b613a0160608301856130f7565b6130ed608083018461355e565b600060808284031215613a2357613a23600080fd5b613a2d6080613452565b90506000613a3b8484613181565b8252506020613a4c848483016131cf565b6020830152506040613a6084828501613181565b6040830152506060613a7484828501613181565b60608301525092915050565b600060808284031215613a9557613a95600080fd5b60006131ad8484613a0e565b60a08101613aaf8288613552565b613abc602083018761355e565b613ac960408301866130f7565b613ad660608301856130f7565b6130ed6080830184613552565b60608101613af18286613552565b6139bf602083018561355e565b6000610e0e6132f28381565b613b1383613afe565b815460001960089490940293841b1916921b91909117905550565b6000612d69818484613b0a565b81811015610ede57613b4e600082613b2e565b600101613b3b565b601f821115612d69576000818152602090206020601f85010481016020851015613b7d5750805b612c516020601f860104830182613b3b565b8267ffffffffffffffff811115613ba857613ba861340f565b613bb282546138f9565b613bbd828285613b56565b6000601f831160018114613bf15760008415613bd95750858201355b600019600886021c198116600286021786555061241b565b600085815260208120601f198616915b82811015613c215788850135825560209485019460019092019101613c01565b86831015613c3d57600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b60c08101613c608289613552565b613c6d602083018861355e565b613c7a60408301876130f7565b613c8760608301866130f7565b613c94608083018561355e565b613ca160a08301846130f7565b979650505050505050565b6000610e0e825b63ffffffff1690565b6000610e0e6132f58360201c90565b6000610e0e826132f5565b600081610e0e565b6000610e0e613ced8360a01c90565b61ffff1690565b6000610e0e613cb38360b01c90565b8054610100830190613d1481613cac565b613d1e8582613552565b50613d2881613cbc565b613d35602086018261355e565b50506001820154613d4581613ccb565b613d52604086018261355e565b50506002820154613d6281613cd6565b613d6f60608601826130f7565b50506003820154613d7f81613cd6565b613d8c60808601826130f7565b50506004820154613d9c81613ccb565b613da960a086018261355e565b50613db381613cde565b613dc060c0860182613567565b50613dca81613cf4565b612c5160e0860182613552565b6101608101613de68287613317565b613df360208301866130f7565b613e006040830185613d03565b613e0e6101408301846130f7565b95945050505050565b805160e0830190613e28848261355e565b506020820151613e3b6020850182613552565b506040820151613e4e604085018261355e565b506060820151613e61606085018261355e565b506080820151613e7460808501826130f7565b5060a0820151613e8760a0850182613567565b5060c0820151612e4660c0850182613552565b60e08101610e0e8284613e17565b60408101613933828561355e565b600b81526000602082016a5a45524f5f53484152455360a81b815291505b5060200190565b60208082528101610e0e81613eb6565b6040810161394e82856130f7565b62ffffff81166130f9565b65ffffffffffff81166130f9565b60a08101613f20828861355e565b613f2d6020830187613ef9565b613f3a6040830186613ef9565b613f476060830185613f04565b6130ed60808301846130f7565b60608101613f6282866130f7565b613f6f602083018561355e565b6131ad604083018461355e565b600b81526000602082016a5a45524f5f41535345545360a81b81529150613ed4565b60208082528101610e0e81613f7c565b601781526000602082017f5045524d49545f444541444c494e455f4558504952454400000000000000000081529150613ed4565b60208082528101610e0e81613fae565b60c0810161400082896130f7565b61400d602083018861355e565b61401a604083018761355e565b61402760608301866130f7565b613c9460808301856130f7565b806130f9565b61190160f01b815260020160006140518285614034565b6020820191506140618284614034565b5060200192915050565b6080810161407982876130f7565b61408660208301866132c7565b61409360408301856130f7565b613e0e60608301846130f7565b600e81526000602082016d24a72b20a624a22fa9a4a3a722a960911b81529150613ed4565b60208082528101610e0e816140a0565b6040810161393382856130f7565b61018081016140f282886130f7565b6140ff60208301876130f7565b61410c6040830186613d03565b61411a6101408301856130f7565b6130ed6101608301846130f7565b60008154614135816138f9565b60018216801561414c576001811461416157614191565b60ff1983168652811515820286019350614191565b60008581526020902060005b838110156141895781548882015260019091019060200161416d565b838801955050505b50505092915050565b6000610da28284614128565b60a081016141b482886130f7565b6139e760208301876130f7565b60208082528101610e0e81602481527f5479706543617374733a2062797465733332546f41646472657373206f766572602082015263666c6f7760e01b604082015260600190565b6000610e0e826132f2565b60148152600060208201731514905394d1915497d19493d357d1905253115160621b81529150613ed4565b60208082528101610e0e81614214565b600f81526000602082016e1514905394d1915497d19052531151608a1b81529150613ed4565b60208082528101610e0e8161424f565b6130f981613afe565b6040810161429c828561355e565b610da2602083018461428556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ad859543491849a80e5996002723a21ee4bb36bbfa3450c513452d8f6e3892d764736f6c634300081c0033
🤖 Code Reader

Generate instant answers for your smart contract questions using AI Models. Read more.

Custom Contract ABI

                            

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.