ETH Price: $3,320.35 (+0.38%)
Gas: 9 Gwei

Contract

0x91517330816D4727EDc7C3F5Ae4CC5beF02Ec70f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Receipt108133882020-09-07 8:21:041422 days ago1599466864IN
0x91517330...eF02Ec70f
0 ETH0.0212848880
Finish Receipt107349822020-08-26 8:25:591434 days ago1598430359IN
0x91517330...eF02Ec70f
0 ETH0.0051893171
Finish Receipt107349792020-08-26 8:25:351434 days ago1598430335IN
0x91517330...eF02Ec70f
0 ETH0.0055547676
Create Receipt107349652020-08-26 8:23:221434 days ago1598430202IN
0x91517330...eF02Ec70f
0 ETH0.0204857777
Fix Save Time106314552020-08-10 9:46:341450 days ago1597052794IN
0x91517330...eF02Ec70f
0 ETH0.00282292103
Create Receipt106311802020-08-10 8:45:311450 days ago1597049131IN
0x91517330...eF02Ec70f
0 ETH0.02740304103.00000145
Create Receipt106117712020-08-07 9:04:031453 days ago1596791043IN
0x91517330...eF02Ec70f
0 ETH0.0149800750.6
Finish Receipt105972662020-08-05 3:13:151455 days ago1596597195IN
0x91517330...eF02Ec70f
0 ETH0.0027769238
Create Receipt104681122020-07-16 3:26:021475 days ago1594869962IN
0x91517330...eF02Ec70f
0 ETH0.0093399332
0x60806040101010472020-05-20 5:52:131532 days ago1589953933IN
 Create: LockMapping
0 ETH0.0395196930

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LockMapping

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-05-20
*/

pragma solidity ^0.4.26;


contract Owned {
    address public owner;
    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor () public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require (msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}



contract ERC20 {
  uint256 public totalSupply;
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool); //real elf
  //function transfer(address _to, uint256 _value) public;
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  //function burnTokens(uint256 _amount) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract LockMapping is Owned {

    using SafeMath for uint256;
	event NewReceipt(uint256 receiptId, address asset, address owner, uint256 endTime);

	address public asset = 0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e;
	uint256 public saveTime = 86400*15; //15 days;
    uint256 public receiptCount = 0;

	struct Receipt {

		address asset;		
	    address owner;
	    string targetAddress;
	    uint256 amount;
	    uint256 startTime;
	    uint256 endTime;
	    bool finished;

  	}


  	Receipt[] public receipts;

  	mapping (uint256 => address) private receiptToOwner;
  	mapping (address => uint256[]) private ownerToReceipts;


  	modifier haveAllowance(address _asset, uint256 _amount) {

  		uint256 allowance = ERC20(asset).allowance(msg.sender, address(this));
	    require(allowance >= _amount);
	    _;
	}

	modifier exceedEndtime(uint256 _id) {

	    require(receipts[_id].endTime != 0 && receipts[_id].endTime <= now);
	    _;
	}

	modifier notFinished(uint256 _id) {

	    require(receipts[_id].finished == false);
	    _;
	}


  	function _createReceipt(
  		address _asset,
  		address _owner,
  		string _targetAddress,
  		uint256 _amount,
  		uint256 _startTime,
  		uint256 _endTime,
  		bool _finished
  		) internal {

	    uint256 id = receipts.push(Receipt(_asset, _owner, _targetAddress, _amount, _startTime, _endTime, _finished)) - 1;

        receiptCount = id + 1;
	    receiptToOwner[id] = msg.sender;
	    ownerToReceipts[msg.sender].push(id);
	    emit NewReceipt(id, _asset, _owner, _endTime);
	}


	//create new receipt
	function createReceipt(uint256 _amount, string targetAddress) external haveAllowance(asset,_amount) {

		//other processes

		//deposit token to this contract
		require (ERC20(asset).transferFrom(msg.sender, address(this), _amount));

		//
	    _createReceipt(asset, msg.sender, targetAddress, _amount, now, now + saveTime, false );
  	}

  	//finish the receipt and withdraw bonus and token
  	function finishReceipt(uint256 _id) external notFinished(_id) exceedEndtime(_id) {
        // only receipt owner can finish receipt
        require (msg.sender == receipts[_id].owner);
        ERC20(asset).transfer(receipts[_id].owner, receipts[_id].amount );
	    receipts[_id].finished = true;
  	}

    function getMyReceipts(address _address) external view returns (uint256[]){

        return ownerToReceipts[_address];

    }

    function getLockTokens(address _address) external view returns (uint256){
        uint256[] memory myReceipts = ownerToReceipts[_address!=address(0) ? _address:msg.sender];
        uint256 amount = 0;

        for(uint256 i=0; i< myReceipts.length; i++) {
            if(receipts[myReceipts[i]].finished == false){
                amount += receipts[myReceipts[i]].amount;
            }

        }

        return amount;
    }

  	function fixSaveTime(uint256 _period) external onlyOwner {
  		saveTime = _period;
  	}

    function getReceiptInfo(uint256 index) public view returns(bytes32, string, uint256, bool){

        return (sha256(index), receipts[index].targetAddress, receipts[index].amount, receipts[index].finished);

    }
}


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;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"receipts","outputs":[{"name":"asset","type":"address"},{"name":"owner","type":"address"},{"name":"targetAddress","type":"string"},{"name":"amount","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"endTime","type":"uint256"},{"name":"finished","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saveTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"asset","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getMyReceipts","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"targetAddress","type":"string"}],"name":"createReceipt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_period","type":"uint256"}],"name":"fixSaveTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"receiptCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLockTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"finishReceipt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getReceiptInfo","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiptId","type":"uint256"},{"indexed":false,"name":"asset","type":"address"},{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"NewReceipt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405273bf2179859fc6d5bee9bf9158632dc51678a4100e600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506213c6806002556000600355336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115ba806100b46000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630f7ee1ec146100bf57806310e7b9f2146101eb57806338d52e0f1461021657806343c0948e1461026d5780634cc08a27146103055780636af3356b1461034a5780637f038f3c146103775780638da5cb5b146103a25780639b98a94b146103f95780639fcf4ff114610450578063b97912ff1461047d578063f2fde38b14610544575b600080fd5b3480156100cb57600080fd5b506100ea60048036038101908080359060200190929190505050610587565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200186815260200185815260200184815260200183151515158152602001828103825287818151815260200191508051906020019080838360005b838110156101aa57808201518184015260208101905061018f565b50505050905090810190601f1680156101d75780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101f757600080fd5b506102006106bd565b6040518082815260200191505060405180910390f35b34801561022257600080fd5b5061022b6106c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027957600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102f15780820151818401526020810190506102d6565b505050509050019250505060405180910390f35b34801561031157600080fd5b5061034860048036038101908080359060200190929190803590602001908201803590602001919091929391929390505050610780565b005b34801561035657600080fd5b5061037560048036038101908080359060200190929190505050610a92565b005b34801561038357600080fd5b5061038c610af7565b6040518082815260200191505060405180910390f35b3480156103ae57600080fd5b506103b7610afd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040557600080fd5b5061043a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b22565b6040518082815260200191505060405180910390f35b34801561045c57600080fd5b5061047b60048036038101908080359060200190929190505050610cac565b005b34801561048957600080fd5b506104a860048036038101908080359060200190929190505050610f63565b6040518085600019166000191681526020018060200184815260200183151515158152602001828103825285818151815260200191508051906020019080838360005b838110156105065780820151818401526020810190506104eb565b50505050905090810190601f1680156105335780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561055057600080fd5b50610585600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d9565b005b60048181548110151561059657fe5b90600052602060002090600702016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561068e5780601f106106635761010080835404028352916020019161068e565b820191906000526020600020905b81548152906001019060200180831161067157829003601f168201915b5050505050908060030154908060040154908060050154908060060160009054906101000a900460ff16905087565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561077457602002820191906000526020600020905b815481526020019060010190808311610760575b50505050509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561089757600080fd5b505af11580156108ab573d6000803e3d6000fd5b505050506040513d60208110156108c157600080fd5b810190808051906020019092919050505090508181101515156108e357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b81019080805190602001909291905050501515610a2257600080fd5b610a8a600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163387878080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508942600254420160006111f2565b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aed57600080fd5b8060028190555050565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006060600080600660008073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610b675733610b69565b865b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610bed57602002820191906000526020600020905b815481526020019060010190808311610bd9575b5050505050925060009150600090505b8251811015610ca1576000151560048483815181101515610c1a57fe5b90602001906020020151815481101515610c3057fe5b906000526020600020906007020160060160009054906101000a900460ff1615151415610c945760048382815181101515610c6757fe5b90602001906020020151815481101515610c7d57fe5b906000526020600020906007020160030154820191505b8080600101915050610bfd565b819350505050919050565b8060001515600482815481101515610cc057fe5b906000526020600020906007020160060160009054906101000a900460ff161515141515610ced57600080fd5b816000600482815481101515610cff57fe5b90600052602060002090600702016005015414158015610d3f575042600482815481101515610d2a57fe5b90600052602060002090600702016005015411155b1515610d4a57600080fd5b600483815481101515610d5957fe5b906000526020600020906007020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600485815481101515610e1157fe5b906000526020600020906007020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600486815481101515610e5257fe5b9060005260206000209060070201600301546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d6020811015610f1357600080fd5b8101908080519060200190929190505050506001600484815481101515610f3657fe5b906000526020600020906007020160060160006101000a81548160ff021916908315150217905550505050565b60006060600080600285604051808281526020019150506020604051808303816000865af1158015610f99573d6000803e3d6000fd5b5050506040513d6020811015610fae57600080fd5b8101908080519060200190929190505050600486815481101515610fce57fe5b9060005260206000209060070201600201600487815481101515610fee57fe5b90600052602060002090600702016003015460048881548110151561100f57fe5b906000526020600020906007020160060160009054906101000a900460ff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110c35780601f10611098576101008083540402835291602001916110c3565b820191906000526020600020905b8154815290600101906020018083116110a657829003601f168201915b5050505050925093509350935093509193509193565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561113457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001600460e0604051908101604052808b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018881526020018781526020018681526020018515158152509080600181540180825580915050906001820390600052602060002090600702016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201908051906020019061132f9291906114e9565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff021916908315150217905550505003905060018101600381905550336005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055507fe3b5ea43ee8fe1c736c8c1cbb87454d3cca6c7e1814756f9b720dd8b2dd2885781898986604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a15050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061152a57805160ff1916838001178555611558565b82800160010185558215611558579182015b8281111561155757825182559160200191906001019061153c565b5b5090506115659190611569565b5090565b61158b91905b8082111561158757600081600090555060010161156f565b5090565b905600a165627a7a72305820c6b5d6164ce58b9646c30d157e72e0b5f36afa7a70d6d1928aa67148b1c7dcc60029

Deployed Bytecode

0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630f7ee1ec146100bf57806310e7b9f2146101eb57806338d52e0f1461021657806343c0948e1461026d5780634cc08a27146103055780636af3356b1461034a5780637f038f3c146103775780638da5cb5b146103a25780639b98a94b146103f95780639fcf4ff114610450578063b97912ff1461047d578063f2fde38b14610544575b600080fd5b3480156100cb57600080fd5b506100ea60048036038101908080359060200190929190505050610587565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200186815260200185815260200184815260200183151515158152602001828103825287818151815260200191508051906020019080838360005b838110156101aa57808201518184015260208101905061018f565b50505050905090810190601f1680156101d75780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101f757600080fd5b506102006106bd565b6040518082815260200191505060405180910390f35b34801561022257600080fd5b5061022b6106c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027957600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102f15780820151818401526020810190506102d6565b505050509050019250505060405180910390f35b34801561031157600080fd5b5061034860048036038101908080359060200190929190803590602001908201803590602001919091929391929390505050610780565b005b34801561035657600080fd5b5061037560048036038101908080359060200190929190505050610a92565b005b34801561038357600080fd5b5061038c610af7565b6040518082815260200191505060405180910390f35b3480156103ae57600080fd5b506103b7610afd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040557600080fd5b5061043a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b22565b6040518082815260200191505060405180910390f35b34801561045c57600080fd5b5061047b60048036038101908080359060200190929190505050610cac565b005b34801561048957600080fd5b506104a860048036038101908080359060200190929190505050610f63565b6040518085600019166000191681526020018060200184815260200183151515158152602001828103825285818151815260200191508051906020019080838360005b838110156105065780820151818401526020810190506104eb565b50505050905090810190601f1680156105335780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561055057600080fd5b50610585600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d9565b005b60048181548110151561059657fe5b90600052602060002090600702016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561068e5780601f106106635761010080835404028352916020019161068e565b820191906000526020600020905b81548152906001019060200180831161067157829003601f168201915b5050505050908060030154908060040154908060050154908060060160009054906101000a900460ff16905087565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561077457602002820191906000526020600020905b815481526020019060010190808311610760575b50505050509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561089757600080fd5b505af11580156108ab573d6000803e3d6000fd5b505050506040513d60208110156108c157600080fd5b810190808051906020019092919050505090508181101515156108e357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b81019080805190602001909291905050501515610a2257600080fd5b610a8a600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163387878080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508942600254420160006111f2565b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aed57600080fd5b8060028190555050565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006060600080600660008073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610b675733610b69565b865b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610bed57602002820191906000526020600020905b815481526020019060010190808311610bd9575b5050505050925060009150600090505b8251811015610ca1576000151560048483815181101515610c1a57fe5b90602001906020020151815481101515610c3057fe5b906000526020600020906007020160060160009054906101000a900460ff1615151415610c945760048382815181101515610c6757fe5b90602001906020020151815481101515610c7d57fe5b906000526020600020906007020160030154820191505b8080600101915050610bfd565b819350505050919050565b8060001515600482815481101515610cc057fe5b906000526020600020906007020160060160009054906101000a900460ff161515141515610ced57600080fd5b816000600482815481101515610cff57fe5b90600052602060002090600702016005015414158015610d3f575042600482815481101515610d2a57fe5b90600052602060002090600702016005015411155b1515610d4a57600080fd5b600483815481101515610d5957fe5b906000526020600020906007020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600485815481101515610e1157fe5b906000526020600020906007020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600486815481101515610e5257fe5b9060005260206000209060070201600301546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d6020811015610f1357600080fd5b8101908080519060200190929190505050506001600484815481101515610f3657fe5b906000526020600020906007020160060160006101000a81548160ff021916908315150217905550505050565b60006060600080600285604051808281526020019150506020604051808303816000865af1158015610f99573d6000803e3d6000fd5b5050506040513d6020811015610fae57600080fd5b8101908080519060200190929190505050600486815481101515610fce57fe5b9060005260206000209060070201600201600487815481101515610fee57fe5b90600052602060002090600702016003015460048881548110151561100f57fe5b906000526020600020906007020160060160009054906101000a900460ff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110c35780601f10611098576101008083540402835291602001916110c3565b820191906000526020600020905b8154815290600101906020018083116110a657829003601f168201915b5050505050925093509350935093509193509193565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561113457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001600460e0604051908101604052808b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018881526020018781526020018681526020018515158152509080600181540180825580915050906001820390600052602060002090600702016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201908051906020019061132f9291906114e9565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff021916908315150217905550505003905060018101600381905550336005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055507fe3b5ea43ee8fe1c736c8c1cbb87454d3cca6c7e1814756f9b720dd8b2dd2885781898986604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a15050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061152a57805160ff1916838001178555611558565b82800160010185558215611558579182015b8281111561155757825182559160200191906001019061153c565b5b5090506115659190611569565b5090565b61158b91905b8082111561158757600081600090555060010161156f565b5090565b905600a165627a7a72305820c6b5d6164ce58b9646c30d157e72e0b5f36afa7a70d6d1928aa67148b1c7dcc60029

Deployed Bytecode Sourcemap

1209:3241:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1719:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1719:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1435:34:0;;;;;;;;;;;;;;;;;;;;;;;1366:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1366:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3551:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3551:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3551:129:0;;;;;;;;;;;;;;;;;2831:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2831:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4134:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4134:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;1487:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1487:31:0;;;;;;;;;;;;;;;;;;;;;;;52:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3688:439;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3688:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3238:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3238:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;4231:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4231:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4231:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;312:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1435:34::-;;;;:::o;1366:65::-;;;;;;;;;;;;;:::o;3551:129::-;3615:9;3645:15;:25;3661:8;3645:25;;;;;;;;;;;;;;;3638:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3551:129;;;:::o;2831:346::-;2916:5;;;;;;;;;;;2922:7;1938:17;1964:5;;;;;;;;;;;1958:22;;;1981:10;2001:4;1958:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1958:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1958:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1958:49:0;;;;;;;;;;;;;;;;1938:69;;2036:7;2023:9;:20;;2015:29;;;;;;;;3012:5;;;;;;;;;;;3006:25;;;3032:10;3052:4;3059:7;3006:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3006:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3006:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3006:61:0;;;;;;;;;;;;;;;;2997:71;;;;;;;;3084:86;3099:5;;;;;;;;;;;3106:10;3118:13;;3084:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3133:7;3142:3;3153:8;;3147:3;:14;3163:5;3084:14;:86::i;:::-;2831:346;;;;;;:::o;4134:89::-;278:5;;;;;;;;;;;264:19;;:10;:19;;;255:29;;;;;;;;4209:7;4198:8;:18;;;;4134:89;:::o;1487:31::-;;;;:::o;52:20::-;;;;;;;;;;;;;:::o;3688:439::-;3752:7;3771:27;3871:14;3906:9;3801:15;:59;3835:1;3817:20;;:8;:20;;;;:42;;3849:10;3817:42;;;3840:8;3817:42;3801:59;;;;;;;;;;;;;;;3771:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3888:1;3871:18;;3916:1;3906:11;;3902:192;3922:10;:17;3919:1;:20;3902:192;;;4000:5;3964:41;;:8;3973:10;3984:1;3973:13;;;;;;;;;;;;;;;;;;3964:23;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:41;;;3961:120;;;4035:8;4044:10;4055:1;4044:13;;;;;;;;;;;;;;;;;;4035:23;;;;;;;;;;;;;;;;;;;;:30;;;4025:40;;;;3961:120;3941:3;;;;;;;3902:192;;;4113:6;4106:13;;3688:439;;;;;;:::o;3238:305::-;3295:3;2273:5;2247:31;;:8;2256:3;2247:13;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:31;;;2239:40;;;;;;;;3314:3;2142:1;2117:8;2126:3;2117:13;;;;;;;;;;;;;;;;;;;;:21;;;:26;;:58;;;;;2172:3;2147:8;2156:3;2147:13;;;;;;;;;;;;;;;;;;;;:21;;;:28;;2117:58;2109:67;;;;;;;;3403:8;3412:3;3403:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;3389:33;;:10;:33;;;3380:43;;;;;;;;3440:5;;;;;;;;;;;3434:21;;;3456:8;3465:3;3456:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;3477:8;3486:3;3477:13;;;;;;;;;;;;;;;;;;;;:20;;;3434:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3434:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3434:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3434:65:0;;;;;;;;;;;;;;;;;3532:4;3507:8;3516:3;3507:13;;;;;;;;;;;;;;;;;;;;:22;;;:29;;;;;;;;;;;;;;;;;;2287:1;3238:305;;:::o;4231:216::-;4290:7;4299:6;4307:7;4316:4;4342:13;4349:5;4342:13;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4342:13:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4342:13:0;;;;;;;;;;;;;;;;4357:8;4366:5;4357:15;;;;;;;;;;;;;;;;;;;;:29;;4388:8;4397:5;4388:15;;;;;;;;;;;;;;;;;;;;:22;;;4412:8;4421:5;4412:15;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;4334:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:216;;;;;:::o;312:150::-;278:5;;;;;;;;;;;264:19;;:10;:19;;;255:29;;;;;;;;418:8;390:37;;411:5;;;;;;;;;;;390:37;;;;;;;;;;;;446:8;438:5;;:16;;;;;;;;;;;;;;;;;;312:150;:::o;2302:499::-;2513:10;2625:1;2526:8;2540:81;;;;;;;;;2548:6;2540:81;;;;;;2556:6;2540:81;;;;;;2564:14;2540:81;;;;2580:7;2540:81;;;;2589:10;2540:81;;;;2601:8;2540:81;;;;2611:9;2540:81;;;;;2526:96;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2526:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:100;2513:113;;2659:1;2654:2;:6;2639:12;:21;;;;2689:10;2668:14;:18;2683:2;2668:18;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2707:15;:27;2723:10;2707:27;;;;;;;;;;;;;;;2740:2;2707:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2707:36:0;;;;;;;;;;;;;;;;;;;;;;2756:40;2767:2;2771:6;2779;2787:8;2756:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2302:499;;;;;;;;:::o;1209:3241::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://c6b5d6164ce58b9646c30d157e72e0b5f36afa7a70d6d1928aa67148b1c7dcc6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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