ETH Price: $2,001.30 (+1.17%)

Contract

0xF022D0dAa3ab54BF70Ff079CC4B29Cb94dFdfe01
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
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:
x8XAUTokenContract

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-10-03
*/

pragma solidity ^0.5.10;

contract ERC20TokenInterface {
  function totalSupply() public view returns (uint256 _totalSupply);
  function balanceOf(address _owner) public view returns (uint256 balance);
  function transfer(address _to, uint256 _value) public returns (bool success);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
  function approve(address _spender, uint256 _value) public returns (bool success);
  function allowance(address _owner, address _spender) public view returns (uint256 remaining);

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract tokenRecipientInterface {
  function receiveApproval(address _from, uint256 _value, address _token, bytes memory _extraData) public;
}

contract Owned {
    address payable public owner;
    address payable public newOwner;

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

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

    function transferOwnership(address payable _newOwner) public onlyOwner {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = address(0x0);
    }

    event OwnerUpdate(address _prevOwner, address _newOwner);
}

contract SafeMath {
    
    uint256 constant public MAX_UINT256 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

    function safeAdd(uint256 x, uint256 y) pure internal returns (uint256 z) {
        require(x <= MAX_UINT256 - y);
        return x + y;
    }

    function safeSub(uint256 x, uint256 y) pure internal returns (uint256 z) {
        require(x >= y);
        return x - y;
    }

    function safeMul(uint256 x, uint256 y) pure internal returns (uint256 z) {
        if (y == 0) {
            return 0;
        }
        require(x <= (MAX_UINT256 / y));
        return x * y;
    }
}

contract Lockable is Owned {

    uint256 public lockedUntilBlock;

    event ContractLocked(uint256 _untilBlock);

    modifier lockAffected {
        require(block.number > lockedUntilBlock);
        _;
    }

    function lockFromSelf(uint256 _untilBlock) internal {
        lockedUntilBlock = _untilBlock;
        emit ContractLocked(_untilBlock);
    }


    function lockUntil(uint256 _untilBlock) onlyOwner public {
        lockedUntilBlock = _untilBlock;
        emit ContractLocked(_untilBlock);
    }
}

contract ERC20Token is ERC20TokenInterface, SafeMath, Owned, Lockable {

    // Name of token
    string public name;
    // Abbreviation of tokens name
    string public symbol;
    // Number of decimals token has
    uint8 public decimals;
    // Address of the contract with minting logic
    address public mintingContractAddress;

    // Current supply of tokens
    uint256 supply = 0;
    // Map of users balances
    mapping (address => uint256) balances;
    // Map of users allowances
    mapping (address => mapping (address => uint256)) allowances;
    // Accounts with no ability to transfer tokens
    mapping(address => bool) frozenAccounts;

    // Event that shows that new tokens were created
    event Mint(address indexed _to, uint256 _value);
    // Event that shows that old tokens were destroyed
    event Burn(address indexed _from, uint _value);

    /**
    * @dev Returns number of tokens in circulation
    *
    * @return total number od tokens
    */
    function totalSupply() public view returns (uint256) {
        return supply;
    }

    /**
    * @dev Returns the balance of specific account
    *
    * @param _owner The account that caller wants to querry
    * @return the balance on this account
    */
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

    /**
    * @dev User can transfer tokens with this method, method is disabled if emergencyLock is activated
    *
    * @param _to Reciever of tokens
    * @param _value The amount of tokens that will be sent 
    * @return if successful returns true
    */
    function transfer(address _to, uint256 _value) lockAffected public returns (bool success) {
        require(frozenAccounts[msg.sender] == false);
        require(_to != address(0x0) && _to != address(this));
        balances[msg.sender] = safeSub(balanceOf(msg.sender), _value);
        balances[_to] = safeAdd(balanceOf(_to), _value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev This is used to allow some account to utilise transferFrom and sends tokens on your behalf, this method is disabled if emergencyLock is activated
    *
    * @param _spender Who can send tokens on your behalf
    * @param _value The amount of tokens that are allowed to be sent 
    * @return if successful returns true
    */
    function approve(address _spender, uint256 _value) lockAffected public returns (bool success) {
        require(frozenAccounts[msg.sender] == false);
        allowances[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
    * @dev This is used to send tokens and execute code on other smart contract, this method is disabled if emergencyLock is activated
    *
    * @param _spender Contract that is receiving tokens
    * @param _value The amount that msg.sender is sending
    * @param _extraData Additional params that can be used on reciving smart contract
    * @return if successful returns true
    */
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) lockAffected public returns (bool success) {
        tokenRecipientInterface spender = tokenRecipientInterface(_spender);
        approve(_spender, _value);
        spender.receiveApproval(msg.sender, _value, address(this), _extraData);
        return true;
    }

    /**
    * @dev Sender can transfer tokens on others behalf, this method is disabled if emergencyLock is activated
    *
    * @param _from The account that will send tokens
    * @param _to Account that will recive the tokens
    * @param _value The amount that msg.sender is sending
    * @return if successful returns true
    */
    function transferFrom(address _from, address _to, uint256 _value) lockAffected public returns (bool success) {
        require(frozenAccounts[msg.sender] == false);
        require(_to != address(0x0) && _to != address(this));
        balances[_from] = safeSub(balanceOf(_from), _value);
        balances[_to] = safeAdd(balanceOf(_to), _value);
        allowances[_from][msg.sender] = safeSub(allowances[_from][msg.sender], _value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    /**
    * @dev Returns the amount od tokens that can be sent from this addres by spender
    *
    * @param _owner Account that has tokens
    * @param _spender Account that can spend tokens
    * @return remaining balance to spend
    */
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowances[_owner][_spender];
    }

    /**
    * @dev Creates new tokens as long as total supply does not reach limit
    *
    * @param _to Reciver od newly created tokens
    * @param _amount Amount of tokens to be created;
    */
    function mint(address _to, uint256 _amount) public {
        require(msg.sender == mintingContractAddress);
        supply = safeAdd(supply, _amount);
        balances[_to] = safeAdd(balances[_to], _amount);
        emit Mint(_to, _amount);
        emit Transfer(address(0x0), _to, _amount);
    }

    /**
    * @dev Destroys the amount of tokens and lowers total supply
    *
    * @param _amount Number of tokens user wants to destroy
    */
    function burn(uint _amount) public {
        require(frozenAccounts[msg.sender] == false);
        balances[msg.sender] = safeSub(balanceOf(msg.sender), _amount);
        supply = safeSub(supply, _amount);
        emit Burn(msg.sender, _amount);
        emit Transfer(msg.sender, address(0x0), _amount);
    }
    
    /**
    * @dev Owner disables one address so it cannot transfer tokens
    *
    * @param _target Address to freeze
    */
    function freezeUnfreezeAccount(address _target) onlyOwner public {
        frozenAccounts[_target] = !frozenAccounts[_target];
    }
    
    /**
    * @dev Owner can trasnfer tokens of the frozen accounts
    *
    * @param _from The account that will send tokens
    * @param _value The amount that msg.sender is sending
    * @return if successful returns true
    */
    function transferFromFrozenAccount(address _from, uint256 _value) onlyOwner public returns (bool success) {
        require(frozenAccounts[_from] == true);
        balances[_from] = safeSub(balanceOf(_from), _value);
        balances[owner] = safeAdd(balanceOf(owner), _value);
        emit Transfer(_from, owner, _value);
        return true;
    }

    /**
    * @dev Saves exidentaly sent tokens to this contract, can be used only by owner
    *
    * @param _tokenAddress Address of tokens smart contract
    * @param _to Where to send the tokens
    * @param _amount The amount of tokens that we are salvaging
    */
    function salvageTokensFromContract(address _tokenAddress, address _to, uint _amount) onlyOwner public {
        ERC20TokenInterface(_tokenAddress).transfer(_to, _amount);
    }
    
    /**
    * @dev Owner can set the minting contract
    *
    * @param _mintingContractAddress Address to freeze
    */
    function setMintingContract(address _mintingContractAddress) onlyOwner public {
        mintingContractAddress = _mintingContractAddress;
    }

    /**
    * @dev Disables the contract and wipes all the balances, can be used only by owner
    */
    function killContract() public onlyOwner {
        selfdestruct(owner);
    }
}


contract x8XAUTokenContract is ERC20Token {

    /**
    * @dev Intialises token and all the necesary variable
    */
   constructor() public {
        name = "X8XAU token";
        symbol = "X8XAU";
        decimals = 18;
        mintingContractAddress = 0x546BdB5eDA549dD3a1e43108A79e9a05BA07e527;
        lockFromSelf(0);
    }
}

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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_untilBlock","type":"uint256"}],"name":"lockUntil","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"killContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingContractAddress","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"salvageTokensFromContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_mintingContractAddress","type":"address"}],"name":"setMintingContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFromFrozenAccount","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedUntilBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_target","type":"address"}],"name":"freezeUnfreezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_untilBlock","type":"uint256"}],"name":"ContractLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","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"},{"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"}]

608060405260006006553480156200001657600080fd5b50600080546001600160a01b0319163317905560408051808201909152600b8082527f583858415520746f6b656e00000000000000000000000000000000000000000060209092019182526200006f9160039162000135565b506040805180820190915260058082527f58385841550000000000000000000000000000000000000000000000000000006020909201918252620000b69160049162000135565b5060058054601260ff1990911617610100600160a81b03191674546bdb5eda549dd3a1e43108a79e9a05ba07e52700179055620000f46000620000fa565b620001da565b60028190556040805182815290517f02ba2c764c85b8a0f34e449d69fcb4f7f23277a31579dc322f56dcc5bfeaf8449181900360200190a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017857805160ff1916838001178555620001a8565b82800160010185558215620001a8579182015b82811115620001a85782518255916020019190600101906200018b565b50620001b6929150620001ba565b5090565b620001d791905b80821115620001b65760008155600101620001c1565b90565b610fb780620001ea6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063824563f6116100de578063cae9ca5111610097578063d8162db711610071578063d8162db7146104f4578063dd62ed3e146104fc578063e3ff42a91461052a578063f2fde38b1461055057610173565b8063cae9ca5114610405578063cb25b438146104c0578063d4ee1d90146104ec57610173565b8063824563f6146103495780638da5cb5b1461036d57806395d89b4114610375578063a0929cda1461037d578063a9059cbb146103b3578063c56e1375146103df57610173565b8063313ce56711610130578063313ce567146102ac57806333a581d2146102ca57806340c10f19146102d257806342966c68146102fe57806370a082311461031b57806379ba50971461034157610173565b806306fdde0314610178578063095ea7b3146101f55780630ceea3051461023557806318160ddd146102545780631c02708d1461026e57806323b872dd14610276575b600080fd5b610180610576565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610604565b604080519115158252519081900360200190f35b6102526004803603602081101561024b57600080fd5b5035610698565b005b61025c6106e7565b60408051918252519081900360200190f35b6102526106ed565b6102216004803603606081101561028c57600080fd5b506001600160a01b0381358116916020810135909116906040013561070f565b6102b461083a565b6040805160ff9092168252519081900360200190f35b61025c610843565b610252600480360360408110156102e857600080fd5b506001600160a01b038135169060200135610849565b6102526004803603602081101561031457600080fd5b503561091c565b61025c6004803603602081101561033157600080fd5b50356001600160a01b03166109ca565b6102526109e5565b610351610a6f565b604080516001600160a01b039092168252519081900360200190f35b610351610a83565b610180610a92565b6102526004803603606081101561039357600080fd5b506001600160a01b03813581169160208101359091169060400135610aed565b610221600480360360408110156103c957600080fd5b506001600160a01b038135169060200135610b92565b610252600480360360208110156103f557600080fd5b50356001600160a01b0316610c5d565b6102216004803603606081101561041b57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561044b57600080fd5b82018360208201111561045d57600080fd5b8035906020019184600183028401116401000000008311171561047f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c99945050505050565b610221600480360360408110156104d657600080fd5b506001600160a01b038135169060200135610da1565b610351610e6a565b61025c610e79565b61025c6004803603604081101561051257600080fd5b506001600160a01b0381358116916020013516610e7f565b6102526004803603602081101561054057600080fd5b50356001600160a01b0316610eaa565b6102526004803603602081101561056657600080fd5b50356001600160a01b0316610ee7565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105fc5780601f106105d1576101008083540402835291602001916105fc565b820191906000526020600020905b8154815290600101906020018083116105df57829003601f168201915b505050505081565b6000600254431161061457600080fd5b3360009081526009602052604090205460ff161561063157600080fd5b3360008181526008602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000546001600160a01b031633146106ac57fe5b60028190556040805182815290517f02ba2c764c85b8a0f34e449d69fcb4f7f23277a31579dc322f56dcc5bfeaf8449181900360200190a150565b60065490565b6000546001600160a01b0316331461070157fe5b6000546001600160a01b0316ff5b6000600254431161071f57600080fd5b3360009081526009602052604090205460ff161561073c57600080fd5b6001600160a01b0383161580159061075d57506001600160a01b0383163014155b61076657600080fd5b610778610772856109ca565b83610f38565b6001600160a01b0385166000908152600760205260409020556107a361079d846109ca565b83610f4d565b6001600160a01b0380851660009081526007602090815260408083209490945591871681526008825282812033825290915220546107e19083610f38565b6001600160a01b0380861660008181526008602090815260408083203384528252918290209490945580518681529051928716939192600080516020610f63833981519152929181900390910190a35060019392505050565b60055460ff1681565b60001981565b60055461010090046001600160a01b0316331461086557600080fd5b61087160065482610f4d565b6006556001600160a01b0382166000908152600760205260409020546108979082610f4d565b6001600160a01b038316600081815260076020908152604091829020939093558051848152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a26040805182815290516001600160a01b03841691600091600080516020610f638339815191529181900360200190a35050565b3360009081526009602052604090205460ff161561093957600080fd5b61094b610945336109ca565b82610f38565b336000908152600760205260409020556006546109689082610f38565b60065560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000913391600080516020610f638339815191529181900360200190a350565b6001600160a01b031660009081526007602052604090205490565b6001546001600160a01b031633146109fc57600080fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60055461010090046001600160a01b031681565b6000546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105fc5780601f106105d1576101008083540402835291602001916105fc565b6000546001600160a01b03163314610b0157fe5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610b6157600080fd5b505af1158015610b75573d6000803e3d6000fd5b505050506040513d6020811015610b8b57600080fd5b5050505050565b60006002544311610ba257600080fd5b3360009081526009602052604090205460ff1615610bbf57600080fd5b6001600160a01b03831615801590610be057506001600160a01b0383163014155b610be957600080fd5b610bf5610772336109ca565b33600090815260076020526040902055610c1161079d846109ca565b6001600160a01b038416600081815260076020908152604091829020939093558051858152905191923392600080516020610f638339815191529281900390910190a350600192915050565b6000546001600160a01b03163314610c7157fe5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60006002544311610ca957600080fd5b83610cb48185610604565b50604051638f4ffcb160e01b815233600482018181526024830187905230604484018190526080606485019081528751608486015287516001600160a01b03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b83811015610d2f578181015183820152602001610d17565b50505050905090810190601f168015610d5c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610d7e57600080fd5b505af1158015610d92573d6000803e3d6000fd5b50600198975050505050505050565b600080546001600160a01b03163314610db657fe5b6001600160a01b03831660009081526009602052604090205460ff161515600114610de057600080fd5b610dec610772846109ca565b6001600160a01b038085166000908152600760205260408120929092559054610e199161079d91166109ca565b600080546001600160a01b039081168252600760209081526040808420949094559154835186815293519082169391871692600080516020610f63833981519152928290030190a350600192915050565b6001546001600160a01b031681565b60025481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610ebe57fe5b6001600160a01b03166000908152600960205260409020805460ff19811660ff90911615179055565b6000546001600160a01b03163314610efb57fe5b6000546001600160a01b0382811691161415610f1657600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081831015610f4757600080fd5b50900390565b60008119831115610f5d57600080fd5b50019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72305820aa2fd4545cbbe8043ebf5c54790be214cbe9151f699e84a88474d3cb40c2fc1a64736f6c634300050a0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063824563f6116100de578063cae9ca5111610097578063d8162db711610071578063d8162db7146104f4578063dd62ed3e146104fc578063e3ff42a91461052a578063f2fde38b1461055057610173565b8063cae9ca5114610405578063cb25b438146104c0578063d4ee1d90146104ec57610173565b8063824563f6146103495780638da5cb5b1461036d57806395d89b4114610375578063a0929cda1461037d578063a9059cbb146103b3578063c56e1375146103df57610173565b8063313ce56711610130578063313ce567146102ac57806333a581d2146102ca57806340c10f19146102d257806342966c68146102fe57806370a082311461031b57806379ba50971461034157610173565b806306fdde0314610178578063095ea7b3146101f55780630ceea3051461023557806318160ddd146102545780631c02708d1461026e57806323b872dd14610276575b600080fd5b610180610576565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610604565b604080519115158252519081900360200190f35b6102526004803603602081101561024b57600080fd5b5035610698565b005b61025c6106e7565b60408051918252519081900360200190f35b6102526106ed565b6102216004803603606081101561028c57600080fd5b506001600160a01b0381358116916020810135909116906040013561070f565b6102b461083a565b6040805160ff9092168252519081900360200190f35b61025c610843565b610252600480360360408110156102e857600080fd5b506001600160a01b038135169060200135610849565b6102526004803603602081101561031457600080fd5b503561091c565b61025c6004803603602081101561033157600080fd5b50356001600160a01b03166109ca565b6102526109e5565b610351610a6f565b604080516001600160a01b039092168252519081900360200190f35b610351610a83565b610180610a92565b6102526004803603606081101561039357600080fd5b506001600160a01b03813581169160208101359091169060400135610aed565b610221600480360360408110156103c957600080fd5b506001600160a01b038135169060200135610b92565b610252600480360360208110156103f557600080fd5b50356001600160a01b0316610c5d565b6102216004803603606081101561041b57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561044b57600080fd5b82018360208201111561045d57600080fd5b8035906020019184600183028401116401000000008311171561047f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c99945050505050565b610221600480360360408110156104d657600080fd5b506001600160a01b038135169060200135610da1565b610351610e6a565b61025c610e79565b61025c6004803603604081101561051257600080fd5b506001600160a01b0381358116916020013516610e7f565b6102526004803603602081101561054057600080fd5b50356001600160a01b0316610eaa565b6102526004803603602081101561056657600080fd5b50356001600160a01b0316610ee7565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105fc5780601f106105d1576101008083540402835291602001916105fc565b820191906000526020600020905b8154815290600101906020018083116105df57829003601f168201915b505050505081565b6000600254431161061457600080fd5b3360009081526009602052604090205460ff161561063157600080fd5b3360008181526008602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000546001600160a01b031633146106ac57fe5b60028190556040805182815290517f02ba2c764c85b8a0f34e449d69fcb4f7f23277a31579dc322f56dcc5bfeaf8449181900360200190a150565b60065490565b6000546001600160a01b0316331461070157fe5b6000546001600160a01b0316ff5b6000600254431161071f57600080fd5b3360009081526009602052604090205460ff161561073c57600080fd5b6001600160a01b0383161580159061075d57506001600160a01b0383163014155b61076657600080fd5b610778610772856109ca565b83610f38565b6001600160a01b0385166000908152600760205260409020556107a361079d846109ca565b83610f4d565b6001600160a01b0380851660009081526007602090815260408083209490945591871681526008825282812033825290915220546107e19083610f38565b6001600160a01b0380861660008181526008602090815260408083203384528252918290209490945580518681529051928716939192600080516020610f63833981519152929181900390910190a35060019392505050565b60055460ff1681565b60001981565b60055461010090046001600160a01b0316331461086557600080fd5b61087160065482610f4d565b6006556001600160a01b0382166000908152600760205260409020546108979082610f4d565b6001600160a01b038316600081815260076020908152604091829020939093558051848152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a26040805182815290516001600160a01b03841691600091600080516020610f638339815191529181900360200190a35050565b3360009081526009602052604090205460ff161561093957600080fd5b61094b610945336109ca565b82610f38565b336000908152600760205260409020556006546109689082610f38565b60065560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000913391600080516020610f638339815191529181900360200190a350565b6001600160a01b031660009081526007602052604090205490565b6001546001600160a01b031633146109fc57600080fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60055461010090046001600160a01b031681565b6000546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105fc5780601f106105d1576101008083540402835291602001916105fc565b6000546001600160a01b03163314610b0157fe5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610b6157600080fd5b505af1158015610b75573d6000803e3d6000fd5b505050506040513d6020811015610b8b57600080fd5b5050505050565b60006002544311610ba257600080fd5b3360009081526009602052604090205460ff1615610bbf57600080fd5b6001600160a01b03831615801590610be057506001600160a01b0383163014155b610be957600080fd5b610bf5610772336109ca565b33600090815260076020526040902055610c1161079d846109ca565b6001600160a01b038416600081815260076020908152604091829020939093558051858152905191923392600080516020610f638339815191529281900390910190a350600192915050565b6000546001600160a01b03163314610c7157fe5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60006002544311610ca957600080fd5b83610cb48185610604565b50604051638f4ffcb160e01b815233600482018181526024830187905230604484018190526080606485019081528751608486015287516001600160a01b03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b83811015610d2f578181015183820152602001610d17565b50505050905090810190601f168015610d5c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610d7e57600080fd5b505af1158015610d92573d6000803e3d6000fd5b50600198975050505050505050565b600080546001600160a01b03163314610db657fe5b6001600160a01b03831660009081526009602052604090205460ff161515600114610de057600080fd5b610dec610772846109ca565b6001600160a01b038085166000908152600760205260408120929092559054610e199161079d91166109ca565b600080546001600160a01b039081168252600760209081526040808420949094559154835186815293519082169391871692600080516020610f63833981519152928290030190a350600192915050565b6001546001600160a01b031681565b60025481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610ebe57fe5b6001600160a01b03166000908152600960205260409020805460ff19811660ff90911615179055565b6000546001600160a01b03163314610efb57fe5b6000546001600160a01b0382811691161415610f1657600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081831015610f4757600080fd5b50900390565b60008119831115610f5d57600080fd5b50019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72305820aa2fd4545cbbe8043ebf5c54790be214cbe9151f699e84a88474d3cb40c2fc1a64736f6c634300050a0032

Deployed Bytecode Sourcemap

10332:344:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10332:344:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2837:18;;;:::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;2837:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5193:285;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5193:285:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2580:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2580:149:0;;:::i;:::-;;3751:85;;;:::i;:::-;;;;;;;;;;;;;;;;10244:79;;;:::i;6594:510::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6594:510:0;;;;;;;;;;;;;;;;;:::i;2962:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1586:104;;;:::i;7721:303::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7721:303:0;;;;;;;;:::i;8183:315::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8183:315:0;;:::i;4024:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4024:115:0;-1:-1:-1;;;;;4024:115:0;;:::i;1294:189::-;;;:::i;3041:37::-;;;:::i;:::-;;;;-1:-1:-1;;;;;3041:37:0;;;;;;;;;;;;;;912:28;;;:::i;2898:20::-;;;:::i;9669:178::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9669:178:0;;;;;;;;;;;;;;;;;:::i;4415:417::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4415:417:0;;;;;;;;:::i;9986:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9986:145:0;-1:-1:-1;;;;;9986:145:0;;:::i;5891:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;5891:351:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5891:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5891:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5891:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5891:351:0;;-1:-1:-1;5891:351:0;;-1:-1:-1;;;;;5891:351:0:i;9028:355::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9028:355:0;;;;;;;;:::i;947:31::-;;;:::i;2235:::-;;;:::i;7362:147::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7362:147:0;;;;;;;;;;:::i;8642:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8642:134:0;-1:-1:-1;;;;;8642:134:0;;:::i;1138:148::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1138:148:0;-1:-1:-1;;;;;1138:148:0;;:::i;2837:18::-;;;;;;;;;;;;;;;-1:-1:-1;;2837:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5193:285::-;5273:12;2381:16;;2366:12;:31;2358:40;;;;;;5321:10;5306:26;;;;:14;:26;;;;;;;;:35;5298:44;;;;;;5364:10;5353:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;5353:32:0;;;;;;;;;;;;:41;;;5410:38;;;;;;;5353:32;;5364:10;5410:38;;;;;;;;;;;-1:-1:-1;5466:4:0;5193:285;;;;:::o;2580:149::-;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;2648:16;:30;;;2694:27;;;;;;;;;;;;;;;;;2580:149;:::o;3751:85::-;3822:6;;3751:85;:::o;10244:79::-;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;10309:5;;-1:-1:-1;;;;;10309:5:0;10296:19;6594:510;6689:12;2381:16;;2366:12;:31;2358:40;;;;;;6737:10;6722:26;;;;:14;:26;;;;;;;;:35;6714:44;;;;;;-1:-1:-1;;;;;6777:19:0;;;;;;:43;;-1:-1:-1;;;;;;6800:20:0;;6815:4;6800:20;;6777:43;6769:52;;;;;;6850:33;6858:16;6868:5;6858:9;:16::i;:::-;6876:6;6850:7;:33::i;:::-;-1:-1:-1;;;;;6832:15:0;;;;;;:8;:15;;;;;:51;6910:31;6918:14;6928:3;6918:9;:14::i;:::-;6934:6;6910:7;:31::i;:::-;-1:-1:-1;;;;;6894:13:0;;;;;;;:8;:13;;;;;;;;:47;;;;6992:17;;;;;:10;:17;;;;;7010:10;6992:29;;;;;;;6984:46;;7023:6;6984:7;:46::i;:::-;-1:-1:-1;;;;;6952:17:0;;;;;;;:10;:17;;;;;;;;6970:10;6952:29;;;;;;;;:78;;;;7046:28;;;;;;;;;;;6952:17;;-1:-1:-1;;;;;;;;;;;7046:28:0;;;;;;;;;;-1:-1:-1;7092:4:0;6594:510;;;;;:::o;2962:21::-;;;;;;:::o;1586:104::-;-1:-1:-1;;1586:104:0;:::o;7721:303::-;7805:22;;;;;-1:-1:-1;;;;;7805:22:0;7791:10;:36;7783:45;;;;;;7848:24;7856:6;;7864:7;7848;:24::i;:::-;7839:6;:33;-1:-1:-1;;;;;7907:13:0;;;;;;:8;:13;;;;;;7899:31;;7922:7;7899;:31::i;:::-;-1:-1:-1;;;;;7883:13:0;;;;;;:8;:13;;;;;;;;;:47;;;;7946:18;;;;;;;7883:13;;7946:18;;;;;;;;;7980:36;;;;;;;;-1:-1:-1;;;;;7980:36:0;;;7997:3;;-1:-1:-1;;;;;;;;;;;7980:36:0;;;;;;;;7721:303;;:::o;8183:315::-;8252:10;8237:26;;;;:14;:26;;;;;;;;:35;8229:44;;;;;;8307:39;8315:21;8325:10;8315:9;:21::i;:::-;8338:7;8307;:39::i;:::-;8293:10;8284:20;;;;:8;:20;;;;;:62;8374:6;;8366:24;;8382:7;8366;:24::i;:::-;8357:6;:33;8406:25;;;;;;;;8411:10;;8406:25;;;;;;;;;;8447:43;;;;;;;;8476:3;;8456:10;;-1:-1:-1;;;;;;;;;;;8447:43:0;;;;;;;;8183:315;:::o;4024:115::-;-1:-1:-1;;;;;4115:16:0;4080:15;4115:16;;;:8;:16;;;;;;;4024:115::o;1294:189::-;1361:8;;-1:-1:-1;;;;;1361:8:0;1347:10;:22;1339:31;;;;;;1398:5;;;1405:8;1386:28;;;-1:-1:-1;;;;;1398:5:0;;;1386:28;;1405:8;;;;1386:28;;;;;;;;;;;;;;;;1433:8;;;;1425:16;;-1:-1:-1;;;;;;1425:16:0;;;-1:-1:-1;;;;;1433:8:0;;1425:16;;;;1452:23;;;1294:189::o;3041:37::-;;;;;;-1:-1:-1;;;;;3041:37:0;;:::o;912:28::-;;;-1:-1:-1;;;;;912:28:0;;:::o;2898:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2898:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9669:178;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;9802:13;-1:-1:-1;;;;;9782:43:0;;9826:3;9831:7;9782:57;;;;;;;;;;;;;-1:-1:-1;;;;;9782:57:0;-1:-1:-1;;;;;9782:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9782:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9782:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;9669:178:0:o;4415:417::-;4491:12;2381:16;;2366:12;:31;2358:40;;;;;;4539:10;4524:26;;;;:14;:26;;;;;;;;:35;4516:44;;;;;;-1:-1:-1;;;;;4579:19:0;;;;;;:43;;-1:-1:-1;;;;;;4602:20:0;;4617:4;4602:20;;4579:43;4571:52;;;;;;4657:38;4665:21;4675:10;4665:9;:21::i;4657:38::-;4643:10;4634:20;;;;:8;:20;;;;;:61;4722:31;4730:14;4740:3;4730:9;:14::i;4722:31::-;-1:-1:-1;;;;;4706:13:0;;;;;;:8;:13;;;;;;;;;:47;;;;4769:33;;;;;;;4706:13;;4778:10;;-1:-1:-1;;;;;;;;;;;4769:33:0;;;;;;;;;-1:-1:-1;4820:4:0;4415:417;;;;:::o;9986:145::-;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;10075:22;:48;;-1:-1:-1;;;;;10075:48:0;;;;;-1:-1:-1;;;;;;10075:48:0;;;;;;;;;9986:145::o;5891:351::-;6003:12;2381:16;;2366:12;:31;2358:40;;;;;;6086:8;6106:25;6086:8;6124:6;6106:7;:25::i;:::-;-1:-1:-1;6142:70:0;;-1:-1:-1;;;6142:70:0;;6166:10;6142:70;;;;;;;;;;;;6194:4;6142:70;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6142:23:0;;;;;6166:10;6178:6;;6194:4;6201:10;;6142:70;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6142:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6142:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6230:4:0;;5891:351;-1:-1:-1;;;;;;;;5891:351:0:o;9028:355::-;9120:12;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;-1:-1:-1;;;;;9153:21:0;;;;;;:14;:21;;;;;;;;:29;;:21;:29;9145:38;;;;;;9212:33;9220:16;9230:5;9220:9;:16::i;9212:33::-;-1:-1:-1;;;;;9194:15:0;;;;;;;:8;:15;;;;;:51;;;;9292:5;;9274:33;;9282:16;;9292:5;9282:9;:16::i;9274:33::-;9256:15;9265:5;;-1:-1:-1;;;;;9265:5:0;;;9256:15;;:8;:15;;;;;;;;:51;;;;9339:5;;9323:30;;;;;;;9339:5;;;;9323:30;;;;-1:-1:-1;;;;;;;;;;;9323:30:0;;;;;;;-1:-1:-1;9371:4:0;9028:355;;;;:::o;947:31::-;;;-1:-1:-1;;;;;947:31:0;;:::o;2235:::-;;;;:::o;7362:147::-;-1:-1:-1;;;;;7473:18:0;;;7436:17;7473:18;;;:10;:18;;;;;;;;:28;;;;;;;;;;;;;7362:147::o;8642:134::-;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;-1:-1:-1;;;;;8745:23:0;;;;;:14;:23;;;;;;;-1:-1:-1;;8718:50:0;;8745:23;;;;8744:24;8718:50;;;8642:134::o;1138:148::-;1104:5;;-1:-1:-1;;;;;1104:5:0;1090:10;:19;1083:27;;;;1241:5;;-1:-1:-1;;;;;1228:18:0;;;1241:5;;1228:18;;1220:27;;;;;;1258:8;:20;;-1:-1:-1;;;;;;1258:20:0;-1:-1:-1;;;;;1258:20:0;;;;;;;;;;1138:148::o;1851:130::-;1913:9;1948:1;1943;:6;;1935:15;;;;;;-1:-1:-1;1968:5:0;;;1851:130::o;1699:144::-;1761:9;1796:15;;1791:20;;;1783:29;;;;;;-1:-1:-1;1830:5:0;;1699:144::o

Swarm Source

bzzr://aa2fd4545cbbe8043ebf5c54790be214cbe9151f699e84a88474d3cb40c2fc1a

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

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.