ETH Price: $2,310.99 (-0.21%)
Gas: 2.23 Gwei

Contract

0xb8bF093045D5f2E4AAc9062bD11A8f599f6565B5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Nominate New Own...121091982021-03-25 16:37:201271 days ago1616690240IN
Reserve: Eternal Storage
0 ETH0.00716242233
Accept Ownership86863832019-10-06 4:31:281808 days ago1570336288IN
Reserve: Eternal Storage
0 ETH0.000232768

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
86863702019-10-06 4:28:241808 days ago1570336104  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReserveEternalStorage

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, BSD-2-Clause license
/**
 *Submitted for verification at Etherscan.io on 2019-10-06
*/

pragma solidity 0.5.7;
// produced by the Solididy File Flattener (c) David Appleton 2018
// contact : [email protected]
// released under Apache 2.0 licence
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    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.
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    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.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _nominatedOwner;

    event NewOwnerNominated(address indexed previousOwner, address indexed nominee);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Returns the address of the current nominated owner.
     */
    function nominatedOwner() external view returns (address) {
        return _nominatedOwner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _onlyOwner();
        _;
    }

    function _onlyOwner() internal view {
        require(_msgSender() == _owner, "caller is not owner");
    }

    /**
     * @dev Nominates a new owner `newOwner`.
     * Requires a follow-up `acceptOwnership`.
     * Can only be called by the current owner.
     */
    function nominateNewOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "new owner is 0 address");
        emit NewOwnerNominated(_owner, newOwner);
        _nominatedOwner = newOwner;
    }

    /**
     * @dev Accepts ownership of the contract.
     */
    function acceptOwnership() external {
        require(_nominatedOwner == _msgSender(), "unauthorized");
        emit OwnershipTransferred(_owner, _nominatedOwner);
        _owner = _nominatedOwner;
    }

    /** Set `_owner` to the 0 address.
     * Only do this to deliberately lock in the current permissions.
     *
     * THIS CANNOT BE UNDONE! Call this only if you know what you're doing and why you're doing it!
     */
    function renounceOwnership(string calldata declaration) external onlyOwner {
        string memory requiredDeclaration = "I hereby renounce ownership of this contract forever.";
        require(
            keccak256(abi.encodePacked(declaration)) ==
            keccak256(abi.encodePacked(requiredDeclaration)),
            "declaration incorrect");

        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract ReserveEternalStorage is Ownable {

    using SafeMath for uint256;


    // ===== auth =====

    address public reserveAddress;

    event ReserveAddressTransferred(
        address indexed oldReserveAddress,
        address indexed newReserveAddress
    );

    /// On construction, set auth fields.
    constructor() public {
        reserveAddress = _msgSender();
        emit ReserveAddressTransferred(address(0), reserveAddress);
    }

    /// Only run modified function if sent by `reserveAddress`.
    modifier onlyReserveAddress() {
        require(_msgSender() == reserveAddress, "onlyReserveAddress");
        _;
    }

    /// Set `reserveAddress`.
    function updateReserveAddress(address newReserveAddress) external {
        require(newReserveAddress != address(0), "zero address");
        require(_msgSender() == reserveAddress || _msgSender() == owner(), "not authorized");
        emit ReserveAddressTransferred(reserveAddress, newReserveAddress);
        reserveAddress = newReserveAddress;
    }



    // ===== balance =====

    mapping(address => uint256) public balance;

    /// Add `value` to `balance[key]`, unless this causes integer overflow.
    ///
    /// @dev This is a slight divergence from the strict Eternal Storage pattern, but it reduces
    /// the gas for the by-far most common token usage, it's a *very simple* divergence, and
    /// `setBalance` is available anyway.
    function addBalance(address key, uint256 value) external onlyReserveAddress {
        balance[key] = balance[key].add(value);
    }

    /// Subtract `value` from `balance[key]`, unless this causes integer underflow.
    function subBalance(address key, uint256 value) external onlyReserveAddress {
        balance[key] = balance[key].sub(value);
    }

    /// Set `balance[key]` to `value`.
    function setBalance(address key, uint256 value) external onlyReserveAddress {
        balance[key] = value;
    }



    // ===== allowed =====

    mapping(address => mapping(address => uint256)) public allowed;

    /// Set `to`'s allowance of `from`'s tokens to `value`.
    function setAllowed(address from, address to, uint256 value) external onlyReserveAddress {
        allowed[from][to] = value;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"address"},{"name":"value","type":"uint256"}],"name":"addBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"setAllowed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"declaration","type":"string"}],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"address"},{"name":"value","type":"uint256"}],"name":"subBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"address"},{"name":"value","type":"uint256"}],"name":"setBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserveAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newReserveAddress","type":"address"}],"name":"updateReserveAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldReserveAddress","type":"address"},{"indexed":true,"name":"newReserveAddress","type":"address"}],"name":"ReserveAddressTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"nominee","type":"address"}],"name":"NewOwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405234801561001057600080fd5b5060006100216100ca60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506100796100ca60201b60201c565b600280546001600160a01b0319166001600160a01b0392831617908190556040519116906000907feb667ad87f8e94a71252d18843f339e739a788f5641fd00d1404d93f4e547534908290a36100ce565b3390565b610fe1806100dd6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806379ba50971161008c578063e30443bc11610066578063e30443bc146102cc578063e3d670d714610305578063f79ed94b14610338578063f84afd4814610340576100df565b806379ba5097146102835780638da5cb5b1461028b578063cf8eeb7e14610293576100df565b80634fdb7f44116100bd5780634fdb7f441461019557806353a47bb7146102055780635c65816514610236576100df565b80631627540c146100e457806321e5383a1461011957806333dd1b8a14610152575b600080fd5b610117600480360360208110156100fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610373565b005b6101176004803603604081101561012f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561048a565b6101176004803603606081101561016857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610590565b610117600480360360208110156101ab57600080fd5b8101906020810181356401000000008111156101c657600080fd5b8201836020820111156101d857600080fd5b803590602001918460018302840111640100000000831117156101fa57600080fd5b50909250905061066c565b61020d61082b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102716004803603604081101561024c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610847565b60408051918252519081900360200190f35b610117610864565b61020d610988565b610117600480360360408110156102a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109a4565b610117600480360360408110156102e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a7d565b6102716004803603602081101561031b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b49565b61020d610b5b565b6101176004803603602081101561035657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b77565b61037b610d6e565b73ffffffffffffffffffffffffffffffffffffffff81166103fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e6577206f776e65722069732030206164647265737300000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917fb59bab42c554cfd49f4f001c983b6ed93ede25748b10114b7d1cb1b3c97df7af91a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff166104ab610e13565b73ffffffffffffffffffffffffffffffffffffffff161461052d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610563908263ffffffff610e1716565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526003602052604090209190915550565b60025473ffffffffffffffffffffffffffffffffffffffff166105b1610e13565b73ffffffffffffffffffffffffffffffffffffffff161461063357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff92831660009081526004602090815260408083209490951682529290925291902055565b610674610d6e565b6060604051806060016040528060358152602001610f81603591399050806040516020018082805190602001908083835b602083106106e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016106a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120838360405160200180838380828437808301925050509250505060405160208183030381529060405280519060200120146107b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6465636c61726174696f6e20696e636f72726563740000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35050600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905550565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b600460209081526000928352604080842090915290825290205481565b61086c610e13565b60015473ffffffffffffffffffffffffffffffffffffffff9081169116146108f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b6001546000805460405173ffffffffffffffffffffffffffffffffffffffff93841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff166109c5610e13565b73ffffffffffffffffffffffffffffffffffffffff1614610a4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610563908263ffffffff610e9216565b60025473ffffffffffffffffffffffffffffffffffffffff16610a9e610e13565b73ffffffffffffffffffffffffffffffffffffffff1614610b2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260036020526040902055565b60036020526000908152604090205481565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116610bf957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f20616464726573730000000000000000000000000000000000000000604482015290519081900360640190fd5b60025473ffffffffffffffffffffffffffffffffffffffff16610c1a610e13565b73ffffffffffffffffffffffffffffffffffffffff161480610c755750610c3f610988565b73ffffffffffffffffffffffffffffffffffffffff16610c5d610e13565b73ffffffffffffffffffffffffffffffffffffffff16145b610ce057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f7420617574686f72697a6564000000000000000000000000000000000000604482015290519081900360640190fd5b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907feb667ad87f8e94a71252d18843f339e739a788f5641fd00d1404d93f4e54753490600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16610d8f610e13565b73ffffffffffffffffffffffffffffffffffffffff1614610e1157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c6572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b565b3390565b600082820183811015610e8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610e8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f3d578181015183820152602001610f25565b50505050905090810190601f168015610f6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe49206865726562792072656e6f756e6365206f776e657273686970206f66207468697320636f6e747261637420666f72657665722ea165627a7a723058203f41f21ac65fb659dfc5d43511d3d95725f5541fcedf1e3b55b78f90c97a4eff0029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806379ba50971161008c578063e30443bc11610066578063e30443bc146102cc578063e3d670d714610305578063f79ed94b14610338578063f84afd4814610340576100df565b806379ba5097146102835780638da5cb5b1461028b578063cf8eeb7e14610293576100df565b80634fdb7f44116100bd5780634fdb7f441461019557806353a47bb7146102055780635c65816514610236576100df565b80631627540c146100e457806321e5383a1461011957806333dd1b8a14610152575b600080fd5b610117600480360360208110156100fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610373565b005b6101176004803603604081101561012f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561048a565b6101176004803603606081101561016857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610590565b610117600480360360208110156101ab57600080fd5b8101906020810181356401000000008111156101c657600080fd5b8201836020820111156101d857600080fd5b803590602001918460018302840111640100000000831117156101fa57600080fd5b50909250905061066c565b61020d61082b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102716004803603604081101561024c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610847565b60408051918252519081900360200190f35b610117610864565b61020d610988565b610117600480360360408110156102a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109a4565b610117600480360360408110156102e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a7d565b6102716004803603602081101561031b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b49565b61020d610b5b565b6101176004803603602081101561035657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b77565b61037b610d6e565b73ffffffffffffffffffffffffffffffffffffffff81166103fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e6577206f776e65722069732030206164647265737300000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917fb59bab42c554cfd49f4f001c983b6ed93ede25748b10114b7d1cb1b3c97df7af91a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff166104ab610e13565b73ffffffffffffffffffffffffffffffffffffffff161461052d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610563908263ffffffff610e1716565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526003602052604090209190915550565b60025473ffffffffffffffffffffffffffffffffffffffff166105b1610e13565b73ffffffffffffffffffffffffffffffffffffffff161461063357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff92831660009081526004602090815260408083209490951682529290925291902055565b610674610d6e565b6060604051806060016040528060358152602001610f81603591399050806040516020018082805190602001908083835b602083106106e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016106a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120838360405160200180838380828437808301925050509250505060405160208183030381529060405280519060200120146107b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6465636c61726174696f6e20696e636f72726563740000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35050600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905550565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b600460209081526000928352604080842090915290825290205481565b61086c610e13565b60015473ffffffffffffffffffffffffffffffffffffffff9081169116146108f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b6001546000805460405173ffffffffffffffffffffffffffffffffffffffff93841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff166109c5610e13565b73ffffffffffffffffffffffffffffffffffffffff1614610a4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610563908263ffffffff610e9216565b60025473ffffffffffffffffffffffffffffffffffffffff16610a9e610e13565b73ffffffffffffffffffffffffffffffffffffffff1614610b2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7952657365727665416464726573730000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260036020526040902055565b60036020526000908152604090205481565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116610bf957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f20616464726573730000000000000000000000000000000000000000604482015290519081900360640190fd5b60025473ffffffffffffffffffffffffffffffffffffffff16610c1a610e13565b73ffffffffffffffffffffffffffffffffffffffff161480610c755750610c3f610988565b73ffffffffffffffffffffffffffffffffffffffff16610c5d610e13565b73ffffffffffffffffffffffffffffffffffffffff16145b610ce057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f7420617574686f72697a6564000000000000000000000000000000000000604482015290519081900360640190fd5b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907feb667ad87f8e94a71252d18843f339e739a788f5641fd00d1404d93f4e54753490600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16610d8f610e13565b73ffffffffffffffffffffffffffffffffffffffff1614610e1157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c6572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b565b3390565b600082820183811015610e8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610e8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f3d578181015183820152602001610f25565b50505050905090810190601f168015610f6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe49206865726562792072656e6f756e6365206f776e657273686970206f66207468697320636f6e747261637420666f72657665722ea165627a7a723058203f41f21ac65fb659dfc5d43511d3d95725f5541fcedf1e3b55b78f90c97a4eff0029

Deployed Bytecode Sourcemap

8489:2306:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8489:2306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7288:227;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7288:227:0;;;;:::i;:::-;;9963:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9963:133:0;;;;;;;;;:::i;10659:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10659:133:0;;;;;;;;;;;;;;;;;;:::i;8032:450::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8032:450:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8032:450:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8032:450:0;;;;;;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;-1:-1;8032:450:0;;-1:-1:-1;8032:450:0;-1:-1:-1;8032:450:0;:::i;6745:99::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10527:62;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10527:62:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7589:207;;;:::i;6575:79::-;;;:::i;10189:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10189:133:0;;;;;;;;;:::i;10370:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10370:115:0;;;;;;;;;:::i;9591:42::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9591:42:0;;;;:::i;8604:29::-;;;:::i;9192:357::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9192:357:0;;;;:::i;7288:227::-;6969:12;:10;:12::i;:::-;7370:22;;;7362:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7453:6;;;7435:35;;;;;;;7453:6;;;7435:35;;;7481:15;:26;;;;;;;;;;;;;;;7288:227::o;9963:133::-;9096:14;;;;9080:12;:10;:12::i;:::-;:30;;;9072:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10065:12;;;;;;;:7;:12;;;;;;:23;;10082:5;10065:23;:16;:23;:::i;:::-;10050:12;;;;;;;;:7;:12;;;;;:38;;;;-1:-1:-1;9963:133:0:o;10659:::-;9096:14;;;;9080:12;:10;:12::i;:::-;:30;;;9072:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10759:13;;;;;;;;:7;:13;;;;;;;;:17;;;;;;;;;;;;;:25;10659:133::o;8032:450::-;6969:12;:10;:12::i;:::-;8118:33;:91;;;;;;;;;;;;;;;;;;;8326:19;8309:37;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;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;;;8309:37:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8309:37:0;;;8299:48;;;;;;8269:11;;8252:29;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;8252:29:0;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8252:29:0;;;8242:40;;;;;;:105;8220:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8441:1;8425:6;;8404:40;;;8425:6;;;;8404:40;;8441:1;;8404:40;-1:-1:-1;;8472:1:0;8455:19;;;;;;-1:-1:-1;8032:450:0:o;6745:99::-;6821:15;;;;6745:99;:::o;10527:62::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7589:207::-;7663:12;:10;:12::i;:::-;7644:15;;:31;:15;;;:31;;;7636:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7737:15;;;7729:6;;7708:45;;7737:15;;;;;7729:6;;;;7708:45;;;7773:15;;;7764:24;;;;7773:15;;;;7764:24;;;;;;7589:207::o;6575:79::-;6613:7;6640:6;;;6575:79;:::o;10189:133::-;9096:14;;;;9080:12;:10;:12::i;:::-;:30;;;9072:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10291:12;;;;;;;:7;:12;;;;;;:23;;10308:5;10291:23;:16;:23;:::i;10370:115::-;9096:14;;;;9080:12;:10;:12::i;:::-;:30;;;9072:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10457:12;;;;;;;;:7;:12;;;;;:20;10370:115::o;9591:42::-;;;;;;;;;;;;;:::o;8604:29::-;;;;;;:::o;9192:357::-;9277:31;;;9269:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9360:14;;;;9344:12;:10;:12::i;:::-;:30;;;:57;;;;9394:7;:5;:7::i;:::-;9378:23;;:12;:10;:12::i;:::-;:23;;;9344:57;9336:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9462:14;;9436:60;;;;;;;9462:14;;9436:60;;9462:14;;9436:60;9507:14;:34;;;;;;;;;;;;;;;9192:357::o;7009:109::-;7080:6;;;;7064:12;:10;:12::i;:::-;:22;;;7056:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7009:109::o;429:98::-;509:10;429:98;:::o;1022:181::-;1080:7;1112:5;;;1136:6;;;;1128:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1194:1;1022:181;-1:-1:-1;;;1022:181:0:o;1478:136::-;1536:7;1563:43;1567:1;1570;1563:43;;;;;;;;;;;;;;;;;2150:7;2186:12;2178:6;;;;2170:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2170:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2222:5:0;;;2064:192::o

Swarm Source

bzzr://3f41f21ac65fb659dfc5d43511d3d95725f5541fcedf1e3b55b78f90c97a4eff

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

The Reserve token located at 0x1C5857e110CD8411054660F60B5De6a6958CfAE2 uses an eternal storage, in case the token ever has to be re-deployed.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.