ETH Price: $2,055.19 (+4.79%)
 

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
Transfer67311502018-11-19 3:10:502660 days ago1542597050IN
0xdF70fE7e...C2CEeD3d4
3 ETH0.000293843
Transfer67304972018-11-19 0:34:332660 days ago1542587673IN
0xdF70fE7e...C2CEeD3d4
1 ETH0.000293843
Transfer67291722018-11-18 19:21:022660 days ago1542568862IN
0xdF70fE7e...C2CEeD3d4
1 ETH0.000149493
Transfer67290922018-11-18 19:02:432660 days ago1542567763IN
0xdF70fE7e...C2CEeD3d4
2 ETH0.000149493
Transfer67284002018-11-18 16:26:582661 days ago1542558418IN
0xdF70fE7e...C2CEeD3d4
2.5 ETH0.000489735
Transfer67245882018-11-18 1:32:212661 days ago1542504741IN
0xdF70fE7e...C2CEeD3d4
0.67862547 ETH0.000303633.1000001
Transfer67236972018-11-17 22:00:302661 days ago1542492030IN
0xdF70fE7e...C2CEeD3d4
0 ETH0.000299013
Transfer67235542018-11-17 21:30:402661 days ago1542490240IN
0xdF70fE7e...C2CEeD3d4
3.2 ETH0.000099662
Transfer67175422018-11-16 21:51:472662 days ago1542405107IN
0xdF70fE7e...C2CEeD3d4
2 ETH0.000199324
Transfer67105452018-11-15 18:34:452663 days ago1542306885IN
0xdF70fE7e...C2CEeD3d4
1.75 ETH0.000587686
Transfer67055702018-11-14 22:49:392664 days ago1542235779IN
0xdF70fE7e...C2CEeD3d4
2 ETH0.000149493
Approve66993802018-11-13 22:33:372665 days ago1542148417IN
0xdF70fE7e...C2CEeD3d4
0 ETH0.000093882
Transfer66983662018-11-13 18:35:232665 days ago1542134123IN
0xdF70fE7e...C2CEeD3d4
1.75 ETH0.000587686
Transfer66980812018-11-13 17:30:322665 days ago1542130232IN
0xdF70fE7e...C2CEeD3d4
1 ETH0.000401584.1
Owner Mint66980632018-11-13 17:25:172666 days ago1542129917IN
0xdF70fE7e...C2CEeD3d4
0 ETH0.000426864

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer67311502018-11-19 3:10:502660 days ago1542597050
0xdF70fE7e...C2CEeD3d4
3 ETH
Transfer67304972018-11-19 0:34:332660 days ago1542587673
0xdF70fE7e...C2CEeD3d4
1 ETH
Transfer67291722018-11-18 19:21:022660 days ago1542568862
0xdF70fE7e...C2CEeD3d4
1 ETH
Transfer67290922018-11-18 19:02:432660 days ago1542567763
0xdF70fE7e...C2CEeD3d4
2 ETH
Transfer67284002018-11-18 16:26:582661 days ago1542558418
0xdF70fE7e...C2CEeD3d4
2.5 ETH
Transfer67245882018-11-18 1:32:212661 days ago1542504741
0xdF70fE7e...C2CEeD3d4
0.67862547 ETH
Transfer67235542018-11-17 21:30:402661 days ago1542490240
0xdF70fE7e...C2CEeD3d4
3.2 ETH
Transfer67175422018-11-16 21:51:472662 days ago1542405107
0xdF70fE7e...C2CEeD3d4
2 ETH
Transfer67105452018-11-15 18:34:452663 days ago1542306885
0xdF70fE7e...C2CEeD3d4
1.75 ETH
Transfer67055702018-11-14 22:49:392664 days ago1542235779
0xdF70fE7e...C2CEeD3d4
2 ETH
Transfer66983662018-11-13 18:35:232665 days ago1542134123
0xdF70fE7e...C2CEeD3d4
1.75 ETH
Transfer66980812018-11-13 17:30:322665 days ago1542130232
0xdF70fE7e...C2CEeD3d4
1 ETH
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:
ExchangeArbitrageToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-11-18
*/

pragma solidity ^0.4.24;

// ----------------------------------------------------------------------------
// ExchangeArbitrage token contract
//
// Symbol      : EXARB
// Name        : Exchange Arbitrage Token
// Decimals    : 18
//
// ----------------------------------------------------------------------------


library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}

contract Owned {
    address public owner;

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

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

contract ExchangeArbitrageToken is Owned {
    using SafeMath for uint;

    string public symbol = "EXARB";
    string public name = "Exchange Arbitrage Token";
    uint8 public decimals = 18;

    uint minted_tokens;
    uint exchange_rate;
    uint max_minted_supply;
    uint cash_out_rate;

    mapping(address => mapping (address => uint)) allowed;

    event Transfer(address indexed from, address indexed to, uint tokens);
    event MintTokens(address from, uint amount);

    event ExchangeRateSet(uint exchange_rate);
    event CashOutRateSet(uint exchange_rate);
    event MaxMintedSupplySet(uint max_minted_supply);
    event Approval(address tokenOwner, address spender, uint tokens);

    // historical tracking of balances at a particular block
    mapping(address => BlockBalance[]) block_balances;
    struct BlockBalance {
        uint block_id;
        uint balance;
    }

    // keep track of which token owners picked up their payout amounts
    // ( token_owner => ( payout_id => paid_out_amount ) )
    mapping(address => mapping(uint16 => uint)) collected_payouts;

    // basic array that has all of the payout ids
    uint16[] payout_ids;

    // mapping that has the payout details.
    mapping(uint16 => PayoutBlock) payouts;
    struct PayoutBlock {
        uint block_id;
        uint amount;
        uint minted_tokens;
    }

    constructor() public payable {
        minted_tokens = 0;
        exchange_rate = 210;
        cash_out_rate = 50000000000000;
        max_minted_supply = 450000000000000000000000;
        emit MaxMintedSupplySet(max_minted_supply);
        emit CashOutRateSet(cash_out_rate);
        emit ExchangeRateSet(exchange_rate);
    }

    function totalSupply() public view returns (uint) {
        return minted_tokens;
    }

    function balanceOf(address tokenOwner) public view returns (uint balance) {
        return getTokenBalanceOf(tokenOwner);
    }

    function allowance(address tokenOwner, address spender) public constant returns(uint remaining){
        return allowed[tokenOwner][spender];
    }

    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }

    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        require(tokens > 0, "Transfer must be positive.");
        require(allowed[from][msg.sender] >= tokens, "Not enough allowed tokens.");
        subtractTokenBalanceFrom(from, tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        addTokenBalanceTo(to, tokens);
        emit Transfer(from, to, tokens);
        return true;
    }

    function ownershipPercentageOf(address tokenOwner) public view returns (uint percentage_8_decimals) {
        return balanceOf(tokenOwner).mul(10000000000).div(minted_tokens);
    }

    function allPayoutIds() public view returns (uint16[]) {
        return payout_ids;
    }

    function getPayoutAmountForId(uint16 payout_id) public view returns (uint) {
        return payouts[payout_id].amount;
    }

    function getPayoutBlockForId(uint16 payout_id) public view returns (uint) {
        return payouts[payout_id].block_id;
    }

    function ethToTokenExchangeRate() public view returns (uint) {
        return exchange_rate;
    }

    function limitMintedSupply() public view returns (uint) {
        return max_minted_supply;
    }

    function limitCashOutRate() public view returns (uint) {
        return cash_out_rate;
    }

    function payoutAmountFor(uint16 payout_id) public view returns (uint) {
        require(payouts[payout_id].block_id > 0, "Invalid payout_id");
        require(block_balances[msg.sender].length > 0, "This address has no history on this contract.");

        PayoutBlock storage payout_block = payouts[payout_id];
        BlockBalance memory relevant_block;
        for(uint i = 0; i < block_balances[msg.sender].length; i++) {
            if (block_balances[msg.sender][i].block_id < payout_block.block_id  ) {
                relevant_block = block_balances[msg.sender][i];
            }
        }
        return relevant_block.balance.mul(payout_block.amount).div(payout_block.minted_tokens);
    }

    function payoutCollected(uint16 payout_id) public view returns (bool) {
        return collected_payouts[msg.sender][payout_id] > 0;
    }

    function payoutCollect(uint16 payout_id) public returns (bool success) {
        require(collected_payouts[msg.sender][payout_id] == 0, "Payment already collected");
        uint payout = payoutAmountFor(payout_id);
        require(address(this).balance >= payout, "Balance is too low.");
        collected_payouts[msg.sender][payout_id] = payout;
        msg.sender.transfer(payout);
        return true;
    }

    function calculateCashOut() public view returns (uint amount) {
        uint current_token_balance = getTokenBalanceOf(msg.sender);
        uint payout = current_token_balance.mul(cash_out_rate).div(1000000000000000000);
        return payout;
    }

    function cashOut() public returns (bool success) {
        uint current_token_balance = getTokenBalanceOf(msg.sender);
        require(current_token_balance > 0, 'Address has no balance');
        uint payout = current_token_balance.mul(cash_out_rate).div(1000000000000000000);
        subtractTokenBalanceFrom(msg.sender, current_token_balance);
        minted_tokens = minted_tokens.sub(current_token_balance);
        msg.sender.transfer(payout);
        return true;
    }

    // Allow anyone to transfer to anyone else as long as they have enough balance.
    function transfer(address to, uint tokens) public returns (bool success) {
        require(tokens > 0, "Transfer must be positive.");

        subtractTokenBalanceFrom(msg.sender, tokens);
        addTokenBalanceTo(to, tokens);

        emit Transfer(msg.sender, to, tokens);
        return true;
    }

    function () public payable {
        if (msg.sender != owner){
            require(msg.value.mul(exchange_rate) + minted_tokens < max_minted_supply, "Contract Fully Funded.  Try again later.");
            mint(msg.sender, msg.value);
            if (!owner.send(msg.value)) { revert(); }
        } else {
            require(msg.value > 0);  // owner sent funds.  keep on contract for payouts.
        }
    }

    // ----------------------------------------------------------------------------
    //   private functions
    // ----------------------------------------------------------------------------

    function mint(address sender, uint value) private {
        uint tokens = value.mul(exchange_rate);
        addTokenBalanceTo(sender, tokens);
        minted_tokens = minted_tokens.add(tokens);
        emit MintTokens(sender, tokens);
    }

    function getTokenBalanceOf(address tokenOwner) private view returns (uint tokens) {
        uint owner_block_balance_length = block_balances[tokenOwner].length;
        if (owner_block_balance_length == 0) {
            return 0;
        } else {
            return block_balances[tokenOwner][owner_block_balance_length-1].balance;
        }
    }

    function addTokenBalanceTo(address tokenOwner, uint value) private {
        uint owner_block_balance_length = block_balances[tokenOwner].length;
        if (owner_block_balance_length == 0) {
            block_balances[tokenOwner].push(BlockBalance({ block_id: block.number, balance: value }));
        } else {
            BlockBalance storage owner_last_block_balance = block_balances[tokenOwner][owner_block_balance_length-1];

            uint owner_current_balance = getTokenBalanceOf(tokenOwner);

            // if we have never had any payouts or there has been no payout since the last time the user sent eth.
            //   --> reuse the last location
            // else --> create a new location
            if (payout_ids.length == 0 || owner_last_block_balance.block_id > payouts[payout_ids[payout_ids.length-1]].block_id ) {
                // overwrite last item in the array.
                block_balances[tokenOwner][owner_block_balance_length-1] = BlockBalance({ block_id: block.number, balance: owner_current_balance.add(value) });
            } else {
                block_balances[tokenOwner].push(BlockBalance({ block_id: block.number, balance: owner_current_balance.add(value) }));
            }
        }
    }

    function subtractTokenBalanceFrom(address tokenOwner, uint value) private {
        uint owner_block_balance_length = block_balances[tokenOwner].length;
        if (owner_block_balance_length == 0) {
            revert('Can not remove balance from an address with no history.');
        } else {
            BlockBalance storage owner_last_block_balance = block_balances[tokenOwner][owner_block_balance_length-1];

            uint owner_current_balance = getTokenBalanceOf(tokenOwner);

            // if we have never had any payouts or there has been no payout since the last time the user sent eth.
            //   --> reuse the last location
            // else --> create a new location
            if (payout_ids.length == 0 || owner_last_block_balance.block_id > payouts[payout_ids[payout_ids.length-1]].block_id ) {
                // overwrite last item in the array.
                block_balances[tokenOwner][owner_block_balance_length-1] = BlockBalance({ block_id: block.number, balance: owner_current_balance.sub(value) });
            } else {
                block_balances[tokenOwner].push(BlockBalance({ block_id: block.number, balance: owner_current_balance.sub(value) }));
            }
        }

    }

    // ----------------------------------------------------------------------------
    //   onlyOwner functions.
    // ----------------------------------------------------------------------------

    function payout(uint16 payout_id, uint amount) public onlyOwner returns (bool success) {
        require(payouts[payout_id].block_id == 0);
        payouts[payout_id] = PayoutBlock({ block_id: block.number, amount: amount, minted_tokens: minted_tokens });
        payout_ids.push(payout_id);
        return true;
    }

    function setExchangeRate(uint newRate) public onlyOwner returns (bool success) {
        exchange_rate = newRate;
        emit ExchangeRateSet(newRate);
        return true;
    }

    function setCashOutRate(uint newRate) public onlyOwner returns (bool success) {
        cash_out_rate = newRate;
        emit CashOutRateSet(newRate);
        return true;
    }

    function setMaxMintedSupply(uint newMaxMintedSupply) public onlyOwner returns (bool success) {
        max_minted_supply = newMaxMintedSupply;
        emit MaxMintedSupplySet(max_minted_supply);
        return true;
    }

    function ownerTransfer(address from, address to, uint tokens) public onlyOwner returns (bool success) {
        require(tokens > 0, "Transfer must be positive.");

        subtractTokenBalanceFrom(from, tokens);
        addTokenBalanceTo(to, tokens);

        emit Transfer(from, to, tokens);
        return true;
    }

    function ownerMint(address to, uint tokens) public onlyOwner returns (bool success) {
        addTokenBalanceTo(to, tokens);
        minted_tokens = minted_tokens.add(tokens);
        emit MintTokens(to, tokens);
        return true;
    }

    function destroy() public onlyOwner {
        selfdestruct(owner);
    }

}

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":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"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":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"limitMintedSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"payout_id","type":"uint16"}],"name":"getPayoutAmountForId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"ownerMint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calculateCashOut","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newRate","type":"uint256"}],"name":"setCashOutRate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cashOut","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"limitCashOutRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"ownershipPercentageOf","outputs":[{"name":"percentage_8_decimals","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"payout_id","type":"uint16"}],"name":"payoutCollected","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"ownerTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"payout_id","type":"uint16"}],"name":"getPayoutBlockForId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allPayoutIds","outputs":[{"name":"","type":"uint16[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"payout_id","type":"uint16"}],"name":"payoutCollect","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"payout_id","type":"uint16"},{"name":"amount","type":"uint256"}],"name":"payout","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newRate","type":"uint256"}],"name":"setExchangeRate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMaxMintedSupply","type":"uint256"}],"name":"setMaxMintedSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"payout_id","type":"uint16"}],"name":"payoutAmountFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethToTokenExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"MintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"exchange_rate","type":"uint256"}],"name":"ExchangeRateSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"exchange_rate","type":"uint256"}],"name":"CashOutRateSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"max_minted_supply","type":"uint256"}],"name":"MaxMintedSupplySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenOwner","type":"address"},{"indexed":false,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

60c0604052600560808190527f455841524200000000000000000000000000000000000000000000000000000060a09081526200004091600191906200016b565b506040805180820190915260188082527f45786368616e67652041726269747261676520546f6b656e0000000000000000602090920191825262000087916002916200016b565b506003805460ff1916601217905560008054600160a060020a0319163317815560045560d2600555652d79883d2000600755695f4a8c8375d155400000600681905560408051918252517f09e8234eb2009ce3391324d4839f3104f7a5119592edd773c85aa0603d0af4379181900360200190a160075460408051918252517f3f5557150210ab2c28b8bb0639332ba8b3ea83ee948eba4268f80720c626be189181900360200190a160055460408051918252517f972aba470577c14606bbf4bbdec1fed4925f242fcef40b4a8d242983365d02919181900360200190a162000210565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ae57805160ff1916838001178555620001de565b82800160010185558215620001de579182015b82811115620001de578251825591602001919060010190620001c1565b50620001ec929150620001f0565b5090565b6200020d91905b80821115620001ec5760008155600101620001f7565b90565b61180680620002206000396000f3006080604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461026e578063095ea7b3146102f857806318160ddd1461033057806323b872dd146103575780632bc503a714610381578063313ce5671461039657806346c16466146103c1578063484b973c146103dd57806370a08231146104015780637215961d1461042257806375c789ea14610437578063793cd71e1461044f5780637ef4e03914610464578063812807dc1461047957806383197ef01461049a5780638da5cb5b146104af57806395d89b41146104e05780639ba5e027146104f5578063a1291f7f14610511578063a9059cbb1461053b578063aed2c71a1461055f578063bd3b7cee1461057b578063bd539516146105e0578063cba67389146105fc578063db068e0e1461061b578063dc7fe53514610633578063dd62ed3e1461064b578063ea16728b14610672578063fbfa490c1461068e575b600054600160a060020a0316331461025f576006546004546005546101a090349063ffffffff6106a316565b011061021c576040805160e560020a62461bcd02815260206004820152602860248201527f436f6e74726163742046756c6c792046756e6465642e2020547279206167616960448201527f6e206c617465722e000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61022633346106ce565b60008054604051600160a060020a03909116913480156108fc02929091818181858888f19350505050151561025a57600080fd5b61026c565b6000341161026c57600080fd5b005b34801561027a57600080fd5b50610283610750565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bd5781810151838201526020016102a5565b50505050905090810190601f1680156102ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030457600080fd5b5061031c600160a060020a03600435166024356107db565b604080519115158252519081900360200190f35b34801561033c57600080fd5b5061034561084c565b60408051918252519081900360200190f35b34801561036357600080fd5b5061031c600160a060020a0360043581169060243516604435610852565b34801561038d57600080fd5b506103456109e7565b3480156103a257600080fd5b506103ab6109ed565b6040805160ff9092168252519081900360200190f35b3480156103cd57600080fd5b5061034561ffff600435166109f6565b3480156103e957600080fd5b5061031c600160a060020a0360043516602435610a0f565b34801561040d57600080fd5b50610345600160a060020a0360043516610a94565b34801561042e57600080fd5b50610345610a9f565b34801561044357600080fd5b5061031c600435610ae3565b34801561045b57600080fd5b5061031c610b3b565b34801561047057600080fd5b50610345610c1d565b34801561048557600080fd5b50610345600160a060020a0360043516610c23565b3480156104a657600080fd5b5061026c610c49565b3480156104bb57600080fd5b506104c4610c6e565b60408051600160a060020a039092168252519081900360200190f35b3480156104ec57600080fd5b50610283610c7d565b34801561050157600080fd5b5061031c61ffff60043516610cd7565b34801561051d57600080fd5b5061031c600160a060020a0360043581169060243516604435610cfc565b34801561054757600080fd5b5061031c600160a060020a0360043516602435610d80565b34801561056b57600080fd5b5061034561ffff60043516610e36565b34801561058757600080fd5b50610590610e4c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105cc5781810151838201526020016105b4565b505050509050019250505060405180910390f35b3480156105ec57600080fd5b5061031c61ffff60043516610ecc565b34801561060857600080fd5b5061031c61ffff60043516602435610ffc565b34801561062757600080fd5b5061031c6004356110cc565b34801561063f57600080fd5b5061031c600435611124565b34801561065757600080fd5b50610345600160a060020a036004358116906024351661117c565b34801561067e57600080fd5b5061034561ffff600435166111a7565b34801561069a57600080fd5b50610345611389565b8181028215806106bd57508183828115156106ba57fe5b04145b15156106c857600080fd5b92915050565b60006106e5600554836106a390919063ffffffff16565b90506106f1838261138f565b600454610704908263ffffffff61157f16565b60045560408051600160a060020a03851681526020810183905281517f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343929181900390910190a1505050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b505050505081565b336000818152600860209081526040808320600160a060020a0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a150600192915050565b60045490565b60008082116108ab576040805160e560020a62461bcd02815260206004820152601a60248201527f5472616e73666572206d75737420626520706f7369746976652e000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600860209081526040808320338452909152902054821115610926576040805160e560020a62461bcd02815260206004820152601a60248201527f4e6f7420656e6f75676820616c6c6f77656420746f6b656e732e000000000000604482015290519081900360640190fd5b610930848361158f565b600160a060020a0384166000908152600860209081526040808320338452909152902054610964908363ffffffff61172316565b600160a060020a0385166000908152600860209081526040808320338452909152902055610992838361138f565b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b60065490565b60035460ff1681565b61ffff166000908152600c602052604090206001015490565b60008054600160a060020a03163314610a2757600080fd5b610a31838361138f565b600454610a44908363ffffffff61157f16565b60045560408051600160a060020a03851681526020810184905281517f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343929181900390910190a150600192915050565b60006106c882611738565b6000806000610aad33611738565b9150610adc670de0b6b3a7640000610ad0600754856106a390919063ffffffff16565b9063ffffffff6117a216565b9392505050565b60008054600160a060020a03163314610afb57600080fd5b60078290556040805183815290517f3f5557150210ab2c28b8bb0639332ba8b3ea83ee948eba4268f80720c626be189181900360200190a1506001919050565b6000806000610b4933611738565b915060008211610ba3576040805160e560020a62461bcd02815260206004820152601660248201527f4164647265737320686173206e6f2062616c616e636500000000000000000000604482015290519081900360640190fd5b610bc4670de0b6b3a7640000610ad0600754856106a390919063ffffffff16565b9050610bd0338361158f565b600454610be3908363ffffffff61172316565b600455604051339082156108fc029083906000818181858888f19350505050158015610c13573d6000803e3d6000fd5b5060019250505090565b60075490565b60006106c8600454610ad06402540be400610c3d86610a94565b9063ffffffff6106a316565b600054600160a060020a03163314610c6057600080fd5b600054600160a060020a0316ff5b600054600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107d35780601f106107a8576101008083540402835291602001916107d3565b336000908152600a6020908152604080832061ffff8516845290915281205411919050565b60008054600160a060020a03163314610d1457600080fd5b60008211610d6c576040805160e560020a62461bcd02815260206004820152601a60248201527f5472616e73666572206d75737420626520706f7369746976652e000000000000604482015290519081900360640190fd5b610d76848361158f565b610992838361138f565b6000808211610dd9576040805160e560020a62461bcd02815260206004820152601a60248201527f5472616e73666572206d75737420626520706f7369746976652e000000000000604482015290519081900360640190fd5b610de3338361158f565b610ded838361138f565b604080518381529051600160a060020a0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b61ffff166000908152600c602052604090205490565b6060600b805480602002602001604051908101604052809291908181526020018280548015610ec257602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610e895790505b5050505050905090565b336000908152600a6020908152604080832061ffff85168452909152812054819015610f42576040805160e560020a62461bcd02815260206004820152601960248201527f5061796d656e7420616c726561647920636f6c6c656374656400000000000000604482015290519081900360640190fd5b610f4b836111a7565b90503031811115610fa6576040805160e560020a62461bcd02815260206004820152601360248201527f42616c616e636520697320746f6f206c6f772e00000000000000000000000000604482015290519081900360640190fd5b336000818152600a6020908152604080832061ffff881684529091528082208490555183156108fc0291849190818181858888f19350505050158015610ff0573d6000803e3d6000fd5b50600191505b50919050565b60008054600160a060020a0316331461101457600080fd5b61ffff83166000908152600c60205260409020541561103257600080fd5b5060408051606081018252438152602080820193845260045482840190815261ffff9586166000818152600c9093529382209251835593516001808401919091559351600292830155600b805480860182559152601081047f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018054600f9092169092026101000a92830292909402199093161790915590565b60008054600160a060020a031633146110e457600080fd5b60058290556040805183815290517f972aba470577c14606bbf4bbdec1fed4925f242fcef40b4a8d242983365d02919181900360200190a1506001919050565b60008054600160a060020a0316331461113c57600080fd5b60068290556040805183815290517f09e8234eb2009ce3391324d4839f3104f7a5119592edd773c85aa0603d0af4379181900360200190a1506001919050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b6000806111b26117c3565b61ffff84166000908152600c6020526040812054811061121c576040805160e560020a62461bcd02815260206004820152601160248201527f496e76616c6964207061796f75745f6964000000000000000000000000000000604482015290519081900360640190fd5b33600090815260096020526040812054116112a7576040805160e560020a62461bcd02815260206004820152602d60248201527f54686973206164647265737320686173206e6f20686973746f7279206f6e207460448201527f68697320636f6e74726163742e00000000000000000000000000000000000000606482015290519081900360840190fd5b5061ffff84166000908152600c6020526040812092505b3360009081526009602052604090205481101561135d5782543360009081526009602052604090208054839081106112f257fe5b90600052602060002090600202016000015410156113555733600090815260096020526040902080548290811061132557fe5b90600052602060002090600202016040805190810160405290816000820154815260200160018201548152505091505b6001016112be565b6113808360020154610ad0856001015485602001516106a390919063ffffffff16565b95945050505050565b60055490565b600160a060020a038216600090815260096020526040812054908082151561140457600160a060020a0385166000908152600960209081526040808320815180830190925243825281830188815281546001818101845592865293909420915160029093029091019182559151910155611578565b600160a060020a03851660009081526009602052604090208054600019850190811061142c57fe5b9060005260206000209060020201915061144585611738565b600b54909150158061149f5750600b8054600c91600091600019810190811061146a57fe5b60009182526020808320601083040154600f9092166002026101000a90910461ffff1683528201929092526040019020548254115b156115135760408051808201909152438152602081016114c5838763ffffffff61157f16565b9052600160a060020a0386166000908152600960205260409020805460001986019081106114ef57fe5b60009182526020918290208351600290920201908155910151600190910155611578565b600160a060020a03851660009081526009602090815260409182902082518084019093524383529190810161154e848863ffffffff61157f16565b90528154600181810184556000938452602093849020835160029093020191825592909101519101555b5050505050565b818101828110156106c857600080fd5b600160a060020a0382166000908152600960205260408120549080821515611627576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f742072656d6f76652062616c616e63652066726f6d20616e206160448201527f6464726573732077697468206e6f20686973746f72792e000000000000000000606482015290519081900360840190fd5b600160a060020a03851660009081526009602052604090208054600019850190811061164f57fe5b9060005260206000209060020201915061166885611738565b600b5490915015806116c25750600b8054600c91600091600019810190811061168d57fe5b60009182526020808320601083040154600f9092166002026101000a90910461ffff1683528201929092526040019020548254115b156116e85760408051808201909152438152602081016114c5838763ffffffff61172316565b600160a060020a03851660009081526009602090815260409182902082518084019093524383529190810161154e848863ffffffff61172316565b60008282111561173257600080fd5b50900390565b600160a060020a0381166000908152600960205260408120548015156117615760009150610ff6565b600160a060020a03831660009081526009602052604090208054600019830190811061178957fe5b9060005260206000209060020201600101549150610ff6565b60008082116117b057600080fd5b81838115156117bb57fe5b049392505050565b6040805180820190915260008082526020820152905600a165627a7a723058205e9c93be1efbd6c2fcb062075f797edd9d77396e7040e233a26918c6e61828330029

Deployed Bytecode

0x6080604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461026e578063095ea7b3146102f857806318160ddd1461033057806323b872dd146103575780632bc503a714610381578063313ce5671461039657806346c16466146103c1578063484b973c146103dd57806370a08231146104015780637215961d1461042257806375c789ea14610437578063793cd71e1461044f5780637ef4e03914610464578063812807dc1461047957806383197ef01461049a5780638da5cb5b146104af57806395d89b41146104e05780639ba5e027146104f5578063a1291f7f14610511578063a9059cbb1461053b578063aed2c71a1461055f578063bd3b7cee1461057b578063bd539516146105e0578063cba67389146105fc578063db068e0e1461061b578063dc7fe53514610633578063dd62ed3e1461064b578063ea16728b14610672578063fbfa490c1461068e575b600054600160a060020a0316331461025f576006546004546005546101a090349063ffffffff6106a316565b011061021c576040805160e560020a62461bcd02815260206004820152602860248201527f436f6e74726163742046756c6c792046756e6465642e2020547279206167616960448201527f6e206c617465722e000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61022633346106ce565b60008054604051600160a060020a03909116913480156108fc02929091818181858888f19350505050151561025a57600080fd5b61026c565b6000341161026c57600080fd5b005b34801561027a57600080fd5b50610283610750565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bd5781810151838201526020016102a5565b50505050905090810190601f1680156102ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030457600080fd5b5061031c600160a060020a03600435166024356107db565b604080519115158252519081900360200190f35b34801561033c57600080fd5b5061034561084c565b60408051918252519081900360200190f35b34801561036357600080fd5b5061031c600160a060020a0360043581169060243516604435610852565b34801561038d57600080fd5b506103456109e7565b3480156103a257600080fd5b506103ab6109ed565b6040805160ff9092168252519081900360200190f35b3480156103cd57600080fd5b5061034561ffff600435166109f6565b3480156103e957600080fd5b5061031c600160a060020a0360043516602435610a0f565b34801561040d57600080fd5b50610345600160a060020a0360043516610a94565b34801561042e57600080fd5b50610345610a9f565b34801561044357600080fd5b5061031c600435610ae3565b34801561045b57600080fd5b5061031c610b3b565b34801561047057600080fd5b50610345610c1d565b34801561048557600080fd5b50610345600160a060020a0360043516610c23565b3480156104a657600080fd5b5061026c610c49565b3480156104bb57600080fd5b506104c4610c6e565b60408051600160a060020a039092168252519081900360200190f35b3480156104ec57600080fd5b50610283610c7d565b34801561050157600080fd5b5061031c61ffff60043516610cd7565b34801561051d57600080fd5b5061031c600160a060020a0360043581169060243516604435610cfc565b34801561054757600080fd5b5061031c600160a060020a0360043516602435610d80565b34801561056b57600080fd5b5061034561ffff60043516610e36565b34801561058757600080fd5b50610590610e4c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105cc5781810151838201526020016105b4565b505050509050019250505060405180910390f35b3480156105ec57600080fd5b5061031c61ffff60043516610ecc565b34801561060857600080fd5b5061031c61ffff60043516602435610ffc565b34801561062757600080fd5b5061031c6004356110cc565b34801561063f57600080fd5b5061031c600435611124565b34801561065757600080fd5b50610345600160a060020a036004358116906024351661117c565b34801561067e57600080fd5b5061034561ffff600435166111a7565b34801561069a57600080fd5b50610345611389565b8181028215806106bd57508183828115156106ba57fe5b04145b15156106c857600080fd5b92915050565b60006106e5600554836106a390919063ffffffff16565b90506106f1838261138f565b600454610704908263ffffffff61157f16565b60045560408051600160a060020a03851681526020810183905281517f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343929181900390910190a1505050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b505050505081565b336000818152600860209081526040808320600160a060020a0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a150600192915050565b60045490565b60008082116108ab576040805160e560020a62461bcd02815260206004820152601a60248201527f5472616e73666572206d75737420626520706f7369746976652e000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600860209081526040808320338452909152902054821115610926576040805160e560020a62461bcd02815260206004820152601a60248201527f4e6f7420656e6f75676820616c6c6f77656420746f6b656e732e000000000000604482015290519081900360640190fd5b610930848361158f565b600160a060020a0384166000908152600860209081526040808320338452909152902054610964908363ffffffff61172316565b600160a060020a0385166000908152600860209081526040808320338452909152902055610992838361138f565b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b60065490565b60035460ff1681565b61ffff166000908152600c602052604090206001015490565b60008054600160a060020a03163314610a2757600080fd5b610a31838361138f565b600454610a44908363ffffffff61157f16565b60045560408051600160a060020a03851681526020810184905281517f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343929181900390910190a150600192915050565b60006106c882611738565b6000806000610aad33611738565b9150610adc670de0b6b3a7640000610ad0600754856106a390919063ffffffff16565b9063ffffffff6117a216565b9392505050565b60008054600160a060020a03163314610afb57600080fd5b60078290556040805183815290517f3f5557150210ab2c28b8bb0639332ba8b3ea83ee948eba4268f80720c626be189181900360200190a1506001919050565b6000806000610b4933611738565b915060008211610ba3576040805160e560020a62461bcd02815260206004820152601660248201527f4164647265737320686173206e6f2062616c616e636500000000000000000000604482015290519081900360640190fd5b610bc4670de0b6b3a7640000610ad0600754856106a390919063ffffffff16565b9050610bd0338361158f565b600454610be3908363ffffffff61172316565b600455604051339082156108fc029083906000818181858888f19350505050158015610c13573d6000803e3d6000fd5b5060019250505090565b60075490565b60006106c8600454610ad06402540be400610c3d86610a94565b9063ffffffff6106a316565b600054600160a060020a03163314610c6057600080fd5b600054600160a060020a0316ff5b600054600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107d35780601f106107a8576101008083540402835291602001916107d3565b336000908152600a6020908152604080832061ffff8516845290915281205411919050565b60008054600160a060020a03163314610d1457600080fd5b60008211610d6c576040805160e560020a62461bcd02815260206004820152601a60248201527f5472616e73666572206d75737420626520706f7369746976652e000000000000604482015290519081900360640190fd5b610d76848361158f565b610992838361138f565b6000808211610dd9576040805160e560020a62461bcd02815260206004820152601a60248201527f5472616e73666572206d75737420626520706f7369746976652e000000000000604482015290519081900360640190fd5b610de3338361158f565b610ded838361138f565b604080518381529051600160a060020a0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b61ffff166000908152600c602052604090205490565b6060600b805480602002602001604051908101604052809291908181526020018280548015610ec257602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610e895790505b5050505050905090565b336000908152600a6020908152604080832061ffff85168452909152812054819015610f42576040805160e560020a62461bcd02815260206004820152601960248201527f5061796d656e7420616c726561647920636f6c6c656374656400000000000000604482015290519081900360640190fd5b610f4b836111a7565b90503031811115610fa6576040805160e560020a62461bcd02815260206004820152601360248201527f42616c616e636520697320746f6f206c6f772e00000000000000000000000000604482015290519081900360640190fd5b336000818152600a6020908152604080832061ffff881684529091528082208490555183156108fc0291849190818181858888f19350505050158015610ff0573d6000803e3d6000fd5b50600191505b50919050565b60008054600160a060020a0316331461101457600080fd5b61ffff83166000908152600c60205260409020541561103257600080fd5b5060408051606081018252438152602080820193845260045482840190815261ffff9586166000818152600c9093529382209251835593516001808401919091559351600292830155600b805480860182559152601081047f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018054600f9092169092026101000a92830292909402199093161790915590565b60008054600160a060020a031633146110e457600080fd5b60058290556040805183815290517f972aba470577c14606bbf4bbdec1fed4925f242fcef40b4a8d242983365d02919181900360200190a1506001919050565b60008054600160a060020a0316331461113c57600080fd5b60068290556040805183815290517f09e8234eb2009ce3391324d4839f3104f7a5119592edd773c85aa0603d0af4379181900360200190a1506001919050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b6000806111b26117c3565b61ffff84166000908152600c6020526040812054811061121c576040805160e560020a62461bcd02815260206004820152601160248201527f496e76616c6964207061796f75745f6964000000000000000000000000000000604482015290519081900360640190fd5b33600090815260096020526040812054116112a7576040805160e560020a62461bcd02815260206004820152602d60248201527f54686973206164647265737320686173206e6f20686973746f7279206f6e207460448201527f68697320636f6e74726163742e00000000000000000000000000000000000000606482015290519081900360840190fd5b5061ffff84166000908152600c6020526040812092505b3360009081526009602052604090205481101561135d5782543360009081526009602052604090208054839081106112f257fe5b90600052602060002090600202016000015410156113555733600090815260096020526040902080548290811061132557fe5b90600052602060002090600202016040805190810160405290816000820154815260200160018201548152505091505b6001016112be565b6113808360020154610ad0856001015485602001516106a390919063ffffffff16565b95945050505050565b60055490565b600160a060020a038216600090815260096020526040812054908082151561140457600160a060020a0385166000908152600960209081526040808320815180830190925243825281830188815281546001818101845592865293909420915160029093029091019182559151910155611578565b600160a060020a03851660009081526009602052604090208054600019850190811061142c57fe5b9060005260206000209060020201915061144585611738565b600b54909150158061149f5750600b8054600c91600091600019810190811061146a57fe5b60009182526020808320601083040154600f9092166002026101000a90910461ffff1683528201929092526040019020548254115b156115135760408051808201909152438152602081016114c5838763ffffffff61157f16565b9052600160a060020a0386166000908152600960205260409020805460001986019081106114ef57fe5b60009182526020918290208351600290920201908155910151600190910155611578565b600160a060020a03851660009081526009602090815260409182902082518084019093524383529190810161154e848863ffffffff61157f16565b90528154600181810184556000938452602093849020835160029093020191825592909101519101555b5050505050565b818101828110156106c857600080fd5b600160a060020a0382166000908152600960205260408120549080821515611627576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f742072656d6f76652062616c616e63652066726f6d20616e206160448201527f6464726573732077697468206e6f20686973746f72792e000000000000000000606482015290519081900360840190fd5b600160a060020a03851660009081526009602052604090208054600019850190811061164f57fe5b9060005260206000209060020201915061166885611738565b600b5490915015806116c25750600b8054600c91600091600019810190811061168d57fe5b60009182526020808320601083040154600f9092166002026101000a90910461ffff1683528201929092526040019020548254115b156116e85760408051808201909152438152602081016114c5838763ffffffff61172316565b600160a060020a03851660009081526009602090815260409182902082518084019093524383529190810161154e848863ffffffff61172316565b60008282111561173257600080fd5b50900390565b600160a060020a0381166000908152600960205260408120548015156117615760009150610ff6565b600160a060020a03831660009081526009602052604090208054600019830190811061178957fe5b9060005260206000209060020201600101549150610ff6565b60008082116117b057600080fd5b81838115156117bb57fe5b049392505050565b6040805180820190915260008082526020820152905600a165627a7a723058205e9c93be1efbd6c2fcb062075f797edd9d77396e7040e233a26918c6e61828330029

Swarm Source

bzzr://5e9c93be1efbd6c2fcb062075f797edd9d77396e7040e233a26918c6e6182833

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.