ETH Price: $2,000.08 (-2.98%)

Contract

0x2784dCd08F4B1Bb25AF84fD0b702E2Aa5D5d1D64
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer161989062022-12-16 17:59:231197 days ago1671213563IN
CraftR: CRAFTR Token
0 ETH0.0052948553
Pos155131252022-09-11 5:41:171294 days ago1662874877IN
CraftR: CRAFTR Token
0 ETH0.002892850
Pos147382002022-05-08 20:24:401419 days ago1652041480IN
CraftR: CRAFTR Token
0 ETH0.0011571220
Pos141132762022-01-31 11:06:421516 days ago1643627202IN
CraftR: CRAFTR Token
0 ETH0.002892850
Transfer134410522021-10-18 9:37:101621 days ago1634549830IN
CraftR: CRAFTR Token
0 ETH0.0072081170
Pos133382552021-10-02 6:28:561638 days ago1633156136IN
CraftR: CRAFTR Token
0 ETH0.0028875550
Pos129057972021-07-27 3:37:401705 days ago1627357060IN
CraftR: CRAFTR Token
0 ETH0.0008678415
Transfer127629292021-07-04 19:31:561727 days ago1625427116IN
CraftR: CRAFTR Token
0 ETH0.0014356316
Pos127625952021-07-04 18:17:201727 days ago1625422640IN
CraftR: CRAFTR Token
0 ETH0.0009835517
Transfer120965852021-03-23 17:49:261830 days ago1616521766IN
CraftR: CRAFTR Token
0 ETH0.02088259197
Transfer120965852021-03-23 17:49:261830 days ago1616521766IN
CraftR: CRAFTR Token
0 ETH0.01220513197
Transfer117765832021-02-02 11:35:081879 days ago1612265708IN
CraftR: CRAFTR Token
0 ETH0.00734399131
Transfer117764502021-02-02 11:07:231879 days ago1612264043IN
CraftR: CRAFTR Token
0 ETH0.0087351396
Pos111632022020-10-31 7:06:371973 days ago1604127997IN
CraftR: CRAFTR Token
0 ETH0.0015286923.5
Pos110631032020-10-15 22:19:571989 days ago1602800397IN
CraftR: CRAFTR Token
0 ETH0.0013171220
Transfer109240192020-09-24 7:44:522010 days ago1600933492IN
CraftR: CRAFTR Token
0 ETH0.0054281989
Transfer109239062020-09-24 7:18:332010 days ago1600931913IN
CraftR: CRAFTR Token
0 ETH0.0064603671
Transfer107037772020-08-21 13:12:432044 days ago1598015563IN
CraftR: CRAFTR Token
0 ETH0.0181982200
Transfer107037172020-08-21 13:00:212044 days ago1598014821IN
CraftR: CRAFTR Token
0 ETH0.0211982200
Pos105967902020-08-05 1:27:552061 days ago1596590875IN
CraftR: CRAFTR Token
0 ETH0.0019515330
Pos104581372020-07-14 14:16:282082 days ago1594736188IN
CraftR: CRAFTR Token
0 ETH0.0032269449
Pos102963272020-06-19 12:59:202107 days ago1592571560IN
CraftR: CRAFTR Token
0 ETH0.0026626638
Pos102397762020-06-10 19:14:352116 days ago1591816475IN
CraftR: CRAFTR Token
0 ETH0.0014017421.285
Pos102375862020-06-10 11:10:332116 days ago1591787433IN
CraftR: CRAFTR Token
0 ETH0.0026342440
Transfer102348242020-06-10 0:40:552117 days ago1591749655IN
CraftR: CRAFTR Token
0 ETH0.0020927923
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CraftR

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-09
*/

pragma solidity ^0.5.8;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath 
{
    function mul(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable 
{
    address public owner;

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public
    {
        owner = msg.sender;
    }

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

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner public
    {
        assert(newOwner != address(0));
        owner = newOwner;
    }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic 
{
    uint256 public totalSupply;
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic 
{
    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);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title POS
 * @dev the interface of Proof-Of-Stake
 */
contract POS 
{
    uint256 public stakeStartTime;
    uint256 public stakeMinAge;
    uint256 public stakeMaxAge;
    function pos() public returns (bool);
    function coinAge() public view returns (uint);
    function annualPos() public view returns (uint256);
    event Mint(address indexed _address, uint _reward);
}

contract CraftR is ERC20,POS,Ownable 
{
    using SafeMath for uint256;

    string public name = "CraftR";
    string public symbol = "CRAFTR";
    uint public decimals = 18;

    uint public chainStartTime; 
    uint public chainStartBlockNumber;
    uint public stakeStartTime;
    uint public stakeMinAge = 1 days;
    uint public stakeMaxAge = 90 days;
    uint public defaultPOS = 10**17; // default 10% annual interest

    uint public totalSupply;
    uint public maxTotalSupply;
    uint public totalInitialSupply;

    struct transferInStruct
    {
        uint128 amount;
        uint64 time;
    }

    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;
    mapping(address => transferInStruct[]) txIns;

    event Burn(address indexed burner, uint256 value);

    /**
     * @dev Fix for the ERC20 short address attack.
     */
    modifier onlyPayloadSize(uint size) 
    {
        assert(msg.data.length >= size + 4);
        _;
    }

    modifier canRunPos() 
    {
        assert(totalSupply < maxTotalSupply);
        _;
    }

    constructor () public 
    {
        maxTotalSupply = 100*10**24; // 100 Mil
        totalInitialSupply = 60*10**24; // 60 Mil

        chainStartTime = now;
        chainStartBlockNumber = block.number;
        stakeStartTime = now;

        balances[msg.sender] = totalInitialSupply;
        totalSupply = totalInitialSupply;
    }

    function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) public returns (bool) 
    {
        if(msg.sender == _to) return pos();
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        if(txIns[msg.sender].length > 0) delete txIns[msg.sender];
        uint64 _now = uint64(now);
        txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),_now));
        txIns[_to].push(transferInStruct(uint128(_value),_now));
        return true;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) 
    {
        return balances[_owner];
    }

    function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) public returns (bool) 
    {
        require(_to != address(0));

        uint256 _allowance = allowed[_from][msg.sender];

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        emit Transfer(_from, _to, _value);
        if(txIns[_from].length > 0) delete txIns[_from];
        uint64 _now = uint64(now);
        txIns[_from].push(transferInStruct(uint128(balances[_from]),_now));
        txIns[_to].push(transferInStruct(uint128(_value),_now));
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) 
    {
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));

        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256 remaining) 
    {
        return allowed[_owner][_spender];
    }

    function pos() canRunPos public returns (bool) 
    {
        if(balances[msg.sender] <= 0) return false;
        if(txIns[msg.sender].length <= 0) return false;

        uint reward = getPosReward(msg.sender);
        if(reward <= 0) return false;

        totalSupply = totalSupply.add(reward);
        balances[msg.sender] = balances[msg.sender].add(reward);
        delete txIns[msg.sender];
        txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),uint64(now)));

        emit Mint(msg.sender, reward);
        return true;
    }

    function getCraftrBlockNumber() public view returns (uint blockNumber) 
    {
        blockNumber = block.number.sub(chainStartBlockNumber);
    }

    function coinAge() public view returns (uint myCoinAge) 
    {
        myCoinAge = getCoinAge(msg.sender,now);
    }

    function annualPos() public view returns(uint interest) 
    {
        uint _now = now;
        interest = defaultPOS;
        if((_now.sub(stakeStartTime)).div(365 days) == 0)
        {
            interest = (435 * defaultPOS).div(100);
        }
    }

    function getPosReward(address _address) internal view returns (uint) 
    {
        require( (now >= stakeStartTime) && (stakeStartTime > 0) );

        uint _now = now;
        uint _coinAge = getCoinAge(_address, _now);
        if(_coinAge <= 0) return 0;

        uint interest = defaultPOS;
        // Due to the high interest rate for the first two years, compounding should be taken into account.
        // Effective annual interest rate = (1 + (nominal rate / number of compounding periods)) ^ (number of compounding periods) - 1
        if((_now.sub(stakeStartTime)).div(365 days) == 0) 
        {
            // 2nd year effective annual interest rate is 50% when we select the stakeMaxAge (90 days) as the compounding period.
            // 1st year has already been calculated through the old contract
            interest = (435 * defaultPOS).div(100);
        }
        return (_coinAge * interest).div(365 * (10**decimals));
    }

    function getCoinAge(address _address, uint _now) internal view returns (uint _coinAge) 
    {
        if(txIns[_address].length <= 0) return 0;

        for (uint i = 0; i < txIns[_address].length; i++){
            if( _now < uint(txIns[_address][i].time).add(stakeMinAge) ) continue;

            uint nCoinSeconds = _now.sub(uint(txIns[_address][i].time));
            if( nCoinSeconds > stakeMaxAge ) nCoinSeconds = stakeMaxAge;

            _coinAge = _coinAge.add(uint(txIns[_address][i].amount) * nCoinSeconds.div(1 days));
        }
    }

    function ownerMultiSend(address[] memory _recipients, uint[] memory _values) onlyOwner public returns (bool) 
    {
        require( _recipients.length > 0 && _recipients.length == _values.length);

        uint total = 0;
        for(uint i = 0; i < _values.length; i++)
        {
            total = total.add(_values[i]);
        }
        require(total <= balances[msg.sender]);

        uint64 _now = uint64(now);
        for(uint j = 0; j < _recipients.length; j++)
        {
            balances[_recipients[j]] = balances[_recipients[j]].add(_values[j]);
            txIns[_recipients[j]].push(transferInStruct(uint128(_values[j]),_now));
            emit Transfer(msg.sender, _recipients[j], _values[j]);
        }

        balances[msg.sender] = balances[msg.sender].sub(total);
        if(txIns[msg.sender].length > 0) delete txIns[msg.sender];
        if(balances[msg.sender] > 0) txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),_now));

        return true;
    }

    function ownerBurnTokens(uint _value) onlyOwner public 
    {
        require(_value > 0);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        delete txIns[msg.sender];
        txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),uint64(now)));

        totalSupply = totalSupply.sub(_value);
        totalInitialSupply = totalInitialSupply.sub(_value);
        maxTotalSupply = maxTotalSupply.sub(_value*10);

        emit Burn(msg.sender, _value);
    }   
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"defaultPOS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCraftrBlockNumber","outputs":[{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coinAge","outputs":[{"name":"myCoinAge","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"annualPos","outputs":[{"name":"interest","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chainStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakeStartTime","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalInitialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pos","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakeMinAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chainStartBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"ownerBurnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipients","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"ownerMultiSend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakeMaxAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_reward","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60c0604052600660808190527f437261667452000000000000000000000000000000000000000000000000000060a090815262000040916005919062000110565b506040805180820190915260068082527f4352414654520000000000000000000000000000000000000000000000000000602090920191825262000085918162000110565b50601260075562015180600b556276a700600c5567016345785d8a0000600d55348015620000b257600080fd5b50600480546001600160a01b031916339081179091556a52b7d2dcc80cd2e4000000600f556a31a17e847807b1bc000000601081905542600881905543600955600a55600091825260116020526040909120819055600e55620001b5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015357805160ff191683800117855562000183565b8280016001018555821562000183579182015b828111156200018357825182559160200191906001019062000166565b506200019192915062000195565b5090565b620001b291905b808211156200019157600081556001016200019c565b90565b61153080620001c56000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637419f190116100de578063cbd8877e11610097578063dd62ed3e11610071578063dd62ed3e14610382578063e060edd2146103b0578063e1c3bac6146104d7578063f2fde38b146104df57610173565b8063cbd8877e14610353578063cd474b041461035b578063d15138181461036357610173565b80637419f190146102e35780638da5cb5b146102eb57806395d89b411461030f5780639fd4da4014610317578063a9059cbb1461031f578063c56551b61461034b57610173565b806321ed47b31161013057806321ed47b31461026757806323b872dd1461026f5780632ab4d052146102a5578063313ce567146102ad5780635b054f9b146102b557806370a08231146102bd57610173565b806306fdde0314610178578063095ea7b3146101f55780630d081b6e1461023557806318160ddd1461024f57806318ff837b146102575780631e1b13c01461025f575b600080fd5b610180610505565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61023d610634565b60408051918252519081900360200190f35b61023d61063a565b61023d610640565b61023d61065c565b61023d610668565b6102216004803603606081101561028557600080fd5b506001600160a01b038135811691602081013590911690604001356106ba565b61023d6108f7565b61023d6108fd565b61023d610903565b61023d600480360360208110156102d357600080fd5b50356001600160a01b0316610909565b61023d610928565b6102f361092e565b604080516001600160a01b039092168252519081900360200190f35b61018061093d565b61023d610998565b6102216004803603604081101561033557600080fd5b506001600160a01b03813516906020013561099e565b610221610b84565b61023d610d0a565b61023d610d10565b6103806004803603602081101561037957600080fd5b5035610d16565b005b61023d6004803603604081101561039857600080fd5b506001600160a01b0381358116916020013516610e81565b610221600480360360408110156103c657600080fd5b8101906020810181356401000000008111156103e157600080fd5b8201836020820111156103f357600080fd5b8035906020019184602083028401116401000000008311171561041557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046557600080fd5b82018360208201111561047757600080fd5b8035906020019184602083028401116401000000008311171561049957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610eac945050505050565b61023d611221565b610380600480360360208110156104f557600080fd5b50356001600160a01b0316611227565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b505050505081565b60008115806105c357503360009081526012602090815260408083206001600160a01b0387168452909152902054155b6105cc57600080fd5b3360008181526012602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b600e5481565b60006106576009544361126d90919063ffffffff16565b905090565b6000610657334261127f565b600d54600a544290610697906301e133809061068b90849063ffffffff61126d16565b9063ffffffff6113ec16565b6106b657600d546106b3906101b302606463ffffffff6113ec16565b91505b5090565b6000606060643610156106c957fe5b6001600160a01b0384166106dc57600080fd5b6001600160a01b0385166000818152601260209081526040808320338452825280832054938352601190915290205461071b908563ffffffff61126d16565b6001600160a01b038088166000908152601160205260408082209390935590871681522054610750908563ffffffff61140116565b6001600160a01b038616600090815260116020526040902055610779818563ffffffff61126d16565b6001600160a01b03808816600081815260126020908152604080832033845282529182902094909455805188815290519289169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36001600160a01b03861660009081526013602052604090205415610819576001600160a01b0386166000908152601360205260408120610819916114bf565b5050506001600160a01b0392831660009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018082018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091559b909c1689529686528488208551808701909652988216855284860196875288548085018a559888529490962092519290960180549451909316909602931691909516179091161790915590565b600f5481565b60075481565b60085481565b6001600160a01b0381166000908152601160205260409020545b919050565b600a5481565b6004546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b60105481565b6000604060443610156109ad57fe5b336001600160a01b03851614156109cd576109c6610b84565b9150610b7d565b336000908152601160205260409020546109ed908463ffffffff61126d16565b33600090815260116020526040808220929092556001600160a01b03861681522054610a1f908463ffffffff61140116565b6001600160a01b0385166000818152601160209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a33360009081526013602052604090205415610aa157336000908152601360205260408120610aa1916114bf565b3360009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018181018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091556001600160a01b038f168b52988852868a2087518089019098528d8516885287890192835280548088018255908b5297909920955195909601805496519091169096029316939095169290921790931692909217905591505b5092915050565b6000600f54600e5410610b9357fe5b33600090815260116020526040902054610baf57506000610d07565b33600090815260136020526040902054610bcb57506000610d07565b6000610bd633611417565b905060008111610bea576000915050610d07565b600e54610bfd908263ffffffff61140116565b600e5533600090815260116020526040902054610c20908263ffffffff61140116565b3360009081526011602090815260408083209390935560139052908120610c46916114bf565b3360008181526013602090815260408083208151808301835260118452828520546001600160801b03908116825267ffffffffffffffff42811683870190815284546001810186559488529686902092519290930180549651909316600160801b02600160801b600160c01b0319929091166001600160801b0319909616959095171693909317909255815184815291517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859281900390910190a260019150505b90565b600b5481565b60095481565b6004546001600160a01b03163314610d2a57fe5b60008111610d3757600080fd5b33600090815260116020526040902054610d57908263ffffffff61126d16565b3360009081526011602090815260408083209390935560139052908120610d7d916114bf565b3360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff42811684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b03199093169290921716179055600e54610e16908263ffffffff61126d16565b600e55601054610e2c908263ffffffff61126d16565b601055600f54610e4590600a830263ffffffff61126d16565b600f5560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6004546000906001600160a01b03163314610ec357fe5b60008351118015610ed5575081518351145b610ede57600080fd5b6000805b8351811015610f1b57610f11848281518110610efa57fe5b60200260200101518361140190919063ffffffff16565b9150600101610ee2565b5033600090815260116020526040902054811115610f3857600080fd5b4260005b855181101561112057610fa3858281518110610f5457fe5b602002602001015160116000898581518110610f6c57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461140190919063ffffffff16565b60116000888481518110610fb357fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555060136000878381518110610fef57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061102e57fe5b6020908102919091018101516001600160801b03908116835267ffffffffffffffff87811693830193909352845460018101865560009586529482902084519501805494909201516001600160801b0319909416941693909317600160801b600160c01b031916600160801b929091169190910217905585518690829081106110b357fe5b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8784815181106110fb57fe5b60200260200101516040518082815260200191505060405180910390a3600101610f3c565b5033600090815260116020526040902054611141908363ffffffff61126d16565b336000908152601160209081526040808320939093556013905220541561117a5733600090815260136020526040812061117a916114bf565b3360009081526011602052604090205415611216573360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff80871684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b031990931692909217161790555b506001949350505050565b600c5481565b6004546001600160a01b0316331461123b57fe5b6001600160a01b03811661124b57fe5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60008282111561127957fe5b50900390565b6001600160a01b0382166000908152601360205260408120546112a45750600061062e565b60005b6001600160a01b038416600090815260136020526040902054811015610b7d57600b546001600160a01b03851660009081526013602052604090208054611317929190849081106112f457fe5b600091825260209091200154600160801b900467ffffffffffffffff1690611401565b831015611323576113e4565b6001600160a01b0384166000908152601360205260408120805461137091908490811061134c57fe5b6000918252602090912001548590600160801b900467ffffffffffffffff1661126d565b9050600c548111156113815750600c545b6113e0611397826201518063ffffffff6113ec16565b6001600160a01b03871660009081526013602052604090208054859081106113bb57fe5b60009182526020909120015485916001600160801b039091160263ffffffff61140116565b9250505b6001016112a7565b6000808284816113f857fe5b04949350505050565b60008282018381101561141057fe5b9392505050565b6000600a54421015801561142d57506000600a54115b61143657600080fd5b426000611443848361127f565b90506000811161145857600092505050610923565b600d54600a54611479906301e133809061068b90869063ffffffff61126d16565b61149857600d54611495906101b302606463ffffffff6113ec16565b90505b6114b6600754600a0a61016d028284026113ec90919063ffffffff16565b95945050505050565b50805460008255906000526020600020908101906114dd91906114e0565b50565b610d0791905b808211156106b65780546001600160c01b03191681556001016114e656fea165627a7a723058204e03852e75680e3be7cbc018b572ebdc55072ce8d122151fd6e33b21599532d50029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80637419f190116100de578063cbd8877e11610097578063dd62ed3e11610071578063dd62ed3e14610382578063e060edd2146103b0578063e1c3bac6146104d7578063f2fde38b146104df57610173565b8063cbd8877e14610353578063cd474b041461035b578063d15138181461036357610173565b80637419f190146102e35780638da5cb5b146102eb57806395d89b411461030f5780639fd4da4014610317578063a9059cbb1461031f578063c56551b61461034b57610173565b806321ed47b31161013057806321ed47b31461026757806323b872dd1461026f5780632ab4d052146102a5578063313ce567146102ad5780635b054f9b146102b557806370a08231146102bd57610173565b806306fdde0314610178578063095ea7b3146101f55780630d081b6e1461023557806318160ddd1461024f57806318ff837b146102575780631e1b13c01461025f575b600080fd5b610180610505565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61023d610634565b60408051918252519081900360200190f35b61023d61063a565b61023d610640565b61023d61065c565b61023d610668565b6102216004803603606081101561028557600080fd5b506001600160a01b038135811691602081013590911690604001356106ba565b61023d6108f7565b61023d6108fd565b61023d610903565b61023d600480360360208110156102d357600080fd5b50356001600160a01b0316610909565b61023d610928565b6102f361092e565b604080516001600160a01b039092168252519081900360200190f35b61018061093d565b61023d610998565b6102216004803603604081101561033557600080fd5b506001600160a01b03813516906020013561099e565b610221610b84565b61023d610d0a565b61023d610d10565b6103806004803603602081101561037957600080fd5b5035610d16565b005b61023d6004803603604081101561039857600080fd5b506001600160a01b0381358116916020013516610e81565b610221600480360360408110156103c657600080fd5b8101906020810181356401000000008111156103e157600080fd5b8201836020820111156103f357600080fd5b8035906020019184602083028401116401000000008311171561041557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046557600080fd5b82018360208201111561047757600080fd5b8035906020019184602083028401116401000000008311171561049957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610eac945050505050565b61023d611221565b610380600480360360208110156104f557600080fd5b50356001600160a01b0316611227565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b505050505081565b60008115806105c357503360009081526012602090815260408083206001600160a01b0387168452909152902054155b6105cc57600080fd5b3360008181526012602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b600e5481565b60006106576009544361126d90919063ffffffff16565b905090565b6000610657334261127f565b600d54600a544290610697906301e133809061068b90849063ffffffff61126d16565b9063ffffffff6113ec16565b6106b657600d546106b3906101b302606463ffffffff6113ec16565b91505b5090565b6000606060643610156106c957fe5b6001600160a01b0384166106dc57600080fd5b6001600160a01b0385166000818152601260209081526040808320338452825280832054938352601190915290205461071b908563ffffffff61126d16565b6001600160a01b038088166000908152601160205260408082209390935590871681522054610750908563ffffffff61140116565b6001600160a01b038616600090815260116020526040902055610779818563ffffffff61126d16565b6001600160a01b03808816600081815260126020908152604080832033845282529182902094909455805188815290519289169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36001600160a01b03861660009081526013602052604090205415610819576001600160a01b0386166000908152601360205260408120610819916114bf565b5050506001600160a01b0392831660009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018082018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091559b909c1689529686528488208551808701909652988216855284860196875288548085018a559888529490962092519290960180549451909316909602931691909516179091161790915590565b600f5481565b60075481565b60085481565b6001600160a01b0381166000908152601160205260409020545b919050565b600a5481565b6004546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b60105481565b6000604060443610156109ad57fe5b336001600160a01b03851614156109cd576109c6610b84565b9150610b7d565b336000908152601160205260409020546109ed908463ffffffff61126d16565b33600090815260116020526040808220929092556001600160a01b03861681522054610a1f908463ffffffff61140116565b6001600160a01b0385166000818152601160209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a33360009081526013602052604090205415610aa157336000908152601360205260408120610aa1916114bf565b3360009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018181018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091556001600160a01b038f168b52988852868a2087518089019098528d8516885287890192835280548088018255908b5297909920955195909601805496519091169096029316939095169290921790931692909217905591505b5092915050565b6000600f54600e5410610b9357fe5b33600090815260116020526040902054610baf57506000610d07565b33600090815260136020526040902054610bcb57506000610d07565b6000610bd633611417565b905060008111610bea576000915050610d07565b600e54610bfd908263ffffffff61140116565b600e5533600090815260116020526040902054610c20908263ffffffff61140116565b3360009081526011602090815260408083209390935560139052908120610c46916114bf565b3360008181526013602090815260408083208151808301835260118452828520546001600160801b03908116825267ffffffffffffffff42811683870190815284546001810186559488529686902092519290930180549651909316600160801b02600160801b600160c01b0319929091166001600160801b0319909616959095171693909317909255815184815291517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859281900390910190a260019150505b90565b600b5481565b60095481565b6004546001600160a01b03163314610d2a57fe5b60008111610d3757600080fd5b33600090815260116020526040902054610d57908263ffffffff61126d16565b3360009081526011602090815260408083209390935560139052908120610d7d916114bf565b3360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff42811684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b03199093169290921716179055600e54610e16908263ffffffff61126d16565b600e55601054610e2c908263ffffffff61126d16565b601055600f54610e4590600a830263ffffffff61126d16565b600f5560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6004546000906001600160a01b03163314610ec357fe5b60008351118015610ed5575081518351145b610ede57600080fd5b6000805b8351811015610f1b57610f11848281518110610efa57fe5b60200260200101518361140190919063ffffffff16565b9150600101610ee2565b5033600090815260116020526040902054811115610f3857600080fd5b4260005b855181101561112057610fa3858281518110610f5457fe5b602002602001015160116000898581518110610f6c57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461140190919063ffffffff16565b60116000888481518110610fb357fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555060136000878381518110610fef57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061102e57fe5b6020908102919091018101516001600160801b03908116835267ffffffffffffffff87811693830193909352845460018101865560009586529482902084519501805494909201516001600160801b0319909416941693909317600160801b600160c01b031916600160801b929091169190910217905585518690829081106110b357fe5b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8784815181106110fb57fe5b60200260200101516040518082815260200191505060405180910390a3600101610f3c565b5033600090815260116020526040902054611141908363ffffffff61126d16565b336000908152601160209081526040808320939093556013905220541561117a5733600090815260136020526040812061117a916114bf565b3360009081526011602052604090205415611216573360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff80871684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b031990931692909217161790555b506001949350505050565b600c5481565b6004546001600160a01b0316331461123b57fe5b6001600160a01b03811661124b57fe5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60008282111561127957fe5b50900390565b6001600160a01b0382166000908152601360205260408120546112a45750600061062e565b60005b6001600160a01b038416600090815260136020526040902054811015610b7d57600b546001600160a01b03851660009081526013602052604090208054611317929190849081106112f457fe5b600091825260209091200154600160801b900467ffffffffffffffff1690611401565b831015611323576113e4565b6001600160a01b0384166000908152601360205260408120805461137091908490811061134c57fe5b6000918252602090912001548590600160801b900467ffffffffffffffff1661126d565b9050600c548111156113815750600c545b6113e0611397826201518063ffffffff6113ec16565b6001600160a01b03871660009081526013602052604090208054859081106113bb57fe5b60009182526020909120015485916001600160801b039091160263ffffffff61140116565b9250505b6001016112a7565b6000808284816113f857fe5b04949350505050565b60008282018381101561141057fe5b9392505050565b6000600a54421015801561142d57506000600a54115b61143657600080fd5b426000611443848361127f565b90506000811161145857600092505050610923565b600d54600a54611479906301e133809061068b90869063ffffffff61126d16565b61149857600d54611495906101b302606463ffffffff6113ec16565b90505b6114b6600754600a0a61016d028284026113ec90919063ffffffff16565b95945050505050565b50805460008255906000526020600020908101906114dd91906114e0565b50565b610d0791905b808211156106b65780546001600160c01b03191681556001016114e656fea165627a7a723058204e03852e75680e3be7cbc018b572ebdc55072ce8d122151fd6e33b21599532d50029

Deployed Bytecode Sourcemap

3155:7604:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3155:7604:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3236:29;;;:::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;3236:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6094:287;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6094:287:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3530:31;;;:::i;:::-;;;;;;;;;;;;;;;;3601:23;;;:::i;7125:149::-;;;:::i;7282:119::-;;;:::i;7409:262::-;;;:::i;5388:698::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5388:698:0;;;;;;;;;;;;;;;;;:::i;3631:26::-;;;:::i;3310:25::-;;;:::i;3344:26::-;;;:::i;5259:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5259:121:0;-1:-1:-1;;;;;5259:121:0;;:::i;3418:26::-;;;:::i;1144:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1144:20:0;;;;;;;;;;;;;;3272:31;;;:::i;3664:30::-;;;:::i;4653:598::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4653:598:0;;;;;;;;:::i;6547:570::-;;;:::i;3451:32::-;;;:::i;3378:33::-;;;:::i;10246:507::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10246:507:0;;:::i;:::-;;6389:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6389:150:0;;;;;;;;;;:::i;9216:1022::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9216:1022:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9216:1022:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9216:1022:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9216:1022:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9216:1022:0;;;;;;;;-1:-1:-1;9216:1022:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;9216:1022:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9216:1022:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9216:1022:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9216:1022:0;;-1:-1:-1;9216:1022:0;;-1:-1:-1;;;;;9216:1022:0:i;3490:33::-;;;:::i;1719:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1719:143:0;-1:-1:-1;;;;;1719:143:0;;:::i;3236:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3236:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6094:287::-;6161:4;6193:11;;;6192:53;;-1:-1:-1;6218:10:0;6210:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6210:29:0;;;;;;;;;;:34;6192:53;6184:62;;;;;;6267:10;6259:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6259:29:0;;;;;;;;;;;;:38;;;6313;;;;;;;6259:29;;6267:10;6313:38;;;;;;;;;;;-1:-1:-1;6369:4:0;6094:287;;;;;:::o;3530:31::-;;;;:::o;3601:23::-;;;;:::o;7125:149::-;7178:16;7227:39;7244:21;;7227:12;:16;;:39;;;;:::i;:::-;7213:53;;7125:149;:::o;7282:119::-;7322:14;7367:26;7378:10;7389:3;7367:10;:26::i;7409:262::-;7519:10;;7553:14;;7494:3;;7543:40;;7574:8;;7544:24;;7494:3;;7544:24;:8;:24;:::i;:::-;7543:30;:40;:30;:40;:::i;:::-;7540:124;;7632:10;;7625:27;;7626:3;:16;7648:3;7625:27;:22;:27;:::i;:::-;7614:38;;7540:124;7409:262;;:::o;5388:698::-;5494:4;5470:6;4162:8;4143;:27;;4136:35;;;;-1:-1:-1;;;;;5525:17:0;;5517:26;;;;;;-1:-1:-1;;;;;5577:14:0;;5556:18;5577:14;;;:7;:14;;;;;;;;5592:10;5577:26;;;;;;;;5634:15;;;:8;:15;;;;;;:27;;5654:6;5634:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;5616:15:0;;;;;;;:8;:15;;;;;;:45;;;;5688:13;;;;;;;:25;;5706:6;5688:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;5672:13:0;;;;;;:8;:13;;;;;:41;5753:22;:10;5768:6;5753:22;:14;:22;:::i;:::-;-1:-1:-1;;;;;5724:14:0;;;;;;;:7;:14;;;;;;;;5739:10;5724:26;;;;;;;;:51;;;;5791:28;;;;;;;;;;;5724:14;;5791:28;;;;;;;;;;;-1:-1:-1;;;;;5833:12:0;;5855:1;5833:12;;;:5;:12;;;;;:19;:23;5830:47;;-1:-1:-1;;;;;5865:12:0;;;;;;:5;:12;;;;;5858:19;;;:::i;:::-;-1:-1:-1;;;;;;;;5924:12:0;;;5888:11;5924:12;;;:5;:12;;;;;;;;5942:47;;;;;;;5967:8;:15;;;;;;-1:-1:-1;;;;;5942:47:0;;;;;;5909:3;5942:47;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;5924:66:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5924:66:0;;;-1:-1:-1;;;;;;;;5924:66:0;;;-1:-1:-1;;;;;;5924:66:0;;;;;;;;;;6001:10;;;;;;;;;;;;6017:38;;;;;;;;;;;;;;;;;;;27:10:-1;;23:18;;;45:23;;6001:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39:1:-1;5388:698:0:o;3631:26::-;;;;:::o;3310:25::-;;;;:::o;3344:26::-;;;;:::o;5259:121::-;-1:-1:-1;;;;;5356:16:0;;5315:15;5356:16;;;:8;:16;;;;;;5259:121;;;;:::o;3418:26::-;;;;:::o;1144:20::-;;;-1:-1:-1;;;;;1144:20:0;;:::o;3272:31::-;;;;;;;;;;;;;;;-1:-1:-1;;3272:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3664:30;;;;:::o;4653:598::-;4740:4;4716:6;4162:8;4143;:27;;4136:35;;;;4766:10;-1:-1:-1;;;;;4766:17:0;;;4763:34;;;4792:5;:3;:5::i;:::-;4785:12;;;;4763:34;4840:10;4831:20;;;;:8;:20;;;;;;:32;;4856:6;4831:32;:24;:32;:::i;:::-;4817:10;4808:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;4890:13:0;;;;;;:25;;4908:6;4890:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4874:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;4931:33;;;;;;;4874:13;;4940:10;;4931:33;;;;;;;;;;4984:10;5005:1;4978:17;;;:5;:17;;;;;:24;:28;4975:57;;5021:10;5015:17;;;;:5;:17;;;;;5008:24;;;:::i;:::-;5085:10;5043:11;5079:17;;;:5;:17;;;;;;;;5102:52;;;;;;;5127:8;:20;;;;;;-1:-1:-1;;;;;5102:52:0;;;;;;5064:3;5102:52;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;5079:76:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5079:76:0;;;-1:-1:-1;;;;;;;;5079:76:0;;;-1:-1:-1;;;;;;5079:76:0;;;;;;;;;;-1:-1:-1;;;;;5166:10:0;;;;;;;;;;5182:38;;;;;;;;;;;;;;;;;;;27:10:-1;;23:18;;;45:23;;5166:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39:1:-1;-1:-1;4182:1:0;4653:598;;;;;:::o;6547:570::-;6588:4;4258:14;;4244:11;;:28;4237:36;;;;6623:10;6638:1;6614:20;;;:8;:20;;;;;;6611:42;;-1:-1:-1;6648:5:0;6641:12;;6611:42;6673:10;6695:1;6667:17;;;:5;:17;;;;;:24;6664:46;;-1:-1:-1;6705:5:0;6698:12;;6664:46;6723:11;6737:24;6750:10;6737:12;:24::i;:::-;6723:38;;6785:1;6775:6;:11;6772:28;;6795:5;6788:12;;;;;6772:28;6827:11;;:23;;6843:6;6827:23;:15;:23;:::i;:::-;6813:11;:37;6893:10;6884:20;;;;:8;:20;;;;;;:32;;6909:6;6884:32;:24;:32;:::i;:::-;6870:10;6861:20;;;;:8;:20;;;;;;;;:55;;;;6934:5;:17;;;;;6927:24;;;:::i;:::-;6968:10;6962:17;;;;:5;:17;;;;;;;;6985:59;;;;;;;7010:8;:20;;;;;;-1:-1:-1;;;;;6985:59:0;;;;;;7039:3;6985:59;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;6962:83:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6962:83:0;-1:-1:-1;;;;;;;;6962:83:0;;;;-1:-1:-1;;;;;;6962:83:0;;;;;;;;;;;;;;;7063:24;;;;;;;;;;;;;;;;;7105:4;7098:11;;;4284:1;6547:570;:::o;3451:32::-;;;;:::o;3378:33::-;;;;:::o;10246:507::-;1516:5;;-1:-1:-1;;;;;1516:5:0;1502:10;:19;1495:27;;;;10335:1;10326:6;:10;10318:19;;;;;;10382:10;10373:20;;;;:8;:20;;;;;;:32;;10398:6;10373:32;:24;:32;:::i;:::-;10359:10;10350:20;;;;:8;:20;;;;;;;;:55;;;;10423:5;:17;;;;;10416:24;;;:::i;:::-;10457:10;10451:17;;;;:5;:17;;;;;;;;10474:59;;;;;;;10499:8;:20;;;;;;-1:-1:-1;;;;;10474:59:0;;;;;;10528:3;10474:59;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;10451:83:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10451:83:0;-1:-1:-1;;;;;;;;10451:83:0;;;;-1:-1:-1;;;;;;10451:83:0;;;;;;;;;;;10561:11;;:23;;10577:6;10561:23;:15;:23;:::i;:::-;10547:11;:37;10616:18;;:30;;10639:6;10616:30;:22;:30;:::i;:::-;10595:18;:51;10674:14;;:29;;10700:2;10693:9;;10674:29;:18;:29;:::i;:::-;10657:14;:46;10721:24;;;;;;;;10726:10;;10721:24;;;;;;;;;;10246:507;:::o;6389:150::-;-1:-1:-1;;;;;6506:15:0;;;6463:17;6506:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6389:150::o;9216:1022::-;1516:5;;9319:4;;-1:-1:-1;;;;;1516:5:0;1502:10;:19;1495:27;;;;9372:1;9351:11;:18;:22;:62;;;;;9399:7;:14;9377:11;:18;:36;9351:62;9342:72;;;;;;9427:10;;9452:106;9472:7;:14;9468:1;:18;9452:106;;;9525:21;9535:7;9543:1;9535:10;;;;;;;;;;;;;;9525:5;:9;;:21;;;;:::i;:::-;9517:29;-1:-1:-1;9488:3:0;;9452:106;;;-1:-1:-1;9594:10:0;9585:20;;;;:8;:20;;;;;;9576:29;;;9568:38;;;;;;9640:3;9619:11;9655:301;9675:11;:18;9671:1;:22;9655:301;;;9751:40;9780:7;9788:1;9780:10;;;;;;;;;;;;;;9751:8;:24;9760:11;9772:1;9760:14;;;;;;;;;;;;;;-1:-1:-1;;;;;9751:24:0;-1:-1:-1;;;;;9751:24:0;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;9724:8;:24;9733:11;9745:1;9733:14;;;;;;;;;;;;;;-1:-1:-1;;;;;9724:24:0;-1:-1:-1;;;;;9724:24:0;;;;;;;;;;;;:67;;;;9806:5;:21;9812:11;9824:1;9812:14;;;;;;;;;;;;;;-1:-1:-1;;;;;9806:21:0;-1:-1:-1;;;;;9806:21:0;;;;;;;;;;;;9833:42;;;;;;;;9858:7;9866:1;9858:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9833:42:0;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;-1:-1;9806:70:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9806:70:0;;;;;;;;;-1:-1:-1;;;;;;;;9806:70:0;-1:-1:-1;;;9806:70:0;;;;;;;;;;;9917:14;;;;9929:1;;9917:14;;;;;;;;;;;;-1:-1:-1;;;;;9896:48:0;9905:10;-1:-1:-1;;;;;9896:48:0;;9933:7;9941:1;9933:10;;;;;;;;;;;;;;9896:48;;;;;;;;;;;;;;;;;;9695:3;;9655:301;;;-1:-1:-1;10000:10:0;9991:20;;;;:8;:20;;;;;;:31;;10016:5;9991:31;:24;:31;:::i;:::-;9977:10;9968:20;;;;:8;:20;;;;;;;;:54;;;;10036:5;:17;;;:24;:28;10033:57;;10079:10;10073:17;;;;:5;:17;;;;;10066:24;;;:::i;:::-;10113:10;10127:1;10104:20;;;:8;:20;;;;;;:24;10101:105;;10136:10;10130:17;;;;:5;:17;;;;;;;;10153:52;;;;;;;10178:8;:20;;;;;;-1:-1:-1;;;;;10153:52:0;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;10130:76:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10130:76:0;-1:-1:-1;;;;;;;;10130:76:0;;;;-1:-1:-1;;;;;;10130:76:0;;;;;;;;;;;10101:105;-1:-1:-1;10226:4:0;;9216:1022;-1:-1:-1;;;;9216:1022:0:o;3490:33::-;;;;:::o;1719:143::-;1516:5;;-1:-1:-1;;;;;1516:5:0;1502:10;:19;1495:27;;;;-1:-1:-1;;;;;1804:22:0;;1797:30;;;;1838:5;:16;;-1:-1:-1;;;;;;1838:16:0;-1:-1:-1;;;;;1838:16:0;;;;;;;;;;1719:143::o;624:129::-;682:7;720:1;715;:6;;708:14;;;;-1:-1:-1;740:5:0;;;624:129::o;8650:558::-;-1:-1:-1;;;;;8757:15:0;;8722:13;8757:15;;;:5;:15;;;;;:22;8754:40;;-1:-1:-1;8793:1:0;8786:8;;8754:40;8812:6;8807:394;-1:-1:-1;;;;;8828:15:0;;;;;;:5;:15;;;;;:22;8824:26;;8807:394;;;8916:11;;-1:-1:-1;;;;;8887:15:0;;;;;;:5;:15;;;;;:18;;8882:46;;8916:11;8887:15;8903:1;;8887:18;;;;;;;;;;;;;;;:23;-1:-1:-1;;;8887:23:0;;;;;8882:33;:46::i;:::-;8875:4;:53;8871:68;;;8931:8;;8871:68;-1:-1:-1;;;;;8990:15:0;;8956:17;8990:15;;;:5;:15;;;;;:18;;8976:39;;8990:15;9006:1;;8990:18;;;;;;;;;;;;;;;:23;8976:4;;-1:-1:-1;;;8990:23:0;;;;8976:8;:39::i;:::-;8956:59;;9049:11;;9034:12;:26;9030:59;;;-1:-1:-1;9078:11:0;;9030:59;9117:72;9164:24;:12;9181:6;9164:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;9135:15:0;;;;;;:5;:15;;;;;:18;;9151:1;;9135:18;;;;;;;;;;;;;;;:25;9117:8;;-1:-1:-1;;;;;9135:25:0;;;9130:58;9117:72;:12;:72;:::i;:::-;9106:83;;8807:394;;8852:3;;8807:394;;322:294;380:7;485:9;501:1;497;:5;;;;;;;322:294;-1:-1:-1;;;;322:294:0:o;761:153::-;819:7;857:5;;;880:6;;;;873:14;;;;905:1;761:153;-1:-1:-1;;;761:153:0:o;7679:963::-;7742:4;7782:14;;7775:3;:21;;7774:47;;;;;7819:1;7802:14;;:18;7774:47;7765:58;;;;;;7848:3;7836:9;7878:26;7889:8;7848:3;7878:10;:26::i;:::-;7862:42;;7930:1;7918:8;:13;7915:26;;7940:1;7933:8;;;;;;7915:26;7970:10;;8249:14;;8239:40;;8270:8;;8240:24;;:4;;:24;:8;:24;:::i;8239:40::-;8236:334;;8538:10;;8531:27;;8532:3;:16;8554:3;8531:27;:22;:27;:::i;:::-;8520:38;;8236:334;8587:47;8624:8;;8620:2;:12;8613:3;:20;8599:8;8588;:19;8587:25;;:47;;;;:::i;:::-;8580:54;7679:963;-1:-1:-1;;;;;7679:963:0:o;3155:7604::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;3155:7604:0;;;;;;

Swarm Source

bzzr://4e03852e75680e3be7cbc018b572ebdc55072ce8d122151fd6e33b21599532d5

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

OVERVIEW

Global decentralized P2P marketplace for creative digital assets.

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.