Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GasRelayPaymasterLib
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
istanbul EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {SafeMath} from "openzeppelin-solc-0.6/math/SafeMath.sol";import {Address} from "openzeppelin-solc-0.6/utils/Address.sol";import {IGsnPaymaster} from "../../../external-interfaces/IGsnPaymaster.sol";import {IGsnRelayHub} from "../../../external-interfaces/IGsnRelayHub.sol";import {IGsnTypes} from "../../../external-interfaces/IGsnTypes.sol";import {IWETH} from "../../../external-interfaces/IWETH.sol";import {IComptroller} from "../../core/fund/comptroller/IComptroller.sol";import {IVault} from "../../core/fund/vault/IVault.sol";import {IFundDeployer} from "../../core/fund-deployer/IFundDeployer.sol";import {IPolicyManager} from "../../extensions/policy-manager/IPolicyManager.sol";import {GasRelayPaymasterLibBase2} from "./bases/GasRelayPaymasterLibBase2.sol";import {IGasRelayPaymaster} from "./IGasRelayPaymaster.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @dev Wrappers over Solidity's arithmetic operations with added overflow* checks.** Arithmetic operations in Solidity wrap on overflow. This can easily result* in bugs, because programmers usually assume that an overflow raises an* error, which is the standard behavior in high level programming languages.* `SafeMath` restores this intuition by reverting the transaction when an* operation overflows.** Using this library instead of the unchecked operations eliminates an entire* class of bugs, so it's recommended to use it always.*/library SafeMath {/*** @dev Returns the addition of two unsigned integers, with an overflow flag.** _Available since v3.4._*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {uint256 c = a + b;if (c < a) return (false, 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.8.0;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*/function isContract(address account) internal view returns (bool) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;import "./IGsnTypes.sol";/// @title IGsnPaymaster interface/// @author Enzyme Council <security@enzyme.finance>interface IGsnPaymaster {struct GasAndDataLimits {uint256 acceptanceBudget;uint256 preRelayedCallGasLimit;uint256 postRelayedCallGasLimit;uint256 calldataSizeLimit;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;import "./IGsnTypes.sol";/// @title IGsnRelayHub Interface/// @author Enzyme Council <security@enzyme.finance>interface IGsnRelayHub {function balanceOf(address target) external view returns (uint256);function calculateCharge(uint256 gasUsed, IGsnTypes.RelayData calldata relayData) external view returns (uint256);function depositFor(address target) external payable;function relayCall(
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;import "./IGsnForwarder.sol";/// @title IGsnTypes Interface/// @author Enzyme Council <security@enzyme.finance>interface IGsnTypes {struct RelayData {uint256 gasPrice;uint256 pctRelayFee;uint256 baseRelayFee;address relayWorker;address paymaster;address forwarder;
1234567891011121314151617181920// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IWETH Interface/// @author Enzyme Council <security@enzyme.finance>interface IWETH {function deposit() external payable;function withdraw(uint256) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;import {IVault} from "../vault/IVault.sol";/// @title IComptroller Interface/// @author Enzyme Council <security@enzyme.finance>interface IComptroller {function activate(bool _isMigration) external;function buyBackProtocolFeeShares(uint256 _sharesAmount) external;function buyShares(uint256 _investmentAmount, uint256 _minSharesQuantity)externalreturns (uint256 sharesReceived_);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;import {IExternalPositionVault} from "../../../../persistent/vault/interfaces/IExternalPositionVault.sol";import {IFreelyTransferableSharesVault} from"../../../../persistent/vault/interfaces/IFreelyTransferableSharesVault.sol";import {IMigratableVault} from "../../../../persistent/vault/interfaces/IMigratableVault.sol";import {IVaultCore} from "../../../../persistent/vault/interfaces/IVaultCore.sol";/// @title IVault Interface/// @author Enzyme Council <security@enzyme.finance>interface IVault is IVaultCore, IMigratableVault, IFreelyTransferableSharesVault, IExternalPositionVault {enum VaultAction {None,// Shares managementBurnShares,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;/// @title IFundDeployer Interface/// @author Enzyme Council <security@enzyme.finance>interface IFundDeployer {struct ReconfigurationRequest {address nextComptrollerProxy;uint256 executableTimestamp;}function cancelMigration(address _vaultProxy, bool _bypassPrevReleaseFailure) external;function cancelReconfiguration(address _vaultProxy) external;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;/// @title PolicyManager Interface/// @author Enzyme Council <security@enzyme.finance>/// @notice Interface for the PolicyManagerinterface IPolicyManager {// When updating PolicyHook, also update these functions in PolicyManager:// 1. __getAllPolicyHooks()// 2. __policyHookRestrictsCurrentInvestorActions()enum PolicyHook {PostBuyShares,PostCallOnIntegration,PreTransferShares,RedeemSharesForSpecificAssets,
12345678910111213141516171819202122232425// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity 0.6.12;import {GasRelayPaymasterLibBase1} from "./GasRelayPaymasterLibBase1.sol";/// @title GasRelayPaymasterLibBase2 Contract/// @author Enzyme Council <security@enzyme.finance>/// @notice A persistent contract containing all required storage variables and events/// for a GasRelayPaymasterLib/// @dev DO NOT EDIT CONTRACT ONCE DEPLOYED. If new events or storage are necessary,/// they should be added to a numbered GasRelayPaymasterLibBaseXXX that inherits the previous base./// e.g., `GasRelayPaymasterLibBase2 is GasRelayPaymasterLibBase1`abstract contract GasRelayPaymasterLibBase2 is GasRelayPaymasterLibBase1 {uint256 internal lastDepositTimestamp;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;import {IGsnPaymaster} from "../../../external-interfaces/IGsnPaymaster.sol";/// @title IGasRelayPaymaster Interface/// @author Enzyme Council <security@enzyme.finance>interface IGasRelayPaymaster is IGsnPaymaster {function addAdditionalRelayUsers(address[] calldata _usersToAdd) external;function deposit() external;function getLastDepositTimestamp() external view returns (uint256 lastDepositTimestamp_);function getParentComptroller() external view returns (address parentComptroller_);
123456789101112131415161718// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IGasRelayPaymasterDepositor Interface/// @author Enzyme Council <security@enzyme.finance>interface IGasRelayPaymasterDepositor {function pullWethForGasRelayer(uint256) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IGsnForwarder interface/// @author Enzyme Council <security@enzyme.finance>interface IGsnForwarder {struct ForwardRequest {address from;address to;uint256 value;uint256 gas;uint256 nonce;bytes data;uint256 validUntil;}}
12345678910111213141516171819// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IExternalPositionVault interface/// @author Enzyme Council <security@enzyme.finance>/// Provides an interface to get the externalPositionLib for a given type from the Vaultinterface IExternalPositionVault {function getExternalPositionLibForType(uint256) external view returns (address);}
123456789101112131415161718192021// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IFreelyTransferableSharesVault Interface/// @author Enzyme Council <security@enzyme.finance>/// @notice Provides the interface for determining whether a vault's shares/// are guaranteed to be freely transferable./// @dev DO NOT EDIT CONTRACTinterface IFreelyTransferableSharesVault {function sharesAreFreelyTransferable() external view returns (bool sharesAreFreelyTransferable_);}
12345678910111213141516171819202122232425// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IMigratableVault Interface/// @author Enzyme Council <security@enzyme.finance>/// @dev DO NOT EDIT CONTRACTinterface IMigratableVault {function canMigrate(address _who) external view returns (bool canMigrate_);function init(address _owner, address _accessor, string calldata _fundName) external;function setAccessor(address _nextAccessor) external;function setVaultLib(address _nextVaultLib) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity >=0.6.0 <0.9.0;/// @title IVaultCore interface/// @author Enzyme Council <security@enzyme.finance>/// @notice Interface for getters of core vault storage/// @dev DO NOT EDIT CONTRACTinterface IVaultCore {function getAccessor() external view returns (address accessor_);function getCreator() external view returns (address creator_);function getMigrator() external view returns (address migrator_);function getOwner() external view returns (address owner_);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0/*This file is part of the Enzyme Protocol.(c) Enzyme Council <council@enzyme.finance>For the full license information, please view the LICENSEfile that was distributed with this source code.*/pragma solidity 0.6.12;/// @title GasRelayPaymasterLibBase1 Contract/// @author Enzyme Council <security@enzyme.finance>/// @notice A persistent contract containing all required storage variables and events/// for a GasRelayPaymasterLib/// @dev DO NOT EDIT CONTRACT ONCE DEPLOYED. If new events or storage are necessary,/// they should be added to a numbered GasRelayPaymasterLibBaseXXX that inherits the previous base./// e.g., `GasRelayPaymasterLibBase2 is GasRelayPaymasterLibBase1`abstract contract GasRelayPaymasterLibBase1 {event Deposited(uint256 amount);event TransactionRelayed(address indexed authorizer, bytes4 invokedSelector, bool successful);event Withdrawn(uint256 amount);
1234567891011121314151617181920212223242526{"remappings": ["@openzeppelin/contracts/=lib/openzeppelin-solc-0.6/contracts/","@uniswap/v3-core/=lib/uniswap-v3-core/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","openzeppelin-solc-0.6/=lib/openzeppelin-solc-0.6/contracts/","openzeppelin-solc-0.7/=lib/openzeppelin-solc-0.7/contracts/","openzeppelin-solc-0.8/=lib/openzeppelin-solc-0.8/contracts/","uniswap-v3-core/=lib/uniswap-v3-core/","uniswap-v3-core-0.8/=lib/uniswap-v3-core-0.8/","uniswap-v3-periphery/=lib/uniswap-v3-periphery/contracts/","uniswap-v3-periphery-0.8/=lib/uniswap-v3-periphery-0.8/contracts/"],"optimizer": {"enabled": true,"runs": 200,"details": {"yul": false}},"metadata": {"useLiteralContent": false,"bytecodeHash": "none"},"outputSelection": {
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_wethToken","type":"address"},{"internalType":"address","name":"_relayHub","type":"address"},{"internalType":"address","name":"_trustedForwarder","type":"address"},{"internalType":"uint256","name":"_depositCooldown","type":"uint256"},{"internalType":"uint256","name":"_depositMaxTotal","type":"uint256"},{"internalType":"uint256","name":"_relayFeeMaxBase","type":"uint256"},{"internalType":"uint256","name":"_relayFeeMaxPercent","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AdditionalRelayUserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AdditionalRelayUserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":false,"internalType":"bytes4","name":"invokedSelector","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"successful","type":"bool"}],"name":"TransactionRelayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address[]","name":"_usersToAdd","type":"address[]"}],"name":"addAdditionalRelayUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getGasAndDataLimits","outputs":[{"components":[{"internalType":"uint256","name":"acceptanceBudget","type":"uint256"},{"internalType":"uint256","name":"preRelayedCallGasLimit","type":"uint256"},{"internalType":"uint256","name":"postRelayedCallGasLimit","type":"uint256"},{"internalType":"uint256","name":"calldataSizeLimit","type":"uint256"}],"internalType":"struct IGsnPaymaster.GasAndDataLimits","name":"limits_","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHubAddr","outputs":[{"internalType":"address","name":"relayHub_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastDepositTimestamp","outputs":[{"internalType":"uint256","name":"lastDepositTimestamp_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getParentComptroller","outputs":[{"internalType":"address","name":"parentComptroller_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getParentVault","outputs":[{"internalType":"address","name":"parentVault_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelayHubDeposit","outputs":[{"internalType":"uint256","name":"depositBalance_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWethToken","outputs":[{"internalType":"address","name":"wethToken_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"isAdditionalRelayUser","outputs":[{"internalType":"bool","name":"isAdditionalRelayUser_","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_context","type":"bytes"},{"internalType":"bool","name":"_success","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"uint256","name":"pctRelayFee","type":"uint256"},{"internalType":"uint256","name":"baseRelayFee","type":"uint256"},{"internalType":"address","name":"relayWorker","type":"address"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"address","name":"forwarder","type":"address"},{"internalType":"bytes","name":"paymasterData","type":"bytes"},{"internalType":"uint256","name":"clientId","type":"uint256"}],"internalType":"struct IGsnTypes.RelayData","name":"_relayData","type":"tuple"}],"name":"postRelayedCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"validUntil","type":"uint256"}],"internalType":"struct IGsnForwarder.ForwardRequest","name":"request","type":"tuple"},{"components":[{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"uint256","name":"pctRelayFee","type":"uint256"},{"internalType":"uint256","name":"baseRelayFee","type":"uint256"},{"internalType":"address","name":"relayWorker","type":"address"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"address","name":"forwarder","type":"address"},{"internalType":"bytes","name":"paymasterData","type":"bytes"},{"internalType":"uint256","name":"clientId","type":"uint256"}],"internalType":"struct IGsnTypes.RelayData","name":"relayData","type":"tuple"}],"internalType":"struct IGsnTypes.RelayRequest","name":"_relayRequest","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"preRelayedCall","outputs":[{"internalType":"bytes","name":"context_","type":"bytes"},{"internalType":"bool","name":"rejectOnRecipientRevert_","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_usersToRemove","type":"address[]"}],"name":"removeAdditionalRelayUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trustedForwarder","outputs":[{"internalType":"address","name":"trustedForwarder_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"versionPaymaster","outputs":[{"internalType":"string","name":"versionString_","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6101606040523480156200001257600080fd5b5060405162001e5a38038062001e5a833981016040819052620000359162000092565b60809390935260a09190915260c05260e0526001600160601b0319606092831b81166101005290821b81166101205291901b166101405262000177565b80516200007f8162000152565b92915050565b80516200007f816200016c565b600080600080600080600060e0888a031215620000ae57600080fd5b6000620000bc8a8a62000072565b9750506020620000cf8a828b0162000072565b9650506040620000e28a828b0162000072565b9550506060620000f58a828b0162000085565b9450506080620001088a828b0162000085565b93505060a06200011b8a828b0162000085565b92505060c06200012e8a828b0162000085565b91505092959891949750929550565b60006001600160a01b0382166200007f565b90565b6200015d816200013d565b81146200016957600080fd5b50565b6200015d816200014f565b60805160a05160c05160e0516101005160601c6101205160601c6101405160601c611c77620001e3600039806105db52508061028252806109f65280610cfe5250806107b25250806103385250806102e8525080610e8c5280610ebe525080610e4a5250611c776000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c80637abfbd47116100a2578063970d4c1611610071578063970d4c16146101f3578063ad5cb1cf14610206578063b039a88f1461020e578063d0e30db014610223578063de8662001461022b5761010a565b80637abfbd47146101bb5780637da0a877146101ce5780638f4698d2146101d6578063921276ea146101de5761010a565b80635fd8c710116100de5780635fd8c710146101785780636231179d1461018057806374e861d6146101a057806376fa01c3146101a85761010a565b8062be5dd41461010f57806319ab453c146101395780632afe31c11461014e5780634c252f9114610163575b600080fd5b61012261011d366004611339565b610233565b6040516101309291906119ae565b60405180910390f35b61014c6101473660046111a8565b6104fc565b005b61015661054e565b6040516101309190611aed565b61016b6105d9565b6040516101309190611955565b61014c6105fd565b61019361018e3660046111a8565b610792565b6040516101309190611985565b61016b6107b0565b61014c6101b63660046112a4565b6107d4565b61014c6101c9366004611226565b610898565b61016b6109f4565b610156610a18565b6101e6610a1e565b60405161013091906119ce565b61014c610201366004611226565b610a3e565b61016b610b91565b610216610ba7565b6040516101309190611adf565b61014c610be0565b61016b610c22565b6060600061023f6107b0565b6001600160a01b0316336001600160a01b0316146102785760405162461bcd60e51b815260040161026f90611a6f565b60405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166102af60208a018a611b8d565b6102c09060c081019060a0016111a8565b6001600160a01b0316146102e65760405162461bcd60e51b815260040161026f906119ff565b7f000000000000000000000000000000000000000000000000000000000000000061031460208a018a611b8d565b6040013511156103365760405162461bcd60e51b815260040161026f90611a9f565b7f000000000000000000000000000000000000000000000000000000000000000061036460208a018a611b8d565b6020013511156103865760405162461bcd60e51b815260040161026f90611abf565b6103908880611b6c565b60400135156103b15760405162461bcd60e51b815260040161026f90611a0f565b60006103bb610c22565b90506001600160a01b03811663368618896103d68b80611b6c565b6103e49060208101906111a8565b6040518263ffffffff1660e01b81526004016104009190611955565b60206040518083038186803b15801561041857600080fd5b505afa15801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190611286565b8061047157506104716104638a80611b6c565b61018e9060208101906111a8565b61048d5760405162461bcd60e51b815260040161026f906119df565b60006104af61049c8b80611b6c565b6104aa9060a0810190611b16565b610c31565b90506104bb8a80611b6c565b6104c99060208101906111a8565b816040516020016104db929190611963565b60408051601f198184030181529190529a60009a5098505050505050505050565b6000610506610c22565b6001600160a01b03161461052c5760405162461bcd60e51b815260040161026f90611a7f565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006105586107b0565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016105839190611955565b60206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d391906113e9565b90505b90565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000610607610c22565b90506000610613610ce5565b9050816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068691906111ce565b6001600160a01b0316816001600160a01b031614806106be57506106a982610d39565b6001600160a01b0316816001600160a01b0316145b6106da5760405162461bcd60e51b815260040161026f90611a5f565b6106e26107b0565b6001600160a01b031662f714ce6106f761054e565b306040518363ffffffff1660e01b8152600401610715929190611afb565b600060405180830381600087803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b5050505060004790506107568382610dac565b7f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b56816040516107859190611aed565b60405180910390a1505050565b6001600160a01b031660009081526002602052604090205460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000090565b6107dc6107b0565b6001600160a01b0316336001600160a01b03161461080c5760405162461bcd60e51b815260040161026f90611a6f565b600061081b60c0830183611b16565b8101906108289190611268565b9050801561083857610838610e48565b600080610847878901896111ec565b91509150816001600160a01b03167f0899cabaea081bac7a32055422e160973f6e38e6ecb8faee1f6aa46b1b76d9148288604051610886929190611993565b60405180910390a25050505050505050565b6108a0610c22565b6001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156108d857600080fd5b505afa1580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091091906111ce565b6001600160a01b0316610921610ce5565b6001600160a01b0316146109475760405162461bcd60e51b815260040161026f90611acf565b60005b818110156109ef57600083838381811061096057fe5b905060200201602081019061097591906111a8565b905061098081610792565b1561099d5760405162461bcd60e51b815260040161026f90611a8f565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f1c72adb3c9c3b4bb9d4122a7ae7d398fa5d7dc73e3619a55899a9f9022e11fd69190a25060010161094a565b505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60015490565b6060604051806060016040528060238152602001611c4860239139905090565b610a46610c22565b6001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7e57600080fd5b505afa158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab691906111ce565b6001600160a01b0316610ac7610ce5565b6001600160a01b031614610aed5760405162461bcd60e51b815260040161026f90611acf565b60005b818110156109ef576000838383818110610b0657fe5b9050602002016020810190610b1b91906111a8565b9050610b2681610792565b610b425760405162461bcd60e51b815260040161026f90611a1f565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f478b42f734cf6f6a312ca94cf5fb82bfbdc49fd1507bb5fac53e0b390182cf689190a250600101610af0565b600080546105d3906001600160a01b0316610d39565b610baf61107d565b6040518060800160405280620249f08152602001620186a081526020016201adb08152602001612904815250905090565b610be8610b91565b6001600160a01b0316336001600160a01b031614610c185760405162461bcd60e51b815260040161026f90611aaf565b610c20610e48565b565b6000546001600160a01b031690565b60006004821015610c545760405162461bcd60e51b815260040161026f906119ef565b601883836003818110610c6357fe5b909101356001600160f81b03191690911c9050601084846002818110610c8557fe5b909101356001600160f81b03191690911c9050600885856001818110610ca757fe5b909101356001600160f81b03191690911c90508585600081610cc557fe5b9050013560f81c60f81b6001600160f81b03191617171790505b92915050565b600060143610801590610d205750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b15610d34575060131936013560601c6105d6565b503390565b6000816001600160a01b0316635a53e3486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7457600080fd5b505afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf91906111ce565b80471015610dcc5760405162461bcd60e51b815260040161026f90611a4f565b6000826001600160a01b031682604051610de59061194a565b60006040518083038185875af1925050503d8060008114610e22576040519150601f19603f3d011682016040523d82523d6000602084013e610e27565b606091505b50509050806109ef5760405162461bcd60e51b815260040161026f90611a3f565b7f0000000000000000000000000000000000000000000000000000000000000000610e71610a18565b42031015610e7e57610c20565b6000610e8861054e565b90507f00000000000000000000000000000000000000000000000000000000000000008110610eb75750610c20565b6000610ee37f000000000000000000000000000000000000000000000000000000000000000083611055565b9050610eed610b91565b6001600160a01b03166379951f0f826040518263ffffffff1660e01b8152600401610f189190611aed565b600060405180830381600087803b158015610f3257600080fd5b505af1158015610f46573d6000803e3d6000fd5b50505050610f526105d9565b6001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b8152600401610f7d9190611aed565b600060405180830381600087803b158015610f9757600080fd5b505af1158015610fab573d6000803e3d6000fd5b50505050610fb76107b0565b6001600160a01b031663aa67c91982306040518363ffffffff1660e01b8152600401610fe39190611955565b6000604051808303818588803b158015610ffc57600080fd5b505af1158015611010573d6000803e3d6000fd5b50504260015550506040517f2a89b2e3d580398d6dc2db5e0f336b52602bbaa51afa9bb5cdf59239cf0d2bea9150611049908390611aed565b60405180910390a15050565b6000828211156110775760405162461bcd60e51b815260040161026f90611a2f565b50900390565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b8035610cdf81611c15565b8051610cdf81611c15565b60008083601f8401126110cd57600080fd5b50813567ffffffffffffffff8111156110e557600080fd5b6020830191508360208202830111156110fd57600080fd5b9250929050565b8035610cdf81611c2c565b8051610cdf81611c2c565b8035610cdf81611c35565b60008083601f84011261113757600080fd5b50813567ffffffffffffffff81111561114f57600080fd5b6020830191508360018202830111156110fd57600080fd5b6000610100828403121561117a57600080fd5b50919050565b60006040828403121561117a57600080fd5b8035610cdf81611c3e565b8051610cdf81611c3e565b6000602082840312156111ba57600080fd5b60006111c684846110a5565b949350505050565b6000602082840312156111e057600080fd5b60006111c684846110b0565b600080604083850312156111ff57600080fd5b600061120b85856110a5565b925050602061121c8582860161111a565b9150509250929050565b6000806020838503121561123957600080fd5b823567ffffffffffffffff81111561125057600080fd5b61125c858286016110bb565b92509250509250929050565b60006020828403121561127a57600080fd5b60006111c68484611104565b60006020828403121561129857600080fd5b60006111c6848461110f565b6000806000806000608086880312156112bc57600080fd5b853567ffffffffffffffff8111156112d357600080fd5b6112df88828901611125565b955095505060206112f288828901611104565b935050604061130388828901611192565b925050606086013567ffffffffffffffff81111561132057600080fd5b61132c88828901611167565b9150509295509295909350565b6000806000806000806080878903121561135257600080fd5b863567ffffffffffffffff81111561136957600080fd5b61137589828a01611180565b965050602087013567ffffffffffffffff81111561139257600080fd5b61139e89828a01611125565b9550955050604087013567ffffffffffffffff8111156113bd57600080fd5b6113c989828a01611125565b935093505060606113dc89828a01611192565b9150509295509295509295565b6000602082840312156113fb57600080fd5b60006111c6848461119d565b61141081611bb6565b82525050565b61141081611bc1565b61141081611bc6565b600061143382611ba4565b61143d8185611ba8565b935061144d818560208601611bdf565b61145681611c0b565b9093019392505050565b600061146d602383611ba8565b7f70726552656c6179656443616c6c3a20556e617574686f72697a65642063616c8152623632b960e91b602082015260400192915050565b60006114b2603c83611ba8565b7f5f5f706172736554784461746146756e6374696f6e53656c6563746f723a205f81527f747844617461206973206e6f7420612076616c6964206c656e67746800000000602082015260400192915050565b6000611511602683611ba8565b7f70726552656c6179656443616c6c3a20556e617574686f72697a656420666f728152653bb0b93232b960d11b602082015260400192915050565b6000611559601e83611ba8565b7f70726552656c6179656443616c6c3a204e6f6e2d7a65726f2076616c75650000815260200192915050565b6000611592602f83611ba8565b7f72656d6f76654164646974696f6e616c52656c617955736572733a205573657281526e081b9bdd081c9959da5cdd195c9959608a1b602082015260400192915050565b60006115e3601e83611ba8565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061161c603a83611ba8565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207281527f6563697069656e74206d61792068617665207265766572746564000000000000602082015260400192915050565b600061167b601d83611ba8565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000815260200192915050565b60006116b4603883611ba8565b7f776974686472617742616c616e63653a204f6e6c79206f776e6572206f72206381527f6f6d7074726f6c6c657220697320617574686f72697a65640000000000000000602082015260400192915050565b6000611713601e83611ba8565b7f43616e206f6e6c792062652063616c6c65642062792052656c61794875620000815260200192915050565b600061174c602383611ba8565b7f696e69743a205061796d617374657220616c726561647920696e697469616c698152621e995960ea1b602082015260400192915050565b6000611791602883611ba8565b7f6164644164646974696f6e616c52656c617955736572733a205573657220726581526719da5cdd195c995960c21b602082015260400192915050565b60006117db602183611ba8565b7f70726552656c6179656443616c6c3a2048696768206261736552656c617946658152606560f81b602082015260400192915050565b600061181e602c83611ba8565b7f43616e206f6e6c792062652063616c6c65642062792074686520706172656e7481526b1031b7b6b83a3937b63632b960a11b602082015260400192915050565b600061186c602083611ba8565b7f70726552656c6179656443616c6c3a20486967682070637452656c6179466565815260200192915050565b6000610cdf600083611bb1565b60006118b2602a83611ba8565b7f4f6e6c79207468652066756e64206f776e65722063616e2063616c6c207468698152693990333ab731ba34b7b760b11b602082015260400192915050565b805160808301906119028482611941565b5060208201516119156020850182611941565b5060408201516119286040850182611941565b50606082015161193b6060850182611941565b50505050565b611410816105d6565b6000610cdf82611898565b60208101610cdf8284611407565b604081016119718285611407565b61197e602083018461141f565b9392505050565b60208101610cdf8284611416565b604081016119a1828561141f565b61197e6020830184611416565b604080825281016119bf8185611428565b905061197e6020830184611416565b6020808252810161197e8184611428565b60208082528101610cdf81611460565b60208082528101610cdf816114a5565b60208082528101610cdf81611504565b60208082528101610cdf8161154c565b60208082528101610cdf81611585565b60208082528101610cdf816115d6565b60208082528101610cdf8161160f565b60208082528101610cdf8161166e565b60208082528101610cdf816116a7565b60208082528101610cdf81611706565b60208082528101610cdf8161173f565b60208082528101610cdf81611784565b60208082528101610cdf816117ce565b60208082528101610cdf81611811565b60208082528101610cdf8161185f565b60208082528101610cdf816118a5565b60808101610cdf82846118f1565b60208101610cdf8284611941565b60408101611b098285611941565b61197e6020830184611407565b6000808335601e1936859003018112611b2e57600080fd5b80840192508235915067ffffffffffffffff821115611b4c57600080fd5b602083019250600182023603831315611b6457600080fd5b509250929050565b6000823560de1936849003018112611b8357600080fd5b9190910192915050565b6000823560fe1936849003018112611b8357600080fd5b5190565b90815260200190565b919050565b6000610cdf82611bd3565b151590565b6001600160e01b03191690565b6001600160a01b031690565b60005b83811015611bfa578181015183820152602001611be2565b8381111561193b5750506000910152565b601f01601f191690565b611c1e81611bb6565b8114611c2957600080fd5b50565b611c1e81611bc1565b611c1e81611bc6565b611c1e816105d656fe322e322e332b6f70656e67736e2e656e7a796d6566756e642e697061796d6173746572a164736f6c634300060c000a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000009e59ea5333cd4f402dac320a04fafa023fe3810d000000000000000000000000ca57e5d6218aeb093d76372b51ba355cfb3c6cd000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010a5760003560e01c80637abfbd47116100a2578063970d4c1611610071578063970d4c16146101f3578063ad5cb1cf14610206578063b039a88f1461020e578063d0e30db014610223578063de8662001461022b5761010a565b80637abfbd47146101bb5780637da0a877146101ce5780638f4698d2146101d6578063921276ea146101de5761010a565b80635fd8c710116100de5780635fd8c710146101785780636231179d1461018057806374e861d6146101a057806376fa01c3146101a85761010a565b8062be5dd41461010f57806319ab453c146101395780632afe31c11461014e5780634c252f9114610163575b600080fd5b61012261011d366004611339565b610233565b6040516101309291906119ae565b60405180910390f35b61014c6101473660046111a8565b6104fc565b005b61015661054e565b6040516101309190611aed565b61016b6105d9565b6040516101309190611955565b61014c6105fd565b61019361018e3660046111a8565b610792565b6040516101309190611985565b61016b6107b0565b61014c6101b63660046112a4565b6107d4565b61014c6101c9366004611226565b610898565b61016b6109f4565b610156610a18565b6101e6610a1e565b60405161013091906119ce565b61014c610201366004611226565b610a3e565b61016b610b91565b610216610ba7565b6040516101309190611adf565b61014c610be0565b61016b610c22565b6060600061023f6107b0565b6001600160a01b0316336001600160a01b0316146102785760405162461bcd60e51b815260040161026f90611a6f565b60405180910390fd5b6001600160a01b037f000000000000000000000000ca57e5d6218aeb093d76372b51ba355cfb3c6cd0166102af60208a018a611b8d565b6102c09060c081019060a0016111a8565b6001600160a01b0316146102e65760405162461bcd60e51b815260040161026f906119ff565b7f000000000000000000000000000000000000000000000000000000000000000061031460208a018a611b8d565b6040013511156103365760405162461bcd60e51b815260040161026f90611a9f565b7f000000000000000000000000000000000000000000000000000000000000000a61036460208a018a611b8d565b6020013511156103865760405162461bcd60e51b815260040161026f90611abf565b6103908880611b6c565b60400135156103b15760405162461bcd60e51b815260040161026f90611a0f565b60006103bb610c22565b90506001600160a01b03811663368618896103d68b80611b6c565b6103e49060208101906111a8565b6040518263ffffffff1660e01b81526004016104009190611955565b60206040518083038186803b15801561041857600080fd5b505afa15801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190611286565b8061047157506104716104638a80611b6c565b61018e9060208101906111a8565b61048d5760405162461bcd60e51b815260040161026f906119df565b60006104af61049c8b80611b6c565b6104aa9060a0810190611b16565b610c31565b90506104bb8a80611b6c565b6104c99060208101906111a8565b816040516020016104db929190611963565b60408051601f198184030181529190529a60009a5098505050505050505050565b6000610506610c22565b6001600160a01b03161461052c5760405162461bcd60e51b815260040161026f90611a7f565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006105586107b0565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016105839190611955565b60206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d391906113e9565b90505b90565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000610607610c22565b90506000610613610ce5565b9050816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068691906111ce565b6001600160a01b0316816001600160a01b031614806106be57506106a982610d39565b6001600160a01b0316816001600160a01b0316145b6106da5760405162461bcd60e51b815260040161026f90611a5f565b6106e26107b0565b6001600160a01b031662f714ce6106f761054e565b306040518363ffffffff1660e01b8152600401610715929190611afb565b600060405180830381600087803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b5050505060004790506107568382610dac565b7f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b56816040516107859190611aed565b60405180910390a1505050565b6001600160a01b031660009081526002602052604090205460ff1690565b7f0000000000000000000000009e59ea5333cd4f402dac320a04fafa023fe3810d90565b6107dc6107b0565b6001600160a01b0316336001600160a01b03161461080c5760405162461bcd60e51b815260040161026f90611a6f565b600061081b60c0830183611b16565b8101906108289190611268565b9050801561083857610838610e48565b600080610847878901896111ec565b91509150816001600160a01b03167f0899cabaea081bac7a32055422e160973f6e38e6ecb8faee1f6aa46b1b76d9148288604051610886929190611993565b60405180910390a25050505050505050565b6108a0610c22565b6001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156108d857600080fd5b505afa1580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091091906111ce565b6001600160a01b0316610921610ce5565b6001600160a01b0316146109475760405162461bcd60e51b815260040161026f90611acf565b60005b818110156109ef57600083838381811061096057fe5b905060200201602081019061097591906111a8565b905061098081610792565b1561099d5760405162461bcd60e51b815260040161026f90611a8f565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f1c72adb3c9c3b4bb9d4122a7ae7d398fa5d7dc73e3619a55899a9f9022e11fd69190a25060010161094a565b505050565b7f000000000000000000000000ca57e5d6218aeb093d76372b51ba355cfb3c6cd090565b60015490565b6060604051806060016040528060238152602001611c4860239139905090565b610a46610c22565b6001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7e57600080fd5b505afa158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab691906111ce565b6001600160a01b0316610ac7610ce5565b6001600160a01b031614610aed5760405162461bcd60e51b815260040161026f90611acf565b60005b818110156109ef576000838383818110610b0657fe5b9050602002016020810190610b1b91906111a8565b9050610b2681610792565b610b425760405162461bcd60e51b815260040161026f90611a1f565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f478b42f734cf6f6a312ca94cf5fb82bfbdc49fd1507bb5fac53e0b390182cf689190a250600101610af0565b600080546105d3906001600160a01b0316610d39565b610baf61107d565b6040518060800160405280620249f08152602001620186a081526020016201adb08152602001612904815250905090565b610be8610b91565b6001600160a01b0316336001600160a01b031614610c185760405162461bcd60e51b815260040161026f90611aaf565b610c20610e48565b565b6000546001600160a01b031690565b60006004821015610c545760405162461bcd60e51b815260040161026f906119ef565b601883836003818110610c6357fe5b909101356001600160f81b03191690911c9050601084846002818110610c8557fe5b909101356001600160f81b03191690911c9050600885856001818110610ca757fe5b909101356001600160f81b03191690911c90508585600081610cc557fe5b9050013560f81c60f81b6001600160f81b03191617171790505b92915050565b600060143610801590610d205750336001600160a01b037f000000000000000000000000ca57e5d6218aeb093d76372b51ba355cfb3c6cd016145b15610d34575060131936013560601c6105d6565b503390565b6000816001600160a01b0316635a53e3486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7457600080fd5b505afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf91906111ce565b80471015610dcc5760405162461bcd60e51b815260040161026f90611a4f565b6000826001600160a01b031682604051610de59061194a565b60006040518083038185875af1925050503d8060008114610e22576040519150601f19603f3d011682016040523d82523d6000602084013e610e27565b606091505b50509050806109ef5760405162461bcd60e51b815260040161026f90611a3f565b7f0000000000000000000000000000000000000000000000000000000000015180610e71610a18565b42031015610e7e57610c20565b6000610e8861054e565b90507f0000000000000000000000000000000000000000000000000de0b6b3a76400008110610eb75750610c20565b6000610ee37f0000000000000000000000000000000000000000000000000de0b6b3a764000083611055565b9050610eed610b91565b6001600160a01b03166379951f0f826040518263ffffffff1660e01b8152600401610f189190611aed565b600060405180830381600087803b158015610f3257600080fd5b505af1158015610f46573d6000803e3d6000fd5b50505050610f526105d9565b6001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b8152600401610f7d9190611aed565b600060405180830381600087803b158015610f9757600080fd5b505af1158015610fab573d6000803e3d6000fd5b50505050610fb76107b0565b6001600160a01b031663aa67c91982306040518363ffffffff1660e01b8152600401610fe39190611955565b6000604051808303818588803b158015610ffc57600080fd5b505af1158015611010573d6000803e3d6000fd5b50504260015550506040517f2a89b2e3d580398d6dc2db5e0f336b52602bbaa51afa9bb5cdf59239cf0d2bea9150611049908390611aed565b60405180910390a15050565b6000828211156110775760405162461bcd60e51b815260040161026f90611a2f565b50900390565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b8035610cdf81611c15565b8051610cdf81611c15565b60008083601f8401126110cd57600080fd5b50813567ffffffffffffffff8111156110e557600080fd5b6020830191508360208202830111156110fd57600080fd5b9250929050565b8035610cdf81611c2c565b8051610cdf81611c2c565b8035610cdf81611c35565b60008083601f84011261113757600080fd5b50813567ffffffffffffffff81111561114f57600080fd5b6020830191508360018202830111156110fd57600080fd5b6000610100828403121561117a57600080fd5b50919050565b60006040828403121561117a57600080fd5b8035610cdf81611c3e565b8051610cdf81611c3e565b6000602082840312156111ba57600080fd5b60006111c684846110a5565b949350505050565b6000602082840312156111e057600080fd5b60006111c684846110b0565b600080604083850312156111ff57600080fd5b600061120b85856110a5565b925050602061121c8582860161111a565b9150509250929050565b6000806020838503121561123957600080fd5b823567ffffffffffffffff81111561125057600080fd5b61125c858286016110bb565b92509250509250929050565b60006020828403121561127a57600080fd5b60006111c68484611104565b60006020828403121561129857600080fd5b60006111c6848461110f565b6000806000806000608086880312156112bc57600080fd5b853567ffffffffffffffff8111156112d357600080fd5b6112df88828901611125565b955095505060206112f288828901611104565b935050604061130388828901611192565b925050606086013567ffffffffffffffff81111561132057600080fd5b61132c88828901611167565b9150509295509295909350565b6000806000806000806080878903121561135257600080fd5b863567ffffffffffffffff81111561136957600080fd5b61137589828a01611180565b965050602087013567ffffffffffffffff81111561139257600080fd5b61139e89828a01611125565b9550955050604087013567ffffffffffffffff8111156113bd57600080fd5b6113c989828a01611125565b935093505060606113dc89828a01611192565b9150509295509295509295565b6000602082840312156113fb57600080fd5b60006111c6848461119d565b61141081611bb6565b82525050565b61141081611bc1565b61141081611bc6565b600061143382611ba4565b61143d8185611ba8565b935061144d818560208601611bdf565b61145681611c0b565b9093019392505050565b600061146d602383611ba8565b7f70726552656c6179656443616c6c3a20556e617574686f72697a65642063616c8152623632b960e91b602082015260400192915050565b60006114b2603c83611ba8565b7f5f5f706172736554784461746146756e6374696f6e53656c6563746f723a205f81527f747844617461206973206e6f7420612076616c6964206c656e67746800000000602082015260400192915050565b6000611511602683611ba8565b7f70726552656c6179656443616c6c3a20556e617574686f72697a656420666f728152653bb0b93232b960d11b602082015260400192915050565b6000611559601e83611ba8565b7f70726552656c6179656443616c6c3a204e6f6e2d7a65726f2076616c75650000815260200192915050565b6000611592602f83611ba8565b7f72656d6f76654164646974696f6e616c52656c617955736572733a205573657281526e081b9bdd081c9959da5cdd195c9959608a1b602082015260400192915050565b60006115e3601e83611ba8565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061161c603a83611ba8565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207281527f6563697069656e74206d61792068617665207265766572746564000000000000602082015260400192915050565b600061167b601d83611ba8565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000815260200192915050565b60006116b4603883611ba8565b7f776974686472617742616c616e63653a204f6e6c79206f776e6572206f72206381527f6f6d7074726f6c6c657220697320617574686f72697a65640000000000000000602082015260400192915050565b6000611713601e83611ba8565b7f43616e206f6e6c792062652063616c6c65642062792052656c61794875620000815260200192915050565b600061174c602383611ba8565b7f696e69743a205061796d617374657220616c726561647920696e697469616c698152621e995960ea1b602082015260400192915050565b6000611791602883611ba8565b7f6164644164646974696f6e616c52656c617955736572733a205573657220726581526719da5cdd195c995960c21b602082015260400192915050565b60006117db602183611ba8565b7f70726552656c6179656443616c6c3a2048696768206261736552656c617946658152606560f81b602082015260400192915050565b600061181e602c83611ba8565b7f43616e206f6e6c792062652063616c6c65642062792074686520706172656e7481526b1031b7b6b83a3937b63632b960a11b602082015260400192915050565b600061186c602083611ba8565b7f70726552656c6179656443616c6c3a20486967682070637452656c6179466565815260200192915050565b6000610cdf600083611bb1565b60006118b2602a83611ba8565b7f4f6e6c79207468652066756e64206f776e65722063616e2063616c6c207468698152693990333ab731ba34b7b760b11b602082015260400192915050565b805160808301906119028482611941565b5060208201516119156020850182611941565b5060408201516119286040850182611941565b50606082015161193b6060850182611941565b50505050565b611410816105d6565b6000610cdf82611898565b60208101610cdf8284611407565b604081016119718285611407565b61197e602083018461141f565b9392505050565b60208101610cdf8284611416565b604081016119a1828561141f565b61197e6020830184611416565b604080825281016119bf8185611428565b905061197e6020830184611416565b6020808252810161197e8184611428565b60208082528101610cdf81611460565b60208082528101610cdf816114a5565b60208082528101610cdf81611504565b60208082528101610cdf8161154c565b60208082528101610cdf81611585565b60208082528101610cdf816115d6565b60208082528101610cdf8161160f565b60208082528101610cdf8161166e565b60208082528101610cdf816116a7565b60208082528101610cdf81611706565b60208082528101610cdf8161173f565b60208082528101610cdf81611784565b60208082528101610cdf816117ce565b60208082528101610cdf81611811565b60208082528101610cdf8161185f565b60208082528101610cdf816118a5565b60808101610cdf82846118f1565b60208101610cdf8284611941565b60408101611b098285611941565b61197e6020830184611407565b6000808335601e1936859003018112611b2e57600080fd5b80840192508235915067ffffffffffffffff821115611b4c57600080fd5b602083019250600182023603831315611b6457600080fd5b509250929050565b6000823560de1936849003018112611b8357600080fd5b9190910192915050565b6000823560fe1936849003018112611b8357600080fd5b5190565b90815260200190565b919050565b6000610cdf82611bd3565b151590565b6001600160e01b03191690565b6001600160a01b031690565b60005b83811015611bfa578181015183820152602001611be2565b8381111561193b5750506000910152565b601f01601f191690565b611c1e81611bb6565b8114611c2957600080fd5b50565b611c1e81611bc1565b611c1e81611bc6565b611c1e816105d656fe322e322e332b6f70656e67736e2e656e7a796d6566756e642e697061796d6173746572a164736f6c634300060c000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000009e59ea5333cd4f402dac320a04fafa023fe3810d000000000000000000000000ca57e5d6218aeb093d76372b51ba355cfb3c6cd000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a
-----Decoded View---------------
Arg [0] : _wethToken (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : _relayHub (address): 0x9e59Ea5333cD4f402dAc320a04fafA023fe3810D
Arg [2] : _trustedForwarder (address): 0xca57e5D6218AeB093D76372B51Ba355CfB3C6Cd0
Arg [3] : _depositCooldown (uint256): 86400
Arg [4] : _depositMaxTotal (uint256): 1000000000000000000
Arg [5] : _relayFeeMaxBase (uint256): 0
Arg [6] : _relayFeeMaxPercent (uint256): 10
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 0000000000000000000000009e59ea5333cd4f402dac320a04fafa023fe3810d
Arg [2] : 000000000000000000000000ca57e5d6218aeb093d76372b51ba355cfb3c6cd0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [4] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.