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:
TimelockedCall
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-15 */ // SPDX-License-Identifier: BUSL-1.1 pragma solidity >= 0.8.26; interface ITimelockedCall { function initScheduler(address addr, uint256 newTimeLockDuration) external; function enableScheduler(address addr) external; function disableScheduler(address addr) external; function schedule(bytes32 h, address consumerAddr) external; function consume(bytes32 h) external; function consumeOwnership(bytes32 h, address prevOwnerAddr, address newOwnerAddr) external; } /** * @notice Defines the interface for whitelisting addresses. */ interface IAddressWhitelist { /** * @notice Whitelists the address specified. * @param addr The address to enable */ function enableAddress (address addr) external; /** * @notice Whitelists the addresses specified. * @param arr The addresses to enable */ function enableAddresses (address[] calldata arr) external; /** * @notice Disables the address specified. * @param addr The address to disable */ function disableAddress (address addr) external; /** * @notice Disables the addresses specified. * @param arr The addresses to disable */ function disableAddresses (address[] calldata arr) external; /** * @notice Indicates if the address is whitelisted or not. * @param addr The address to disable * @return Returns 1 if the address is whitelisted */ function isWhitelistedAddress (address addr) external view returns (bool); /** * This event is triggered when a new address is whitelisted. * @param addr The address that was whitelisted */ event OnAddressEnabled(address addr); /** * This event is triggered when an address is disabled. * @param addr The address that was disabled */ event OnAddressDisabled(address addr); } /** * @title Base reentrancy guard. This is constructor-less implementation for both proxies and standalone contracts. */ abstract contract BaseReentrancyGuard { uint256 internal constant _REENTRANCY_NOT_ENTERED = 1; uint256 internal constant _REENTRANCY_ENTERED = 2; uint256 internal _reentrancyStatus; /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_reentrancyStatus != _REENTRANCY_ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _reentrancyStatus = _REENTRANCY_ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _reentrancyStatus = _REENTRANCY_NOT_ENTERED; } /* /// @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a `nonReentrant` function in the call stack. function _reentrancyGuardEntered() internal view returns (bool) { return _reentrancyStatus == _REENTRANCY_ENTERED; } */ } abstract contract BaseOwnable { address internal _owner; /** * @notice Triggers when contract ownership changes. * @param previousOwner The previous owner of the contract. * @param newOwner The new owner of the contract. */ event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == _owner, "Caller is not the owner"); _; } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @title Lightweight version of the ownership contract. This contract has a reentrancy guard. */ abstract contract LightweightOwnable is BaseReentrancyGuard, BaseOwnable { /** * @notice Transfers ownership of the contract to the account specified. * @param newOwner The address of the new owner. */ function transferOwnership(address newOwner) external virtual nonReentrant onlyOwner { _transferOwnership(newOwner); } /** * @notice Gets the owner of the contract. * @return address The address who owns the contract. */ function owner() external view virtual returns (address) { return _owner; } } /** * @title Standalone contract for whitelisting addresses. */ contract AddressWhitelist is IAddressWhitelist, LightweightOwnable { mapping (address => bool) internal _whitelistedAddresses; constructor(address ownerAddr) { require(ownerAddr != address(0), "Owner required"); _owner = ownerAddr; } /** * @notice Whitelists the address specified. * @param addr The address to enable */ function enableAddress (address addr) external override nonReentrant onlyOwner { require(!_whitelistedAddresses[addr], "Already enabled"); _whitelistedAddresses[addr] = true; emit OnAddressEnabled(addr); } /** * @notice Whitelists the addresses specified. * @param arr The addresses to enable */ function enableAddresses (address[] calldata arr) external override nonReentrant onlyOwner { require(arr.length > 0, "Addresses required"); for (uint256 i; i < arr.length; i++) { require(arr[i] != address(0), "Invalid address"); require(!_whitelistedAddresses[arr[i]], "Already enabled"); _whitelistedAddresses[arr[i]] = true; emit OnAddressEnabled(arr[i]); } } /** * @notice Disables the address specified. * @param addr The address to disable */ function disableAddress (address addr) external override nonReentrant onlyOwner { require(_whitelistedAddresses[addr], "Already disabled"); _whitelistedAddresses[addr] = false; emit OnAddressDisabled(addr); } /** * @notice Disables the addresses specified. * @param arr The addresses to disable */ function disableAddresses (address[] calldata arr) external override nonReentrant onlyOwner { for (uint256 i; i < arr.length; i++) { require(_whitelistedAddresses[arr[i]], "Already disabled"); _whitelistedAddresses[arr[i]] = false; emit OnAddressDisabled(arr[i]); } } /** * @notice Indicates if the address is whitelisted or not. * @param addr The address to evaluate. * @return Returns true if the address is whitelisted. */ function isWhitelistedAddress (address addr) external view override returns (bool) { return _whitelistedAddresses[addr]; } } /** * @title Contract for managing time-locked function calls. */ contract TimelockedCall is ITimelockedCall, AddressWhitelist { struct TimelockedCallInfo { uint256 targetEpoch; // The unix epoch at which the hash can be consumed address createdBy; // The address of the scheduler address consumerAddress; // The address of the consumer } /// @notice The schedulers authorized for a given sender. (sender => scheduler => enabled/disabled) mapping (address => mapping(address => bool)) private whitelistedSchedulers; /// @notice The time-lock info of a given hash. mapping (bytes32 => TimelockedCallInfo) public queue; /// @notice The time-lock duration of every consumer address. mapping (address => uint256) public timeLockDuration; /// @notice Triggers when a hash is scheduled for the address specified. event HashScheduled(bytes32 h, address consumerAddress); /// @notice Triggers when a hash is consumed by the address specified. event HashConsumed(bytes32 h, address consumerAddress); /// @notice Triggers when a new scheduler is enabled for the consumer address specified. event SchedulerEnabled(address consumerAddress, address schedulerAddress); /// @notice Triggers when an existing scheduler is disabled for the consumer address specified. event SchedulerDisabled(address consumerAddress, address schedulerAddress); constructor(address ownerAddr) AddressWhitelist(ownerAddr) { } modifier ifSenderWhitelisted() { require(_whitelistedAddresses[msg.sender], "Unauthorized sender"); _; } modifier ifTimeLockConfigured() { require(timeLockDuration[msg.sender] > 0, "Not configured"); _; } /** * @notice Sets the initial scheduler and time-lock duration for the current message sender. * @param addr The address of the initial scheduler. You can add more addresses later. * @param newTimeLockDuration The duration of the time-lock for the current message sender. */ function initScheduler(address addr, uint256 newTimeLockDuration) external override nonReentrant ifSenderWhitelisted { require(addr != address(0), "Address required"); require(newTimeLockDuration > 0, "Duration required"); require(timeLockDuration[msg.sender] == 0, "Already initialized"); whitelistedSchedulers[msg.sender][addr] = true; timeLockDuration[msg.sender] = newTimeLockDuration; emit SchedulerEnabled(msg.sender, addr); } /** * @notice Authorizes the address specified to schedule calls. The calls will be consumed by the current message sender. * @param addr Specifies the address of the scheduler to authorize. */ function enableScheduler(address addr) external override nonReentrant ifTimeLockConfigured { _enableScheduler(addr); } /** * @notice Revokes the address specified from scheduling calls for the current message sender. * @param addr Specifies the address of the scheduler to revoke. */ function disableScheduler(address addr) external override nonReentrant ifTimeLockConfigured { _disableScheduler(addr); } /** * @notice Schedules a hash to be consumed by the address specified. * @param h Specifies the hash. * @param consumerAddr Specifies the address of the consumer. */ function schedule(bytes32 h, address consumerAddr) external override nonReentrant { require(h != bytes32(0), "Hash required"); require(whitelistedSchedulers[consumerAddr][msg.sender], "Unauthorized sender"); require(timeLockDuration[consumerAddr] > 0, "Not configured"); require(queue[h].targetEpoch == 0, "Already enqueued"); queue[h] = TimelockedCallInfo({ createdBy: msg.sender, consumerAddress: consumerAddr, targetEpoch: block.timestamp + timeLockDuration[consumerAddr] }); emit HashScheduled(h, consumerAddr); } /** * @notice Consumes the hash specified. * @param h Specifies the hash. */ function consume(bytes32 h) external override nonReentrant ifTimeLockConfigured { _consume(h); } /** * @notice Consumes the hash specified. The hash represents the transferOwnership function. * @param h Specifies the hash. * @param prevOwnerAddr The current owner of the contract at hand. * @param newOwnerAddr The address of the new owner. */ function consumeOwnership( bytes32 h, address prevOwnerAddr, address newOwnerAddr ) external override nonReentrant ifTimeLockConfigured { _disableScheduler(prevOwnerAddr); _consume(h); _enableScheduler(newOwnerAddr); } function _consume(bytes32 h) internal { require(queue[h].targetEpoch > 0, "Hash not enqueued"); require(msg.sender == queue[h].consumerAddress, "Unauthorized consumer"); require(block.timestamp > queue[h].targetEpoch, "Timelock in place"); delete queue[h]; emit HashConsumed(h, msg.sender); } function _enableScheduler(address addr) internal { require(addr != address(0), "Address required"); require(!whitelistedSchedulers[msg.sender][addr], "Already enabled"); whitelistedSchedulers[msg.sender][addr] = true; emit SchedulerEnabled(msg.sender, addr); } function _disableScheduler(address addr) internal { require(addr != address(0), "Address required"); require(whitelistedSchedulers[msg.sender][addr], "Already disabled"); whitelistedSchedulers[msg.sender][addr] = false; emit SchedulerDisabled(msg.sender, addr); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"ownerAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"h","type":"bytes32"},{"indexed":false,"internalType":"address","name":"consumerAddress","type":"address"}],"name":"HashConsumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"h","type":"bytes32"},{"indexed":false,"internalType":"address","name":"consumerAddress","type":"address"}],"name":"HashScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnAddressDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnAddressEnabled","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":"address","name":"consumerAddress","type":"address"},{"indexed":false,"internalType":"address","name":"schedulerAddress","type":"address"}],"name":"SchedulerDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"consumerAddress","type":"address"},{"indexed":false,"internalType":"address","name":"schedulerAddress","type":"address"}],"name":"SchedulerEnabled","type":"event"},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"name":"consume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"},{"internalType":"address","name":"prevOwnerAddr","type":"address"},{"internalType":"address","name":"newOwnerAddr","type":"address"}],"name":"consumeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"disableAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"arr","type":"address[]"}],"name":"disableAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"disableScheduler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"enableAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"arr","type":"address[]"}],"name":"enableAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"enableScheduler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"newTimeLockDuration","type":"uint256"}],"name":"initScheduler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isWhitelistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"targetEpoch","type":"uint256"},{"internalType":"address","name":"createdBy","type":"address"},{"internalType":"address","name":"consumerAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"},{"internalType":"address","name":"consumerAddr","type":"address"}],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timeLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052348015600e575f80fd5b50604051611763380380611763833981016040819052602b91609b565b806001600160a01b03811660765760405162461bcd60e51b815260206004820152600e60248201526d13dddb995c881c995c5d5a5c995960921b604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b03929092169190911790555060c6565b5f6020828403121560aa575f80fd5b81516001600160a01b038116811460bf575f80fd5b9392505050565b611690806100d35f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80639eefdd8711610093578063f6fd7c8d11610063578063f6fd7c8d14610248578063f832e2151461025b578063f914d17814610288578063fcc91b341461029b575f80fd5b80639eefdd87146101fc578063af6f8c1b1461020f578063dd331c2e14610222578063f2fde38b14610235575f80fd5b80636bf85c43116100ce5780636bf85c431461015c57806377dfbea21461016f5780637c10dea6146101825780638da5cb5b146101e1575f80fd5b8063044b42e1146100f45780635036258b146101095780635fae05761461011c575b5f80fd5b6101076101023660046114bc565b6102ae565b005b6101076101173660046114bc565b61032b565b61014761012a3660046114bc565b6001600160a01b03165f9081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61010761016a3660046114dc565b610451565b61010761017d36600461154d565b6106e7565b6101bc610190366004611577565b60046020525f908152604090208054600182015460029092015490916001600160a01b03908116911683565b604080519384526001600160a01b039283166020850152911690820152606001610153565b6001546040516001600160a01b039091168152602001610153565b61010761020a3660046114bc565b610965565b61010761021d366004611577565b610a82565b61010761023036600461158e565b610aee565b6101076102433660046114bc565b610cc6565b6101076102563660046114bc565b610d31565b61027a6102693660046114bc565b60056020525f908152604090205481565b604051908152602001610153565b6101076102963660046115b6565b610d9d565b6101076102a93660046114dc565b610e29565b6102b6610fe4565b335f908152600560205260409020546103165760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e6669677572656400000000000000000000000000000000000060448201526064015b60405180910390fd5b61031f8161103b565b61032860015f55565b50565b610333610fe4565b6001546001600160a01b0316331461038d5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b6001600160a01b0381165f9081526002602052604090205460ff166103f45760405162461bcd60e51b815260206004820152601060248201527f416c72656164792064697361626c656400000000000000000000000000000000604482015260640161030d565b6001600160a01b0381165f81815260026020908152604091829020805460ff1916905590519182527f817a22f8606c1982bfadd76a8d2f2356335b22f6731f0d5cdfdef6f033b14dc391015b60405180910390a161032860015f55565b610459610fe4565b6001546001600160a01b031633146104b35760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b806105005760405162461bcd60e51b815260206004820152601260248201527f4164647265737365732072657175697265640000000000000000000000000000604482015260640161030d565b5f5b818110156106d9575f83838381811061051d5761051d6115ef565b905060200201602081019061053291906114bc565b6001600160a01b0316036105885760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420616464726573730000000000000000000000000000000000604482015260640161030d565b60025f84848481811061059d5761059d6115ef565b90506020020160208101906105b291906114bc565b6001600160a01b0316815260208101919091526040015f205460ff161561061b5760405162461bcd60e51b815260206004820152600f60248201527f416c726561647920656e61626c65640000000000000000000000000000000000604482015260640161030d565b600160025f858585818110610632576106326115ef565b905060200201602081019061064791906114bc565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f36eb734aedf7abf48fbef350f1aa23aa2cf37b6ea7d7fc668e15dca0e9bb72af8383838181106106a1576106a16115ef565b90506020020160208101906106b691906114bc565b6040516001600160a01b03909116815260200160405180910390a1600101610502565b506106e360015f55565b5050565b6106ef610fe4565b8161073c5760405162461bcd60e51b815260206004820152600d60248201527f4861736820726571756972656400000000000000000000000000000000000000604482015260640161030d565b6001600160a01b0381165f90815260036020908152604080832033845290915290205460ff166107ae5760405162461bcd60e51b815260206004820152601360248201527f556e617574686f72697a65642073656e64657200000000000000000000000000604482015260640161030d565b6001600160a01b0381165f908152600560205260409020546108125760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b5f828152600460205260409020541561086d5760405162461bcd60e51b815260206004820152601060248201527f416c726561647920656e71756575656400000000000000000000000000000000604482015260640161030d565b604080516060810182526001600160a01b0383165f90815260056020529190912054819061089b904261161c565b8152336020808301919091526001600160a01b038481166040938401525f8681526004835283902084518155918401516001830180549183167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790559383015160029092018054929091169190931617909155517f6ef595d41bb19bf4009067ebfca1e965c782641ffd735166641d1832d9955ca59061095490849084909182526001600160a01b0316602082015260400190565b60405180910390a16106e360015f55565b61096d610fe4565b6001546001600160a01b031633146109c75760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b6001600160a01b0381165f9081526002602052604090205460ff1615610a2f5760405162461bcd60e51b815260206004820152600f60248201527f416c726561647920656e61626c65640000000000000000000000000000000000604482015260640161030d565b6001600160a01b0381165f81815260026020908152604091829020805460ff1916600117905590519182527f36eb734aedf7abf48fbef350f1aa23aa2cf37b6ea7d7fc668e15dca0e9bb72af9101610440565b610a8a610fe4565b335f90815260056020526040902054610ae55760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b61031f8161116f565b610af6610fe4565b335f9081526002602052604090205460ff16610b545760405162461bcd60e51b815260206004820152601360248201527f556e617574686f72697a65642073656e64657200000000000000000000000000604482015260640161030d565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152601060248201527f4164647265737320726571756972656400000000000000000000000000000000604482015260640161030d565b5f8111610bf95760405162461bcd60e51b815260206004820152601160248201527f4475726174696f6e207265717569726564000000000000000000000000000000604482015260640161030d565b335f9081526005602052604090205415610c555760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a656400000000000000000000000000604482015260640161030d565b335f8181526003602090815260408083206001600160a01b038716808552908352818420805460ff1916600117905584845260058352928190208590558051938452908301919091527f2e1532fab4575bbd4b71ca99084eba74c2dc594c534a46ea4d8271ba87686dbb9101610954565b610cce610fe4565b6001546001600160a01b03163314610d285760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b61031f8161130f565b610d39610fe4565b335f90815260056020526040902054610d945760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b61031f81611378565b610da5610fe4565b335f90815260056020526040902054610e005760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b610e0982611378565b610e128361116f565b610e1b8161103b565b610e2460015f55565b505050565b610e31610fe4565b6001546001600160a01b03163314610e8b5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b5f5b818110156106d95760025f848484818110610eaa57610eaa6115ef565b9050602002016020810190610ebf91906114bc565b6001600160a01b0316815260208101919091526040015f205460ff16610f275760405162461bcd60e51b815260206004820152601060248201527f416c72656164792064697361626c656400000000000000000000000000000000604482015260640161030d565b5f60025f858585818110610f3d57610f3d6115ef565b9050602002016020810190610f5291906114bc565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f817a22f8606c1982bfadd76a8d2f2356335b22f6731f0d5cdfdef6f033b14dc3838383818110610fac57610fac6115ef565b9050602002016020810190610fc191906114bc565b6040516001600160a01b03909116815260200160405180910390a1600101610e8d565b60025f54036110355760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161030d565b60025f55565b6001600160a01b0381166110915760405162461bcd60e51b815260206004820152601060248201527f4164647265737320726571756972656400000000000000000000000000000000604482015260640161030d565b335f9081526003602090815260408083206001600160a01b038516845290915290205460ff16156111045760405162461bcd60e51b815260206004820152600f60248201527f416c726561647920656e61626c65640000000000000000000000000000000000604482015260640161030d565b335f8181526003602090815260408083206001600160a01b03861680855290835292819020805460ff191660011790558051938452908301919091527f2e1532fab4575bbd4b71ca99084eba74c2dc594c534a46ea4d8271ba87686dbb91015b60405180910390a150565b5f818152600460205260409020546111c95760405162461bcd60e51b815260206004820152601160248201527f48617368206e6f7420656e717565756564000000000000000000000000000000604482015260640161030d565b5f818152600460205260409020600201546001600160a01b031633146112315760405162461bcd60e51b815260206004820152601560248201527f556e617574686f72697a656420636f6e73756d65720000000000000000000000604482015260640161030d565b5f81815260046020526040902054421161128d5760405162461bcd60e51b815260206004820152601160248201527f54696d656c6f636b20696e20706c616365000000000000000000000000000000604482015260640161030d565b5f8181526004602090815260408083209283556001830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915560029093018054909316909255815183815233918101919091527fc0c97b5bfc2b0d319a6dadd3efddd19273d76957d4cf2c1f72697f8b589dea059101611164565b600180546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0381166113ce5760405162461bcd60e51b815260206004820152601060248201527f4164647265737320726571756972656400000000000000000000000000000000604482015260640161030d565b335f9081526003602090815260408083206001600160a01b038516845290915290205460ff166114405760405162461bcd60e51b815260206004820152601060248201527f416c72656164792064697361626c656400000000000000000000000000000000604482015260640161030d565b335f8181526003602090815260408083206001600160a01b03861680855290835292819020805460ff191690558051938452908301919091527f07afcfd70ee49c21e69bef23484ab1dfaba225d7d1c87fcbad238e86590972879101611164565b80356001600160a01b03811681146114b7575f80fd5b919050565b5f602082840312156114cc575f80fd5b6114d5826114a1565b9392505050565b5f80602083850312156114ed575f80fd5b823567ffffffffffffffff811115611503575f80fd5b8301601f81018513611513575f80fd5b803567ffffffffffffffff811115611529575f80fd5b8560208260051b840101111561153d575f80fd5b6020919091019590945092505050565b5f806040838503121561155e575f80fd5b8235915061156e602084016114a1565b90509250929050565b5f60208284031215611587575f80fd5b5035919050565b5f806040838503121561159f575f80fd5b6115a8836114a1565b946020939093013593505050565b5f805f606084860312156115c8575f80fd5b833592506115d8602085016114a1565b91506115e6604085016114a1565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115611654577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea264697066735822122007af2d4bf148177adf31a30339dc9c7be24180099919b39702651ef906076dd864736f6c634300081a0033000000000000000000000000b30f65e1a1455ab919f6baddc783fd4c049f5334
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80639eefdd8711610093578063f6fd7c8d11610063578063f6fd7c8d14610248578063f832e2151461025b578063f914d17814610288578063fcc91b341461029b575f80fd5b80639eefdd87146101fc578063af6f8c1b1461020f578063dd331c2e14610222578063f2fde38b14610235575f80fd5b80636bf85c43116100ce5780636bf85c431461015c57806377dfbea21461016f5780637c10dea6146101825780638da5cb5b146101e1575f80fd5b8063044b42e1146100f45780635036258b146101095780635fae05761461011c575b5f80fd5b6101076101023660046114bc565b6102ae565b005b6101076101173660046114bc565b61032b565b61014761012a3660046114bc565b6001600160a01b03165f9081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61010761016a3660046114dc565b610451565b61010761017d36600461154d565b6106e7565b6101bc610190366004611577565b60046020525f908152604090208054600182015460029092015490916001600160a01b03908116911683565b604080519384526001600160a01b039283166020850152911690820152606001610153565b6001546040516001600160a01b039091168152602001610153565b61010761020a3660046114bc565b610965565b61010761021d366004611577565b610a82565b61010761023036600461158e565b610aee565b6101076102433660046114bc565b610cc6565b6101076102563660046114bc565b610d31565b61027a6102693660046114bc565b60056020525f908152604090205481565b604051908152602001610153565b6101076102963660046115b6565b610d9d565b6101076102a93660046114dc565b610e29565b6102b6610fe4565b335f908152600560205260409020546103165760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e6669677572656400000000000000000000000000000000000060448201526064015b60405180910390fd5b61031f8161103b565b61032860015f55565b50565b610333610fe4565b6001546001600160a01b0316331461038d5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b6001600160a01b0381165f9081526002602052604090205460ff166103f45760405162461bcd60e51b815260206004820152601060248201527f416c72656164792064697361626c656400000000000000000000000000000000604482015260640161030d565b6001600160a01b0381165f81815260026020908152604091829020805460ff1916905590519182527f817a22f8606c1982bfadd76a8d2f2356335b22f6731f0d5cdfdef6f033b14dc391015b60405180910390a161032860015f55565b610459610fe4565b6001546001600160a01b031633146104b35760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b806105005760405162461bcd60e51b815260206004820152601260248201527f4164647265737365732072657175697265640000000000000000000000000000604482015260640161030d565b5f5b818110156106d9575f83838381811061051d5761051d6115ef565b905060200201602081019061053291906114bc565b6001600160a01b0316036105885760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420616464726573730000000000000000000000000000000000604482015260640161030d565b60025f84848481811061059d5761059d6115ef565b90506020020160208101906105b291906114bc565b6001600160a01b0316815260208101919091526040015f205460ff161561061b5760405162461bcd60e51b815260206004820152600f60248201527f416c726561647920656e61626c65640000000000000000000000000000000000604482015260640161030d565b600160025f858585818110610632576106326115ef565b905060200201602081019061064791906114bc565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f36eb734aedf7abf48fbef350f1aa23aa2cf37b6ea7d7fc668e15dca0e9bb72af8383838181106106a1576106a16115ef565b90506020020160208101906106b691906114bc565b6040516001600160a01b03909116815260200160405180910390a1600101610502565b506106e360015f55565b5050565b6106ef610fe4565b8161073c5760405162461bcd60e51b815260206004820152600d60248201527f4861736820726571756972656400000000000000000000000000000000000000604482015260640161030d565b6001600160a01b0381165f90815260036020908152604080832033845290915290205460ff166107ae5760405162461bcd60e51b815260206004820152601360248201527f556e617574686f72697a65642073656e64657200000000000000000000000000604482015260640161030d565b6001600160a01b0381165f908152600560205260409020546108125760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b5f828152600460205260409020541561086d5760405162461bcd60e51b815260206004820152601060248201527f416c726561647920656e71756575656400000000000000000000000000000000604482015260640161030d565b604080516060810182526001600160a01b0383165f90815260056020529190912054819061089b904261161c565b8152336020808301919091526001600160a01b038481166040938401525f8681526004835283902084518155918401516001830180549183167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790559383015160029092018054929091169190931617909155517f6ef595d41bb19bf4009067ebfca1e965c782641ffd735166641d1832d9955ca59061095490849084909182526001600160a01b0316602082015260400190565b60405180910390a16106e360015f55565b61096d610fe4565b6001546001600160a01b031633146109c75760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b6001600160a01b0381165f9081526002602052604090205460ff1615610a2f5760405162461bcd60e51b815260206004820152600f60248201527f416c726561647920656e61626c65640000000000000000000000000000000000604482015260640161030d565b6001600160a01b0381165f81815260026020908152604091829020805460ff1916600117905590519182527f36eb734aedf7abf48fbef350f1aa23aa2cf37b6ea7d7fc668e15dca0e9bb72af9101610440565b610a8a610fe4565b335f90815260056020526040902054610ae55760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b61031f8161116f565b610af6610fe4565b335f9081526002602052604090205460ff16610b545760405162461bcd60e51b815260206004820152601360248201527f556e617574686f72697a65642073656e64657200000000000000000000000000604482015260640161030d565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152601060248201527f4164647265737320726571756972656400000000000000000000000000000000604482015260640161030d565b5f8111610bf95760405162461bcd60e51b815260206004820152601160248201527f4475726174696f6e207265717569726564000000000000000000000000000000604482015260640161030d565b335f9081526005602052604090205415610c555760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a656400000000000000000000000000604482015260640161030d565b335f8181526003602090815260408083206001600160a01b038716808552908352818420805460ff1916600117905584845260058352928190208590558051938452908301919091527f2e1532fab4575bbd4b71ca99084eba74c2dc594c534a46ea4d8271ba87686dbb9101610954565b610cce610fe4565b6001546001600160a01b03163314610d285760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b61031f8161130f565b610d39610fe4565b335f90815260056020526040902054610d945760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b61031f81611378565b610da5610fe4565b335f90815260056020526040902054610e005760405162461bcd60e51b815260206004820152600e60248201527f4e6f7420636f6e66696775726564000000000000000000000000000000000000604482015260640161030d565b610e0982611378565b610e128361116f565b610e1b8161103b565b610e2460015f55565b505050565b610e31610fe4565b6001546001600160a01b03163314610e8b5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161030d565b5f5b818110156106d95760025f848484818110610eaa57610eaa6115ef565b9050602002016020810190610ebf91906114bc565b6001600160a01b0316815260208101919091526040015f205460ff16610f275760405162461bcd60e51b815260206004820152601060248201527f416c72656164792064697361626c656400000000000000000000000000000000604482015260640161030d565b5f60025f858585818110610f3d57610f3d6115ef565b9050602002016020810190610f5291906114bc565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f817a22f8606c1982bfadd76a8d2f2356335b22f6731f0d5cdfdef6f033b14dc3838383818110610fac57610fac6115ef565b9050602002016020810190610fc191906114bc565b6040516001600160a01b03909116815260200160405180910390a1600101610e8d565b60025f54036110355760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161030d565b60025f55565b6001600160a01b0381166110915760405162461bcd60e51b815260206004820152601060248201527f4164647265737320726571756972656400000000000000000000000000000000604482015260640161030d565b335f9081526003602090815260408083206001600160a01b038516845290915290205460ff16156111045760405162461bcd60e51b815260206004820152600f60248201527f416c726561647920656e61626c65640000000000000000000000000000000000604482015260640161030d565b335f8181526003602090815260408083206001600160a01b03861680855290835292819020805460ff191660011790558051938452908301919091527f2e1532fab4575bbd4b71ca99084eba74c2dc594c534a46ea4d8271ba87686dbb91015b60405180910390a150565b5f818152600460205260409020546111c95760405162461bcd60e51b815260206004820152601160248201527f48617368206e6f7420656e717565756564000000000000000000000000000000604482015260640161030d565b5f818152600460205260409020600201546001600160a01b031633146112315760405162461bcd60e51b815260206004820152601560248201527f556e617574686f72697a656420636f6e73756d65720000000000000000000000604482015260640161030d565b5f81815260046020526040902054421161128d5760405162461bcd60e51b815260206004820152601160248201527f54696d656c6f636b20696e20706c616365000000000000000000000000000000604482015260640161030d565b5f8181526004602090815260408083209283556001830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915560029093018054909316909255815183815233918101919091527fc0c97b5bfc2b0d319a6dadd3efddd19273d76957d4cf2c1f72697f8b589dea059101611164565b600180546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0381166113ce5760405162461bcd60e51b815260206004820152601060248201527f4164647265737320726571756972656400000000000000000000000000000000604482015260640161030d565b335f9081526003602090815260408083206001600160a01b038516845290915290205460ff166114405760405162461bcd60e51b815260206004820152601060248201527f416c72656164792064697361626c656400000000000000000000000000000000604482015260640161030d565b335f8181526003602090815260408083206001600160a01b03861680855290835292819020805460ff191690558051938452908301919091527f07afcfd70ee49c21e69bef23484ab1dfaba225d7d1c87fcbad238e86590972879101611164565b80356001600160a01b03811681146114b7575f80fd5b919050565b5f602082840312156114cc575f80fd5b6114d5826114a1565b9392505050565b5f80602083850312156114ed575f80fd5b823567ffffffffffffffff811115611503575f80fd5b8301601f81018513611513575f80fd5b803567ffffffffffffffff811115611529575f80fd5b8560208260051b840101111561153d575f80fd5b6020919091019590945092505050565b5f806040838503121561155e575f80fd5b8235915061156e602084016114a1565b90509250929050565b5f60208284031215611587575f80fd5b5035919050565b5f806040838503121561159f575f80fd5b6115a8836114a1565b946020939093013593505050565b5f805f606084860312156115c8575f80fd5b833592506115d8602085016114a1565b91506115e6604085016114a1565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115611654577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea264697066735822122007af2d4bf148177adf31a30339dc9c7be24180099919b39702651ef906076dd864736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b30f65e1a1455ab919f6baddc783fd4c049f5334
-----Decoded View---------------
Arg [0] : ownerAddr (address): 0xb30F65e1a1455ab919f6baddc783FD4c049F5334
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b30f65e1a1455ab919f6baddc783fd4c049f5334
Deployed Bytecode Sourcemap
7607:5834:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10371:132;;;;;;:::i;:::-;;:::i;:::-;;6507:240;;;;;;:::i;:::-;;:::i;7391:136::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7492:27:0;7468:4;7492:27;;;:21;:27;;;;;;;;;7391:136;;;;571:14:1;;564:22;546:41;;534:2;519:18;7391:136:0;;;;;;;;5943:447;;;;;;:::i;:::-;;:::i;11037:636::-;;;;;;:::i;:::-;;:::i;8176:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8176:52:0;;;;;;;;;;;1951:25:1;;;-1:-1:-1;;;;;2012:55:1;;;2007:2;1992:18;;1985:83;2104:55;;2084:18;;;2077:83;1939:2;1924:18;8176:52:0;1749:417:1;5028:89:0;5103:6;;5028:89;;-1:-1:-1;;;;;5103:6:0;;;2317:74:1;;2305:2;2290:18;5028:89:0;2171:226:1;5585:237:0;;;;;;:::i;:::-;;:::i;11781:110::-;;;;;;:::i;:::-;;:::i;9651:495::-;;;;;;:::i;:::-;;:::i;4763:132::-;;;;;;:::i;:::-;;:::i;10699:134::-;;;;;;:::i;:::-;;:::i;8304:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2807:25:1;;;2795:2;2780:18;8304:52:0;2661:177:1;12181:282:0;;;;;;:::i;:::-;;:::i;6867:329::-;;;;;;:::i;:::-;;:::i;10371:132::-;2693:21;:19;:21::i;:::-;9284:10:::1;9298:1;9267:28:::0;;;:16:::1;:28;::::0;;;;;9259:59:::1;;;::::0;-1:-1:-1;;;9259:59:0;;3424:2:1;9259:59:0::1;::::0;::::1;3406:21:1::0;3463:2;3443:18;;;3436:30;3502:16;3482:18;;;3475:44;3536:18;;9259:59:0::1;;;;;;;;;10473:22:::2;10490:4;10473:16;:22::i;:::-;2737:20:::0;2171:1;3299:17;:43;3116:234;2737:20;10371:132;:::o;6507:240::-;2693:21;:19;:21::i;:::-;4165:6:::1;::::0;-1:-1:-1;;;;;4165:6:0::1;4151:10;:20;4143:56;;;::::0;-1:-1:-1;;;4143:56:0;;3767:2:1;4143:56:0::1;::::0;::::1;3749:21:1::0;3806:2;3786:18;;;3779:30;3845:25;3825:18;;;3818:53;3888:18;;4143:56:0::1;3565:347:1::0;4143:56:0::1;-1:-1:-1::0;;;;;6606:27:0;::::2;;::::0;;;:21:::2;:27;::::0;;;;;::::2;;6598:56;;;::::0;-1:-1:-1;;;6598:56:0;;4119:2:1;6598:56:0::2;::::0;::::2;4101:21:1::0;4158:2;4138:18;;;4131:30;4197:18;4177;;;4170:46;4233:18;;6598:56:0::2;3917:340:1::0;6598:56:0::2;-1:-1:-1::0;;;;;6665:27:0;::::2;6695:5;6665:27:::0;;;:21:::2;:27;::::0;;;;;;;;:35;;-1:-1:-1;;6665:35:0::2;::::0;;6716:23;;2317:74:1;;;6716:23:0::2;::::0;2290:18:1;6716:23:0::2;;;;;;;;2737:20:::0;2171:1;3299:17;:43;3116:234;5943:447;2693:21;:19;:21::i;:::-;4165:6:::1;::::0;-1:-1:-1;;;;;4165:6:0::1;4151:10;:20;4143:56;;;::::0;-1:-1:-1;;;4143:56:0;;3767:2:1;4143:56:0::1;::::0;::::1;3749:21:1::0;3806:2;3786:18;;;3779:30;3845:25;3825:18;;;3818:53;3888:18;;4143:56:0::1;3565:347:1::0;4143:56:0::1;6053:14:::0;6045:45:::2;;;::::0;-1:-1:-1;;;6045:45:0;;4464:2:1;6045:45:0::2;::::0;::::2;4446:21:1::0;4503:2;4483:18;;;4476:30;4542:20;4522:18;;;4515:48;4580:18;;6045:45:0::2;4262:342:1::0;6045:45:0::2;6108:9;6103:280;6119:14:::0;;::::2;6103:280;;;6181:1;6163:3:::0;;6167:1;6163:6;;::::2;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6163:20:0::2;::::0;6155:48:::2;;;::::0;-1:-1:-1;;;6155:48:0;;5000:2:1;6155:48:0::2;::::0;::::2;4982:21:1::0;5039:2;5019:18;;;5012:30;5078:17;5058:18;;;5051:45;5113:18;;6155:48:0::2;4798:339:1::0;6155:48:0::2;6227:21;:29;6249:3;;6253:1;6249:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6227:29:0::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;6227:29:0;;::::2;;6226:30;6218:58;;;::::0;-1:-1:-1;;;6218:58:0;;5344:2:1;6218:58:0::2;::::0;::::2;5326:21:1::0;5383:2;5363:18;;;5356:30;5422:17;5402:18;;;5395:45;5457:18;;6218:58:0::2;5142:339:1::0;6218:58:0::2;6323:4;6291:21;:29;6313:3;;6317:1;6313:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6291:29:0::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;6291:29:0;:36;;-1:-1:-1;;6291:36:0::2;::::0;::::2;;::::0;;;::::2;::::0;;6347:24:::2;6364:3:::0;;6368:1;6364:6;;::::2;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6347:24;::::0;-1:-1:-1;;;;;2335:55:1;;;2317:74;;2305:2;2290:18;6347:24:0::2;;;;;;;6135:3;;6103:280;;;;2737:20:::0;2171:1;3299:17;:43;3116:234;2737:20;5943:447;;:::o;11037:636::-;2693:21;:19;:21::i;:::-;11138:1;11130:41:::1;;;::::0;-1:-1:-1;;;11130:41:0;;5688:2:1;11130:41:0::1;::::0;::::1;5670:21:1::0;5727:2;5707:18;;;5700:30;5766:15;5746:18;;;5739:43;5799:18;;11130:41:0::1;5486:337:1::0;11130:41:0::1;-1:-1:-1::0;;;;;11190:35:0;::::1;;::::0;;;:21:::1;:35;::::0;;;;;;;11226:10:::1;11190:47:::0;;;;;;;;::::1;;11182:79;;;::::0;-1:-1:-1;;;11182:79:0;;6030:2:1;11182:79:0::1;::::0;::::1;6012:21:1::0;6069:2;6049:18;;;6042:30;6108:21;6088:18;;;6081:49;6147:18;;11182:79:0::1;5828:343:1::0;11182:79:0::1;-1:-1:-1::0;;;;;11280:30:0;::::1;11313:1;11280:30:::0;;;:16:::1;:30;::::0;;;;;11272:61:::1;;;::::0;-1:-1:-1;;;11272:61:0;;3424:2:1;11272:61:0::1;::::0;::::1;3406:21:1::0;3463:2;3443:18;;;3436:30;3502:16;3482:18;;;3475:44;3536:18;;11272:61:0::1;3222:338:1::0;11272:61:0::1;11352:8;::::0;;;:5:::1;:8;::::0;;;;:20;:25;11344:54:::1;;;::::0;-1:-1:-1;;;11344:54:0;;6378:2:1;11344:54:0::1;::::0;::::1;6360:21:1::0;6417:2;6397:18;;;6390:30;6456:18;6436;;;6429:46;6492:18;;11344:54:0::1;6176:340:1::0;11344:54:0::1;11430:187;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;11575:30:0;::::1;-1:-1:-1::0;11575:30:0;;;:16:::1;:30;::::0;;;;;;11430:187;;11557:48:::1;::::0;:15:::1;:48;:::i;:::-;11430:187:::0;;11475:10:::1;11430:187;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;11430:187:0;;::::1;::::0;;;;;-1:-1:-1;11419:8:0;;;:5:::1;:8:::0;;;;;:198;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;::::1;;::::0;;;11635:30;::::1;::::0;::::1;::::0;11425:1;;11517:12;;6979:25:1;;;-1:-1:-1;;;;;7040:55:1;7035:2;7020:18;;7013:83;6967:2;6952:18;;6805:297;11635:30:0::1;;;;;;;;2737:20:::0;2171:1;3299:17;:43;3116:234;5585:237;2693:21;:19;:21::i;:::-;4165:6:::1;::::0;-1:-1:-1;;;;;4165:6:0::1;4151:10;:20;4143:56;;;::::0;-1:-1:-1;;;4143:56:0;;3767:2:1;4143:56:0::1;::::0;::::1;3749:21:1::0;3806:2;3786:18;;;3779:30;3845:25;3825:18;;;3818:53;3888:18;;4143:56:0::1;3565:347:1::0;4143:56:0::1;-1:-1:-1::0;;;;;5684:27:0;::::2;;::::0;;;:21:::2;:27;::::0;;;;;::::2;;5683:28;5675:56;;;::::0;-1:-1:-1;;;5675:56:0;;5344:2:1;5675:56:0::2;::::0;::::2;5326:21:1::0;5383:2;5363:18;;;5356:30;5422:17;5402:18;;;5395:45;5457:18;;5675:56:0::2;5142:339:1::0;5675:56:0::2;-1:-1:-1::0;;;;;5742:27:0;::::2;;::::0;;;:21:::2;:27;::::0;;;;;;;;:34;;-1:-1:-1;;5742:34:0::2;5772:4;5742:34;::::0;;5792:22;;2317:74:1;;;5792:22:0::2;::::0;2290:18:1;5792:22:0::2;2171:226:1::0;11781:110:0;2693:21;:19;:21::i;:::-;9284:10:::1;9298:1;9267:28:::0;;;:16:::1;:28;::::0;;;;;9259:59:::1;;;::::0;-1:-1:-1;;;9259:59:0;;3424:2:1;9259:59:0::1;::::0;::::1;3406:21:1::0;3463:2;3443:18;;;3436:30;3502:16;3482:18;;;3475:44;3536:18;;9259:59:0::1;3222:338:1::0;9259:59:0::1;11872:11:::2;11881:1;11872:8;:11::i;9651:495::-:0;2693:21;:19;:21::i;:::-;9153:10:::1;9131:33;::::0;;;:21:::1;:33;::::0;;;;;::::1;;9123:65;;;::::0;-1:-1:-1;;;9123:65:0;;6030:2:1;9123:65:0::1;::::0;::::1;6012:21:1::0;6069:2;6049:18;;;6042:30;6108:21;6088:18;;;6081:49;6147:18;;9123:65:0::1;5828:343:1::0;9123:65:0::1;-1:-1:-1::0;;;;;9787:18:0;::::2;9779:47;;;::::0;-1:-1:-1;;;9779:47:0;;7309:2:1;9779:47:0::2;::::0;::::2;7291:21:1::0;7348:2;7328:18;;;7321:30;7387:18;7367;;;7360:46;7423:18;;9779:47:0::2;7107:340:1::0;9779:47:0::2;9867:1;9845:19;:23;9837:53;;;::::0;-1:-1:-1;;;9837:53:0;;7654:2:1;9837:53:0::2;::::0;::::2;7636:21:1::0;7693:2;7673:18;;;7666:30;7732:19;7712:18;;;7705:47;7769:18;;9837:53:0::2;7452:341:1::0;9837:53:0::2;9926:10;9909:28;::::0;;;:16:::2;:28;::::0;;;;;:33;9901:65:::2;;;::::0;-1:-1:-1;;;9901:65:0;;8000:2:1;9901:65:0::2;::::0;::::2;7982:21:1::0;8039:2;8019:18;;;8012:30;8078:21;8058:18;;;8051:49;8117:18;;9901:65:0::2;7798:343:1::0;9901:65:0::2;10001:10;9979:33;::::0;;;:21:::2;:33;::::0;;;;;;;-1:-1:-1;;;;;9979:39:0;::::2;::::0;;;;;;;;;:46;;-1:-1:-1;;9979:46:0::2;10021:4;9979:46;::::0;;10036:28;;;:16:::2;:28:::0;;;;;;:50;;;10104:34;;8320:74:1;;;8410:18;;;8403:83;;;;10104:34:0::2;::::0;8293:18:1;10104:34:0::2;8146:346:1::0;4763:132:0;2693:21;:19;:21::i;:::-;4165:6:::1;::::0;-1:-1:-1;;;;;4165:6:0::1;4151:10;:20;4143:56;;;::::0;-1:-1:-1;;;4143:56:0;;3767:2:1;4143:56:0::1;::::0;::::1;3749:21:1::0;3806:2;3786:18;;;3779:30;3845:25;3825:18;;;3818:53;3888:18;;4143:56:0::1;3565:347:1::0;4143:56:0::1;4859:28:::2;4878:8;4859:18;:28::i;10699:134::-:0;2693:21;:19;:21::i;:::-;9284:10:::1;9298:1;9267:28:::0;;;:16:::1;:28;::::0;;;;;9259:59:::1;;;::::0;-1:-1:-1;;;9259:59:0;;3424:2:1;9259:59:0::1;::::0;::::1;3406:21:1::0;3463:2;3443:18;;;3436:30;3502:16;3482:18;;;3475:44;3536:18;;9259:59:0::1;3222:338:1::0;9259:59:0::1;10802:23:::2;10820:4;10802:17;:23::i;12181:282::-:0;2693:21;:19;:21::i;:::-;9284:10:::1;9298:1;9267:28:::0;;;:16:::1;:28;::::0;;;;;9259:59:::1;;;::::0;-1:-1:-1;;;9259:59:0;;3424:2:1;9259:59:0::1;::::0;::::1;3406:21:1::0;3463:2;3443:18;;;3436:30;3502:16;3482:18;;;3475:44;3536:18;;9259:59:0::1;3222:338:1::0;9259:59:0::1;12360:32:::2;12378:13;12360:17;:32::i;:::-;12403:11;12412:1;12403:8;:11::i;:::-;12425:30;12442:12;12425:16;:30::i;:::-;2737:20:::0;2171:1;3299:17;:43;3116:234;2737:20;12181:282;;;:::o;6867:329::-;2693:21;:19;:21::i;:::-;4165:6:::1;::::0;-1:-1:-1;;;;;4165:6:0::1;4151:10;:20;4143:56;;;::::0;-1:-1:-1;;;4143:56:0;;3767:2:1;4143:56:0::1;::::0;::::1;3749:21:1::0;3806:2;3786:18;;;3779:30;3845:25;3825:18;;;3818:53;3888:18;;4143:56:0::1;3565:347:1::0;4143:56:0::1;6975:9:::2;6970:219;6986:14:::0;;::::2;6970:219;;;7030:21;:29;7052:3;;7056:1;7052:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7030:29:0::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;7030:29:0;;::::2;;7022:58;;;::::0;-1:-1:-1;;;7022:58:0;;4119:2:1;7022:58:0::2;::::0;::::2;4101:21:1::0;4158:2;4138:18;;;4131:30;4197:18;4177;;;4170:46;4233:18;;7022:58:0::2;3917:340:1::0;7022:58:0::2;7127:5;7095:21;:29;7117:3;;7121:1;7117:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7095:29:0::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;7095:29:0;:37;;-1:-1:-1;;7095:37:0::2;::::0;::::2;;::::0;;;::::2;::::0;;7152:25:::2;7170:3:::0;;7174:1;7170:6;;::::2;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7152:25;::::0;-1:-1:-1;;;;;2335:55:1;;;2317:74;;2305:2;2290:18;7152:25:0::2;;;;;;;7002:3;;6970:219;;2773:335:::0;2227:1;2907:17;;:40;2899:84;;;;-1:-1:-1;;;2899:84:0;;8699:2:1;2899:84:0;;;8681:21:1;8738:2;8718:18;;;8711:30;8777:33;8757:18;;;8750:61;8828:18;;2899:84:0;8497:355:1;2899:84:0;2227:1;3061:17;:39;2773:335::o;12825:301::-;-1:-1:-1;;;;;12893:18:0;;12885:47;;;;-1:-1:-1;;;12885:47:0;;7309:2:1;12885:47:0;;;7291:21:1;7348:2;7328:18;;;7321:30;7387:18;7367;;;7360:46;7423:18;;12885:47:0;7107:340:1;12885:47:0;12974:10;12952:33;;;;:21;:33;;;;;;;;-1:-1:-1;;;;;12952:39:0;;;;;;;;;;;;12951:40;12943:68;;;;-1:-1:-1;;;12943:68:0;;5344:2:1;12943:68:0;;;5326:21:1;5383:2;5363:18;;;5356:30;5422:17;5402:18;;;5395:45;5457:18;;12943:68:0;5142:339:1;12943:68:0;13044:10;13022:33;;;;:21;:33;;;;;;;;-1:-1:-1;;;;;13022:39:0;;;;;;;;;;;;:46;;-1:-1:-1;;13022:46:0;13064:4;13022:46;;;13084:34;;8320:74:1;;;8410:18;;;8403:83;;;;13084:34:0;;8293:18:1;13084:34:0;;;;;;;;12825:301;:::o;12471:346::-;12551:1;12528:8;;;:5;:8;;;;;:20;12520:54;;;;-1:-1:-1;;;12520:54:0;;9059:2:1;12520:54:0;;;9041:21:1;9098:2;9078:18;;;9071:30;9137:19;9117:18;;;9110:47;9174:18;;12520:54:0;8857:341:1;12520:54:0;12607:8;;;;:5;:8;;;;;:24;;;-1:-1:-1;;;;;12607:24:0;12593:10;:38;12585:72;;;;-1:-1:-1;;;12585:72:0;;9405:2:1;12585:72:0;;;9387:21:1;9444:2;9424:18;;;9417:30;9483:23;9463:18;;;9456:51;9524:18;;12585:72:0;9203:345:1;12585:72:0;12694:8;;;;:5;:8;;;;;:20;12676:15;:38;12668:68;;;;-1:-1:-1;;;12668:68:0;;9755:2:1;12668:68:0;;;9737:21:1;9794:2;9774:18;;;9767:30;9833:19;9813:18;;;9806:47;9870:18;;12668:68:0;9553:341:1;12668:68:0;12756:8;;;;:5;:8;;;;;;;;12749:15;;;;;;;;;;;;;;;;;;;;;;;;;;;12782:27;;6979:25:1;;;12798:10:0;7020:18:1;;;7013:83;;;;12782:27:0;;6952:18:1;12782:27:0;6805:297:1;4227:191:0;4320:6;;;-1:-1:-1;;;;;4337:17:0;;;;;;;;;;;4370:40;;4320:6;;;4337:17;4320:6;;4370:40;;4301:16;;4370:40;4290:128;4227:191;:::o;13134:304::-;-1:-1:-1;;;;;13203:18:0;;13195:47;;;;-1:-1:-1;;;13195:47:0;;7309:2:1;13195:47:0;;;7291:21:1;7348:2;7328:18;;;7321:30;7387:18;7367;;;7360:46;7423:18;;13195:47:0;7107:340:1;13195:47:0;13283:10;13261:33;;;;:21;:33;;;;;;;;-1:-1:-1;;;;;13261:39:0;;;;;;;;;;;;13253:68;;;;-1:-1:-1;;;13253:68:0;;4119:2:1;13253:68:0;;;4101:21:1;4158:2;4138:18;;;4131:30;4197:18;4177;;;4170:46;4233:18;;13253:68:0;3917:340:1;13253:68:0;13354:10;13374:5;13332:33;;;:21;:33;;;;;;;;-1:-1:-1;;;;;13332:39:0;;;;;;;;;;;;:47;;-1:-1:-1;;13332:47:0;;;13395:35;;8320:74:1;;;8410:18;;;8403:83;;;;13395:35:0;;8293:18:1;13395:35:0;8146:346:1;14:196;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:1:o;598:610::-;684:6;692;745:2;733:9;724:7;720:23;716:32;713:52;;;761:1;758;751:12;713:52;801:9;788:23;834:18;826:6;823:30;820:50;;;866:1;863;856:12;820:50;889:22;;942:4;934:13;;930:27;-1:-1:-1;920:55:1;;971:1;968;961:12;920:55;1011:2;998:16;1037:18;1029:6;1026:30;1023:50;;;1069:1;1066;1059:12;1023:50;1122:7;1117:2;1107:6;1104:1;1100:14;1096:2;1092:23;1088:32;1085:45;1082:65;;;1143:1;1140;1133:12;1082:65;1174:2;1166:11;;;;;1196:6;;-1:-1:-1;598:610:1;-1:-1:-1;;;598:610:1:o;1213:300::-;1281:6;1289;1342:2;1330:9;1321:7;1317:23;1313:32;1310:52;;;1358:1;1355;1348:12;1310:52;1403:23;;;-1:-1:-1;1469:38:1;1503:2;1488:18;;1469:38;:::i;:::-;1459:48;;1213:300;;;;;:::o;1518:226::-;1577:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:52;;;1646:1;1643;1636:12;1598:52;-1:-1:-1;1691:23:1;;1518:226;-1:-1:-1;1518:226:1:o;2402:254::-;2470:6;2478;2531:2;2519:9;2510:7;2506:23;2502:32;2499:52;;;2547:1;2544;2537:12;2499:52;2570:29;2589:9;2570:29;:::i;:::-;2560:39;2646:2;2631:18;;;;2618:32;;-1:-1:-1;;;2402:254:1:o;2843:374::-;2920:6;2928;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3050:23;;;-1:-1:-1;3116:38:1;3150:2;3135:18;;3116:38;:::i;:::-;3106:48;;3173:38;3207:2;3196:9;3192:18;3173:38;:::i;:::-;3163:48;;2843:374;;;;;:::o;4609:184::-;4661:77;4658:1;4651:88;4758:4;4755:1;4748:15;4782:4;4779:1;4772:15;6521:279;6586:9;;;6607:10;;;6604:190;;;6650:77;6647:1;6640:88;6751:4;6748:1;6741:15;6779:4;6776:1;6769:15;6604:190;6521:279;;;;:::o
Swarm Source
ipfs://07af2d4bf148177adf31a30339dc9c7be24180099919b39702651ef906076dd8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.