Overview
ETH Balance
0.546871660932258768 ETH
Eth Value
$864.82 (@ $1,581.39/ETH)More Info
Private Name Tags
ContractCreator
Latest 4 from a total of 4 transactions
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Request Relay En... | 16834850 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834832 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834803 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834753 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834740 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834728 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834708 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834694 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834681 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834664 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16834645 | 767 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16827649 | 768 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16827562 | 768 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16827545 | 768 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16827527 | 768 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16827506 | 768 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16827374 | 768 days ago | 0.06433962 ETH | ||||
Request Relay En... | 16819635 | 769 days ago | 0.06433962 ETH | ||||
- | 14906544 | 1050 days ago | 0.06433962 ETH | ||||
- | 14897703 | 1052 days ago | 0.06433962 ETH | ||||
- | 14857421 | 1058 days ago | 0.06433962 ETH | ||||
- | 14734985 | 1078 days ago | 0.06433962 ETH | ||||
- | 14734981 | 1078 days ago | 0.06433962 ETH | ||||
- | 14668050 | 1089 days ago | 0.06433962 ETH | ||||
- | 14667141 | 1089 days ago | 0.06433962 ETH |
Loading...
Loading
Contract Name:
KeepRandomBeaconService
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity Standard Json-Input format)
/** ▓▓▌ ▓▓ ▐▓▓ ▓▓▓▓▓▓▓▓▓▓▌▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▄ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▌▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▀ ▐▓▓▓▓▓▓ ▐▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▐▓▓▓▓▓▌ ▐▓▓▓▓▓▓ ▓▓▓▓▓▓▄▄▓▓▓▓▓▓▓▀ ▐▓▓▓▓▓▓▄▄▄▄ ▓▓▓▓▓▓▄▄▄▄ ▐▓▓▓▓▓▌ ▐▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▀ ▐▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▌ ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▀▀▓▓▓▓▓▓▄ ▐▓▓▓▓▓▓▀▀▀▀ ▓▓▓▓▓▓▀▀▀▀ ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀ ▓▓▓▓▓▓ ▀▓▓▓▓▓▓▄ ▐▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▐▓▓▓▓▓▌ ▓▓▓▓▓▓▓▓▓▓ █▓▓▓▓▓▓▓▓▓ ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ Trust math, not hardware. */ pragma solidity 0.5.17; import "openzeppelin-solidity/contracts/math/SafeMath.sol"; import "@openzeppelin/upgrades/contracts/upgradeability/Proxy.sol"; /// @title Keep Random Beacon service /// @notice A proxy contract to provide upgradable Random Beacon functionality. /// All calls to this proxy contract are delegated to the implementation contract. contract KeepRandomBeaconService is Proxy { using SafeMath for uint256; /// @dev Storage slot with the admin of the contract. /// This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1. /// It is validated in the constructor. bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; /// @dev Storage slot with the address of the current implementation. /// This is the keccak-256 hash of "eip1967.proxy.implementation" /// subtracted by 1. It is validated in the constructor. bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /// @dev Storage slot with the upgrade time delay. Upgrade time delay /// defines a period for implementation upgrade. This is the keccak-256 /// hash of "network.keep.randombeacon.proxy.upgradeTimeDelay" /// subtracted by 1. It is validated in the constructor. bytes32 internal constant UPGRADE_TIME_DELAY_SLOT = 0x73bbd307af06a74c12a4f925288c98f759a1ee8fee7eae47a0c215cb63ef2c6b; /// @dev Storage slot with the new implementation address. This is the /// keccak-256 hash of "network.keep.randombeacon.proxy.upgradeImplementation" /// subtracted by 1. It is validated in the constructor. bytes32 internal constant UPGRADE_IMPLEMENTATION_SLOT = 0x3c3c1acab6a17c8ef7a1d07995c8ed2942488afd9e13cf89bd5c6e4828160276; /// @dev Storage slot with the implementation address upgrade initiation. /// This is the keccak-256 hash of "network.keep.randombeacon.proxy.upgradeInitiatedTimestamp" /// subtracted by 1. It is validated in the constructor. bytes32 internal constant UPGRADE_INIT_TIMESTAMP_SLOT = 0xb49edbaf3913780c2ef1ff781deec1eb653eab7236ff107428d60052d0f0d18d; /// @notice Implementation initialization data to be used on the second step /// of upgrade. /// @dev Mapping is stored at the position calculated with keccak256 of the /// new implementation address. Hence, it should be protected from clashing /// with implementation's fields. mapping(address => bytes) public initializationData; event UpgradeStarted(address implementation, uint256 timestamp); event UpgradeCompleted(address implementation); constructor(address _implementation, bytes memory _data) public { assertSlot(IMPLEMENTATION_SLOT, "eip1967.proxy.implementation"); assertSlot(ADMIN_SLOT, "eip1967.proxy.admin"); assertSlot(UPGRADE_TIME_DELAY_SLOT, "network.keep.randombeacon.proxy.upgradeTimeDelay"); assertSlot(UPGRADE_IMPLEMENTATION_SLOT, "network.keep.randombeacon.proxy.upgradeImplementation"); assertSlot(UPGRADE_INIT_TIMESTAMP_SLOT, "network.keep.randombeacon.proxy.upgradeInitiatedTimestamp"); require( _implementation != address(0), "Implementation address can't be zero." ); if (_data.length > 0) { initializeImplementation(_implementation, _data); } setImplementation(_implementation); setUpgradeTimeDelay(1 days); setAdmin(msg.sender); } /// @notice Starts upgrade of the current vendor implementation. /// @dev It is the first part of the two-step implementation address update /// process. The function emits an event containing the new value and current /// block timestamp. /// @param _newImplementation Address of the new vendor implementation contract. /// @param _data Delegate call data for implementation initialization. function upgradeTo(address _newImplementation, bytes memory _data) public onlyAdmin { address currentImplementation = _implementation(); require( _newImplementation != address(0), "Implementation address can't be zero." ); require( _newImplementation != currentImplementation, "Implementation address must be different from the current one." ); initializationData[_newImplementation] = _data; setNewImplementation(_newImplementation); /* solium-disable-next-line security/no-block-members */ setUpgradeInitiatedTimestamp(block.timestamp); /* solium-disable-next-line security/no-block-members */ emit UpgradeStarted(_newImplementation, block.timestamp); } /// @notice Finalizes implementation address upgrade. /// @dev It is the second part of the two-step implementation address update /// process. The function emits an event containing the new implementation /// address. It can be called after upgrade time delay period has passed since /// upgrade initiation. function completeUpgrade() public onlyAdmin { require(upgradeInitiatedTimestamp() > 0, "Upgrade not initiated"); require( /* solium-disable-next-line security/no-block-members */ block.timestamp.sub(upgradeInitiatedTimestamp()) >= upgradeTimeDelay(), "Timer not elapsed" ); address newImplementation = newImplementation(); setImplementation(newImplementation); bytes memory data = initializationData[newImplementation]; if (data.length > 0) { initializeImplementation(newImplementation, data); } setUpgradeInitiatedTimestamp(0); emit UpgradeCompleted(newImplementation); } /// @notice Initializes implementation contract. /// @dev Delegates a call to the implementation with provided data. It is /// expected that data contains details of function to be called. /// @param _implementation Address of the new vendor implementation contract. /// @param _data Delegate call data for implementation initialization. function initializeImplementation( address _implementation, bytes memory _data ) internal { (bool success, bytes memory returnData) = _implementation.delegatecall( _data ); require(success, string(returnData)); } /// @notice Asserts correct slot for provided key. /// @dev To avoid clashing with implementation's fields the proxy contract /// defines its' fields on specific slots. Slot is calculated as hash of a /// string subtracted by 1 to reduce chances of a possible attack. /// For details see EIP-1967. function assertSlot(bytes32 slot, bytes memory key) internal pure { assert(slot == bytes32(uint256(keccak256(key)) - 1)); } /// @dev Gets the address of the current implementation. /// @return address of the current implementation. function implementation() public view returns (address) { return _implementation(); } /// @notice Returns the current implementation. Implements function from `Proxy` /// contract. /// @return Address of the current implementation function _implementation() internal view returns (address impl) { bytes32 slot = IMPLEMENTATION_SLOT; /* solium-disable-next-line */ assembly { impl := sload(slot) } } /// @notice Sets the address of the current implementation. /// @param _implementation address representing the new implementation to be set. function setImplementation(address _implementation) internal { bytes32 slot = IMPLEMENTATION_SLOT; /* solium-disable-next-line */ assembly { sstore(slot, _implementation) } } function upgradeTimeDelay() public view returns (uint256 _upgradeTimeDelay) { bytes32 position = UPGRADE_TIME_DELAY_SLOT; /* solium-disable-next-line */ assembly { _upgradeTimeDelay := sload(position) } } function setUpgradeTimeDelay(uint256 _upgradeTimeDelay) internal { bytes32 position = UPGRADE_TIME_DELAY_SLOT; /* solium-disable-next-line */ assembly { sstore(position, _upgradeTimeDelay) } } function newImplementation() public view returns (address _newImplementation) { bytes32 position = UPGRADE_IMPLEMENTATION_SLOT; /* solium-disable-next-line */ assembly { _newImplementation := sload(position) } } function setNewImplementation(address _newImplementation) internal { bytes32 position = UPGRADE_IMPLEMENTATION_SLOT; /* solium-disable-next-line */ assembly { sstore(position, _newImplementation) } } function upgradeInitiatedTimestamp() public view returns (uint256 _upgradeInitiatedTimestamp) { bytes32 position = UPGRADE_INIT_TIMESTAMP_SLOT; /* solium-disable-next-line */ assembly { _upgradeInitiatedTimestamp := sload(position) } } function setUpgradeInitiatedTimestamp(uint256 _upgradeInitiatedTimestamp) internal { bytes32 position = UPGRADE_INIT_TIMESTAMP_SLOT; /* solium-disable-next-line */ assembly { sstore(position, _upgradeInitiatedTimestamp) } } /// @notice The admin slot. /// @return The contract owner's address. function admin() public view returns (address adm) { bytes32 slot = ADMIN_SLOT; /* solium-disable-next-line */ assembly { adm := sload(slot) } } /// @notice Sets the address of the proxy admin. /// @dev Function can be called only by the current admin. /// @param _newAdmin Address of the new proxy admin. function updateAdmin(address _newAdmin) public onlyAdmin { setAdmin(_newAdmin); } /// @notice Sets the address of the proxy admin. /// @param _newAdmin Address of the new proxy admin. function setAdmin(address _newAdmin) internal { bytes32 slot = ADMIN_SLOT; /* solium-disable-next-line */ assembly { sstore(slot, _newAdmin) } } /// @notice Throws if called by any account other than the contract owner. modifier onlyAdmin() { require(msg.sender == admin(), "Caller is not the admin"); _; } }
pragma solidity ^0.5.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, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
pragma solidity ^0.5.0; /** * @title Proxy * @dev Implements delegation of calls to other contracts, with proper * forwarding of return values and bubbling of failures. * It defines a fallback function that delegates all calls to the address * returned by the abstract _implementation() internal function. */ contract Proxy { /** * @dev Fallback function. * Implemented entirely in `_fallback`. */ function () payable external { _fallback(); } /** * @return The Address of the implementation. */ function _implementation() internal view returns (address); /** * @dev Delegates execution to an implementation contract. * This is a low level function that doesn't return to its internal call site. * It will return to the external caller whatever the implementation returns. * @param implementation Address to delegate. */ function _delegate(address implementation) internal { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize) } default { return(0, returndatasize) } } } /** * @dev Function that is run as the first thing in the fallback function. * Can be redefined in derived contracts to add functionality. * Redefinitions must call super._willFallback(). */ function _willFallback() internal { } /** * @dev fallback implementation. * Extracted to enable manual triggering. */ function _fallback() internal { _willFallback(); _delegate(_implementation()); } }
{ "metadata": { "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"implementation","type":"address"}],"name":"UpgradeCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpgradeStarted","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"adm","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"completeUpgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"initializationData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newImplementation","outputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"updateAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradeInitiatedTimestamp","outputs":[{"internalType":"uint256","name":"_upgradeInitiatedTimestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeTimeDelay","outputs":[{"internalType":"uint256","name":"_upgradeTimeDelay","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200124338038062001243833981810160405260408110156200003757600080fd5b8151602083018051604051929492938301929190846401000000008211156200005f57600080fd5b9083019060208201858111156200007557600080fd5b82516401000000008111828201881017156200009057600080fd5b82525081516020918201929091019080838360005b83811015620000bf578181015183820152602001620000a5565b50505050905090810190601f168015620000ed5780820380516001836020036101000a031916815260200191505b5060408181019052601c81527f656970313936372e70726f78792e696d706c656d656e746174696f6e000000006020820152620001489350600080516020620011c5833981519152925090506001600160e01b036200032e16565b60408051808201909152601381527f656970313936372e70726f78792e61646d696e000000000000000000000000006020820152620001a19060008051602062001155833981519152906001600160e01b036200032e16565b620001e16000805160206200117583398151915260001b60405180606001604052806030815260200162001195603091396001600160e01b036200032e16565b620002327f3c3c1acab6a17c8ef7a1d07995c8ed2942488afd9e13cf89bd5c6e482816027660001b60405180606001604052806035815260200162001120603591396001600160e01b036200032e16565b620002837fb49edbaf3913780c2ef1ff781deec1eb653eab7236ff107428d60052d0f0d18d60001b6040518060600160405280603981526020016200120a603991396001600160e01b036200032e16565b6001600160a01b038216620002ca5760405162461bcd60e51b8152600401808060200182810382526025815260200180620011e56025913960400191505060405180910390fd5b805115620002e757620002e782826001600160e01b036200034616565b620002fb826001600160e01b036200048816565b62000312620151806001600160e01b036200049b16565b62000326336001600160e01b03620004ae16565b5050620004c1565b805160208201206000190182146200034257fe5b5050565b60006060836001600160a01b0316836040518082805190602001908083835b60208310620003865780518252601f19909201916020918201910162000365565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114620003e8576040519150601f19603f3d011682016040523d82523d6000602084013e620003ed565b606091505b5091509150818190620004815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620004455781810151838201526020016200042b565b50505050905090810190601f168015620004735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b600080516020620011c583398151915255565b6000805160206200117583398151915255565b6000805160206200115583398151915255565b610c4f80620004d16000396000f3fe6080604052600436106100865760003560e01c80638b677b03116100595780638b677b03146102415780639260315b14610256578063951315261461027d578063e2f273bd14610292578063f851a440146102c557610086565b80630f51d40d146100905780634d055667146101385780635c60da1b1461014d5780636fbc15e91461017e575b61008e6102da565b005b34801561009c57600080fd5b506100c3600480360360208110156100b357600080fd5b50356001600160a01b03166102f4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fd5781810151838201526020016100e5565b50505050905090810190601f16801561012a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014457600080fd5b5061008e61038e565b34801561015957600080fd5b506101626105c7565b604080516001600160a01b039092168252519081900360200190f35b34801561018a57600080fd5b5061008e600480360360408110156101a157600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101cc57600080fd5b8201836020820111156101de57600080fd5b8035906020019184600183028401116401000000008311171561020057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105d7945050505050565b34801561024d57600080fd5b50610162610762565b34801561026257600080fd5b5061026b610787565b60408051918252519081900360200190f35b34801561028957600080fd5b5061026b6107ac565b34801561029e57600080fd5b5061008e600480360360208110156102b557600080fd5b50356001600160a01b03166107d1565b3480156102d157600080fd5b50610162610844565b6102e26102f2565b6102f26102ed610869565b61088e565b565b600060208181529181526040908190208054825160026001831615610100026000190190921691909104601f8101859004850282018501909352828152929091908301828280156103865780601f1061035b57610100808354040283529160200191610386565b820191906000526020600020905b81548152906001019060200180831161036957829003601f168201915b505050505081565b610396610844565b6001600160a01b0316336001600160a01b0316146103f5576040805162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329030b236b4b760491b604482015290519081900360640190fd5b60006103ff6107ac565b11610449576040805162461bcd60e51b8152602060048201526015602482015274155c19dc985919481b9bdd081a5b9a5d1a585d1959605a1b604482015290519081900360640190fd5b610451610787565b61046961045c6107ac565b429063ffffffff6108b216565b10156104b0576040805162461bcd60e51b8152602060048201526011602482015270151a5b595c881b9bdd08195b185c1cd959607a1b604482015290519081900360640190fd5b60006104ba610762565b90506104c5816108fb565b6001600160a01b0381166000908152602081815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156105625780601f1061053757610100808354040283529160200191610562565b820191906000526020600020905b81548152906001019060200180831161054557829003601f168201915b5050505050905060008151111561057d5761057d828261091f565b6105876000610a59565b604080516001600160a01b038416815290517f2711ef8a6ba82dd467437054855e6edfc6424d0fb0127992b419c20f2d2e114e9181900360200190a15050565b60006105d1610869565b90505b90565b6105df610844565b6001600160a01b0316336001600160a01b03161461063e576040805162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329030b236b4b760491b604482015290519081900360640190fd5b6000610648610869565b90506001600160a01b03831661068f5760405162461bcd60e51b8152600401808060200182810382526025815260200180610bf66025913960400191505060405180910390fd5b806001600160a01b0316836001600160a01b031614156106e05760405162461bcd60e51b815260040180806020018281038252603e815260200180610bb8603e913960400191505060405180910390fd5b6001600160a01b038316600090815260208181526040909120835161070792850190610b1f565b5061071183610a7d565b61071a42610a59565b604080516001600160a01b038516815242602082015281517fe3ab72cd1d043aea9afd3c48aae4ee8f59a80381fec6c69ca502e2fb4b4f5c5a929181900390910190a1505050565b7f3c3c1acab6a17c8ef7a1d07995c8ed2942488afd9e13cf89bd5c6e48281602765490565b7f73bbd307af06a74c12a4f925288c98f759a1ee8fee7eae47a0c215cb63ef2c6b5490565b7fb49edbaf3913780c2ef1ff781deec1eb653eab7236ff107428d60052d0f0d18d5490565b6107d9610844565b6001600160a01b0316336001600160a01b031614610838576040805162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329030b236b4b760491b604482015290519081900360640190fd5b61084181610aa1565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156108ad573d6000f35b3d6000fd5b60006108f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ac5565b9392505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b60006060836001600160a01b0316836040518082805190602001908083835b6020831061095d5780518252601f19909201916020918201910161093e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109bd576040519150601f19603f3d011682016040523d82523d6000602084013e6109c2565b606091505b5091509150818190610a525760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a175781810151838201526020016109ff565b50505050905090810190601f168015610a445780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b7fb49edbaf3913780c2ef1ff781deec1eb653eab7236ff107428d60052d0f0d18d55565b7f3c3c1acab6a17c8ef7a1d07995c8ed2942488afd9e13cf89bd5c6e482816027655565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60008184841115610b175760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610a175781810151838201526020016109ff565b505050900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610b6057805160ff1916838001178555610b8d565b82800160010185558215610b8d579182015b82811115610b8d578251825591602001919060010190610b72565b50610b99929150610b9d565b5090565b6105d491905b80821115610b995760008155600101610ba356fe496d706c656d656e746174696f6e2061646472657373206d75737420626520646966666572656e742066726f6d207468652063757272656e74206f6e652e496d706c656d656e746174696f6e20616464726573732063616e2774206265207a65726f2ea265627a7a72315820ea5b4342899b145e8bbdcbb0df0c0af6c0bd8511ebe58f08a3894731a5eb11b164736f6c634300051100326e6574776f726b2e6b6565702e72616e646f6d626561636f6e2e70726f78792e75706772616465496d706c656d656e746174696f6eb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610373bbd307af06a74c12a4f925288c98f759a1ee8fee7eae47a0c215cb63ef2c6b6e6574776f726b2e6b6565702e72616e646f6d626561636f6e2e70726f78792e7570677261646554696d6544656c6179360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc496d706c656d656e746174696f6e20616464726573732063616e2774206265207a65726f2e6e6574776f726b2e6b6565702e72616e646f6d626561636f6e2e70726f78792e75706772616465496e6974696174656454696d657374616d7000000000000000000000000009959798b95d00a3183d20fac298e4594e599eab00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044da35a26f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000001a9589f56c969d6b0d3787ea02322476ead3fb0500000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100865760003560e01c80638b677b03116100595780638b677b03146102415780639260315b14610256578063951315261461027d578063e2f273bd14610292578063f851a440146102c557610086565b80630f51d40d146100905780634d055667146101385780635c60da1b1461014d5780636fbc15e91461017e575b61008e6102da565b005b34801561009c57600080fd5b506100c3600480360360208110156100b357600080fd5b50356001600160a01b03166102f4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fd5781810151838201526020016100e5565b50505050905090810190601f16801561012a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014457600080fd5b5061008e61038e565b34801561015957600080fd5b506101626105c7565b604080516001600160a01b039092168252519081900360200190f35b34801561018a57600080fd5b5061008e600480360360408110156101a157600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101cc57600080fd5b8201836020820111156101de57600080fd5b8035906020019184600183028401116401000000008311171561020057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105d7945050505050565b34801561024d57600080fd5b50610162610762565b34801561026257600080fd5b5061026b610787565b60408051918252519081900360200190f35b34801561028957600080fd5b5061026b6107ac565b34801561029e57600080fd5b5061008e600480360360208110156102b557600080fd5b50356001600160a01b03166107d1565b3480156102d157600080fd5b50610162610844565b6102e26102f2565b6102f26102ed610869565b61088e565b565b600060208181529181526040908190208054825160026001831615610100026000190190921691909104601f8101859004850282018501909352828152929091908301828280156103865780601f1061035b57610100808354040283529160200191610386565b820191906000526020600020905b81548152906001019060200180831161036957829003601f168201915b505050505081565b610396610844565b6001600160a01b0316336001600160a01b0316146103f5576040805162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329030b236b4b760491b604482015290519081900360640190fd5b60006103ff6107ac565b11610449576040805162461bcd60e51b8152602060048201526015602482015274155c19dc985919481b9bdd081a5b9a5d1a585d1959605a1b604482015290519081900360640190fd5b610451610787565b61046961045c6107ac565b429063ffffffff6108b216565b10156104b0576040805162461bcd60e51b8152602060048201526011602482015270151a5b595c881b9bdd08195b185c1cd959607a1b604482015290519081900360640190fd5b60006104ba610762565b90506104c5816108fb565b6001600160a01b0381166000908152602081815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156105625780601f1061053757610100808354040283529160200191610562565b820191906000526020600020905b81548152906001019060200180831161054557829003601f168201915b5050505050905060008151111561057d5761057d828261091f565b6105876000610a59565b604080516001600160a01b038416815290517f2711ef8a6ba82dd467437054855e6edfc6424d0fb0127992b419c20f2d2e114e9181900360200190a15050565b60006105d1610869565b90505b90565b6105df610844565b6001600160a01b0316336001600160a01b03161461063e576040805162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329030b236b4b760491b604482015290519081900360640190fd5b6000610648610869565b90506001600160a01b03831661068f5760405162461bcd60e51b8152600401808060200182810382526025815260200180610bf66025913960400191505060405180910390fd5b806001600160a01b0316836001600160a01b031614156106e05760405162461bcd60e51b815260040180806020018281038252603e815260200180610bb8603e913960400191505060405180910390fd5b6001600160a01b038316600090815260208181526040909120835161070792850190610b1f565b5061071183610a7d565b61071a42610a59565b604080516001600160a01b038516815242602082015281517fe3ab72cd1d043aea9afd3c48aae4ee8f59a80381fec6c69ca502e2fb4b4f5c5a929181900390910190a1505050565b7f3c3c1acab6a17c8ef7a1d07995c8ed2942488afd9e13cf89bd5c6e48281602765490565b7f73bbd307af06a74c12a4f925288c98f759a1ee8fee7eae47a0c215cb63ef2c6b5490565b7fb49edbaf3913780c2ef1ff781deec1eb653eab7236ff107428d60052d0f0d18d5490565b6107d9610844565b6001600160a01b0316336001600160a01b031614610838576040805162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329030b236b4b760491b604482015290519081900360640190fd5b61084181610aa1565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156108ad573d6000f35b3d6000fd5b60006108f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ac5565b9392505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b60006060836001600160a01b0316836040518082805190602001908083835b6020831061095d5780518252601f19909201916020918201910161093e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109bd576040519150601f19603f3d011682016040523d82523d6000602084013e6109c2565b606091505b5091509150818190610a525760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a175781810151838201526020016109ff565b50505050905090810190601f168015610a445780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b7fb49edbaf3913780c2ef1ff781deec1eb653eab7236ff107428d60052d0f0d18d55565b7f3c3c1acab6a17c8ef7a1d07995c8ed2942488afd9e13cf89bd5c6e482816027655565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60008184841115610b175760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610a175781810151838201526020016109ff565b505050900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610b6057805160ff1916838001178555610b8d565b82800160010185558215610b8d579182015b82811115610b8d578251825591602001919060010190610b72565b50610b99929150610b9d565b5090565b6105d491905b80821115610b995760008155600101610ba356fe496d706c656d656e746174696f6e2061646472657373206d75737420626520646966666572656e742066726f6d207468652063757272656e74206f6e652e496d706c656d656e746174696f6e20616464726573732063616e2774206265207a65726f2ea265627a7a72315820ea5b4342899b145e8bbdcbb0df0c0af6c0bd8511ebe58f08a3894731a5eb11b164736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000009959798b95d00a3183d20fac298e4594e599eab00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044da35a26f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000001a9589f56c969d6b0d3787ea02322476ead3fb0500000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _implementation (address): 0x09959798B95d00a3183d20FaC298E4594E599eab
Arg [1] : _data (bytes): 0xda35a26f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000001a9589f56c969d6b0d3787ea02322476ead3fb05
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000009959798b95d00a3183d20fac298e4594e599eab
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [3] : da35a26f00000000000000000000000000000000000000000000000000000000
Arg [4] : 000000010000000000000000000000001a9589f56c969d6b0d3787ea02322476
Arg [5] : ead3fb0500000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
2192:10253:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:11:0;:9;:11::i;:::-;2192:10253:2;4308:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4308:51:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4308:51:2;-1:-1:-1;;;;;4308:51:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4308:51:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6919:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6919:722:2;;;:::i;8859:97::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8859:97:2;;;:::i;:::-;;;;-1:-1:-1;;;;;8859:97:2;;;;;;;;;;;;;;5765:819;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5765:819:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;5765:819:2;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5765:819:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5765:819:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5765:819:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5765:819:2;;-1:-1:-1;5765:819:2;;-1:-1:-1;;;;;5765:819:2:i;10250:287::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10250:287:2;;;:::i;9718:280::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9718:280:2;;;:::i;:::-;;;;;;;;;;;;;;;;10796:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10796:311:2;;;:::i;11851:93::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11851:93:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11851:93:2;-1:-1:-1;;;;;11851:93:2;;:::i;11480:192::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11480:192:2;;;:::i;1952:90:0:-;1988:15;:13;:15::i;:::-;2009:28;2019:17;:15;:17::i;:::-;2009:9;:28::i;:::-;1952:90::o;4308:51:2:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4308:51:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6919:722::-;12390:7;:5;:7::i;:::-;-1:-1:-1;;;;;12376:21:2;:10;-1:-1:-1;;;;;12376:21:2;;12368:57;;;;;-1:-1:-1;;;12368:57:2;;;;;;;;;;;;-1:-1:-1;;;12368:57:2;;;;;;;;;;;;;;;7011:1;6981:27;:25;:27::i;:::-;:31;6973:65;;;;;-1:-1:-1;;;6973:65:2;;;;;;;;;;;;-1:-1:-1;;;6973:65:2;;;;;;;;;;;;;;;7203:18;:16;:18::i;:::-;7139:48;7159:27;:25;:27::i;:::-;7139:15;;:48;:19;:48;:::i;:::-;:82;;7049:215;;;;;-1:-1:-1;;;7049:215:2;;;;;;;;;;;;-1:-1:-1;;;7049:215:2;;;;;;;;;;;;;;;7275:25;7303:19;:17;:19::i;:::-;7275:47;;7333:36;7351:17;7333;:36::i;:::-;-1:-1:-1;;;;;7400:37:2;;:18;:37;;;;;;;;;;;;7380:57;;;;;;-1:-1:-1;;7380:57:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;;:57;;;7400:37;7380:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7465:1;7451:4;:11;:15;7447:95;;;7482:49;7507:17;7526:4;7482:24;:49::i;:::-;7552:31;7581:1;7552:28;:31::i;:::-;7599:35;;;-1:-1:-1;;;;;7599:35:2;;;;;;;;;;;;;;;12435:1;;6919:722::o;8859:97::-;8906:7;8932:17;:15;:17::i;:::-;8925:24;;8859:97;;:::o;5765:819::-;12390:7;:5;:7::i;:::-;-1:-1:-1;;;;;12376:21:2;:10;-1:-1:-1;;;;;12376:21:2;;12368:57;;;;;-1:-1:-1;;;12368:57:2;;;;;;;;;;;;-1:-1:-1;;;12368:57:2;;;;;;;;;;;;;;;5879:29;5911:17;:15;:17::i;:::-;5879:49;-1:-1:-1;;;;;;5959:32:2;;5938:116;;;;-1:-1:-1;;;5938:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6107:21;-1:-1:-1;;;;;6085:43:2;:18;-1:-1:-1;;;;;6085:43:2;;;6064:152;;;;-1:-1:-1;;;6064:152:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6227:38:2;;:18;:38;;;;;;;;;;;:46;;;;;;;;:::i;:::-;;6284:40;6305:18;6284:20;:40::i;:::-;6400:45;6429:15;6400:28;:45::i;:::-;6526:51;;;-1:-1:-1;;;;;6526:51:2;;;;6561:15;6526:51;;;;;;;;;;;;;;;;;12435:1;5765:819;;:::o;10250:287::-;3569:66;10506:15;;10470:61::o;9718:280::-;3221:66;9967:15;;9932:60::o;10796:311::-;3936:66;11076:15;;11032:69::o;11851:93::-;12390:7;:5;:7::i;:::-;-1:-1:-1;;;;;12376:21:2;:10;-1:-1:-1;;;;;12376:21:2;;12368:57;;;;;-1:-1:-1;;;12368:57:2;;;;;;;;;;;;-1:-1:-1;;;12368:57:2;;;;;;;;;;;;;;;11918:19;11927:9;11918:8;:19::i;:::-;11851:93;:::o;11480:192::-;2492:66;11645:11;;11624:42::o;9119:215::-;2818:66;9307:11;;9285:43::o;878:731:0:-;1180:12;1177:1;1174;1161:32;1370:1;1367;1353:12;1350:1;1334:14;1329:3;1316:56;1434:14;1431:1;1428;1413:36;1464:6;1519:36;;;;1582:14;1579:1;1572:25;1519:36;1538:14;1535:1;1528:25;1274:134:1;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1351:50;1274:134;-1:-1:-1;;;1274:134:1:o;9490:222:2:-;2818:66;9667:29;9653:53::o;8005:273::-;8126:12;8140:23;8167:15;-1:-1:-1;;;;;8167:28:2;8209:5;8167:57;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8167:57:2;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;8125:99:2;;;;8243:7;8259:10;8235:36;;;;;-1:-1:-1;;;8235:36:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8235:36:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8005:273;;;;:::o;11113:283::-;3936:66;11336:44;11322:68::o;10543:247::-;3569:66;10738:36;10724:60::o;12060:192::-;2492:66;12213:23;12199:47::o;1732:187:1:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:1;-1:-1:-1;;;1888:5:1;;;1732:187::o;2192:10253:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2192:10253:2;;;-1:-1:-1;2192:10253:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://ea5b4342899b145e8bbdcbb0df0c0af6c0bd8511ebe58f08a3894731a5eb11b1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $1,580.07 | 0.5469 | $864.1 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.