ETH Price: $3,236.13 (-10.00%)
Gas: 47 Gwei

Contract

0xA9F801f160fe6A866dD3404599350AbBCAA95274
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Owner Withdraw E...161187792022-12-05 13:03:11469 days ago1670245391IN
0xA9F801f1...BCAA95274
0 ETH0.0006749811.79504086
Create Trade Con...66368572018-11-03 16:40:411962 days ago1541263241IN
0xA9F801f1...BCAA95274
0 ETH0.004751885
Create Trade Con...57570952018-06-09 4:32:472110 days ago1528518767IN
0xA9F801f1...BCAA95274
0 ETH0.00475535
Create Trade Con...54969382018-04-24 10:32:142156 days ago1524565934IN
0xA9F801f1...BCAA95274
0 ETH0.001901512
Create Trade Con...54854102018-04-22 10:53:122158 days ago1524394392IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...54774892018-04-21 2:16:532159 days ago1524277013IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...54738332018-04-20 11:18:192159 days ago1524223099IN
0xA9F801f1...BCAA95274
0 ETH0.001901512
Create Trade Con...54335972018-04-13 14:21:392166 days ago1523629299IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...54326902018-04-13 10:39:052167 days ago1523615945IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...54277302018-04-12 14:23:332167 days ago1523543013IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...54267132018-04-12 10:18:422168 days ago1523528322IN
0xA9F801f1...BCAA95274
0 ETH0.002185882.3
Create Trade Con...54250722018-04-12 3:42:332168 days ago1523504553IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...54187252018-04-11 2:04:292169 days ago1523412269IN
0xA9F801f1...BCAA95274
0 ETH0.0093539510
Create Trade Con...54186022018-04-11 1:36:032169 days ago1523410563IN
0xA9F801f1...BCAA95274
0 ETH0.000310
Create Trade Con...53747942018-04-03 19:37:252176 days ago1522784245IN
0xA9F801f1...BCAA95274
0 ETH0.000950751
Create Trade Con...53736702018-04-03 15:07:342176 days ago1522768054IN
0xA9F801f1...BCAA95274
0 ETH0.001901512
Create Trade Con...53677572018-04-02 15:31:152177 days ago1522683075IN
0xA9F801f1...BCAA95274
0 ETH0.00106641
Create Trade Con...53608162018-04-01 12:02:162178 days ago1522584136IN
0xA9F801f1...BCAA95274
0 ETH0.000967641
Create Trade Con...53598332018-04-01 8:06:502179 days ago1522570010IN
0xA9F801f1...BCAA95274
0 ETH0.003803024
Create Trade Con...53597102018-04-01 7:39:162179 days ago1522568356IN
0xA9F801f1...BCAA95274
0 ETH0.003803024
Create Trade Con...53506392018-03-30 19:32:012180 days ago1522438321IN
0xA9F801f1...BCAA95274
0 ETH0.001901512
Create Trade Con...53492962018-03-30 14:10:212180 days ago1522419021IN
0xA9F801f1...BCAA95274
0 ETH0.001901512
Create Trade Con...53491182018-03-30 13:25:552180 days ago1522416355IN
0xA9F801f1...BCAA95274
0 ETH0.001901512
Create Trade Con...53484692018-03-30 10:46:452181 days ago1522406805IN
0xA9F801f1...BCAA95274
0 ETH0.001901642
Create Trade Con...53483112018-03-30 10:09:032181 days ago1522404543IN
0xA9F801f1...BCAA95274
0 ETH0.001901772
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
66368572018-11-03 16:40:411962 days ago1541263241
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
57570952018-06-09 4:32:472110 days ago1528518767
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54969382018-04-24 10:32:142156 days ago1524565934
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54854102018-04-22 10:53:122158 days ago1524394392
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54774892018-04-21 2:16:532159 days ago1524277013
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54738332018-04-20 11:18:192159 days ago1524223099
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54335972018-04-13 14:21:392166 days ago1523629299
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54326902018-04-13 10:39:052167 days ago1523615945
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54277302018-04-12 14:23:332167 days ago1523543013
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54267132018-04-12 10:18:422168 days ago1523528322
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54250722018-04-12 3:42:332168 days ago1523504553
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
54187252018-04-11 2:04:292169 days ago1523412269
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53747942018-04-03 19:37:252176 days ago1522784245
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53736702018-04-03 15:07:342176 days ago1522768054
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53598332018-04-01 8:06:502179 days ago1522570010
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53597102018-04-01 7:39:162179 days ago1522568356
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53506392018-03-30 19:32:012180 days ago1522438321
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53492962018-03-30 14:10:212180 days ago1522419021
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53491182018-03-30 13:25:552180 days ago1522416355
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53484692018-03-30 10:46:452181 days ago1522406805
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53483112018-03-30 10:09:032181 days ago1522404543
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53482692018-03-30 9:57:392181 days ago1522403859
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53475872018-03-30 7:15:592181 days ago1522394159
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53456022018-03-29 23:13:082181 days ago1522365188
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
53392182018-03-28 21:12:142182 days ago1522271534
0xA9F801f1...BCAA95274
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenTraderFactory

Compiler Version
v0.4.6+commit.2dabbdf0

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-02-07
*/

pragma solidity ^0.4.4;

// ------------------------------------------------------------------------
// TokenTraderFactory
//
// Decentralised trustless ERC20-compliant token to ETH exchange contract
// on the Ethereum blockchain.
//
// Note that this TokenTrader cannot be used with the Golem Network Token
// directly as the token does not implement the ERC20
// transferFrom(...), approve(...) and allowance(...) methods
//
// History:
//   Jan 25 2017 - BPB Added makerTransferAsset(...) and
//                     makerTransferEther(...)
//   Feb 05 2017 - BPB Bug fix in the change calculation for the Unicorn
//                     token with natural number 1
//   Feb 08 2017 - BPB/JL Renamed etherValueOfTokensToSell to
//                     amountOfTokensToSell in takerSellAsset(...) to
//                     better describe the parameter
//                     Added check in createTradeContract(...) to prevent
//                     GNTs from being used with this contract. The asset
//                     token will need to have an allowance(...) function.
//
// Enjoy. (c) JonnyLatte & BokkyPooBah 2017. The MIT licence.
// ------------------------------------------------------------------------

// https://github.com/ethereum/EIPs/issues/20
contract ERC20 {
    function totalSupply() constant returns (uint totalSupply);
    function balanceOf(address _owner) constant returns (uint balance);
    function transfer(address _to, uint _value) returns (bool success);
    function transferFrom(address _from, address _to, uint _value) returns (bool success);
    function approve(address _spender, uint _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint remaining);
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

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

    function Owned() {
        owner = msg.sender;
    }

    modifier onlyOwner {
        if (msg.sender != owner) throw;
        _;
    }

    modifier onlyOwnerOrTokenTraderWithSameOwner {
        if (msg.sender != owner && TokenTrader(msg.sender).owner() != owner) throw;
        _;
    }

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

// contract can buy or sell tokens for ETH
// prices are in amount of wei per batch of token units

contract TokenTrader is Owned {

    address public asset;       // address of token
    uint256 public buyPrice;    // contract buys lots of token at this price
    uint256 public sellPrice;   // contract sells lots at this price
    uint256 public units;       // lot size (token-wei)

    bool public buysTokens;     // is contract buying
    bool public sellsTokens;    // is contract selling

    event ActivatedEvent(bool buys, bool sells);
    event MakerDepositedEther(uint256 amount);
    event MakerWithdrewAsset(uint256 tokens);
    event MakerTransferredAsset(address toTokenTrader, uint256 tokens);
    event MakerWithdrewERC20Token(address tokenAddress, uint256 tokens);
    event MakerWithdrewEther(uint256 ethers);
    event MakerTransferredEther(address toTokenTrader, uint256 ethers);
    event TakerBoughtAsset(address indexed buyer, uint256 ethersSent,
        uint256 ethersReturned, uint256 tokensBought);
    event TakerSoldAsset(address indexed seller, uint256 amountOfTokensToSell,
        uint256 tokensSold, uint256 etherValueOfTokensSold);

    // Constructor - only to be called by the TokenTraderFactory contract
    function TokenTrader (
        address _asset,
        uint256 _buyPrice,
        uint256 _sellPrice,
        uint256 _units,
        bool    _buysTokens,
        bool    _sellsTokens
    ) {
        asset       = _asset;
        buyPrice    = _buyPrice;
        sellPrice   = _sellPrice;
        units       = _units;
        buysTokens  = _buysTokens;
        sellsTokens = _sellsTokens;
        ActivatedEvent(buysTokens, sellsTokens);
    }

    // Maker can activate or deactivate this contract's buying and
    // selling status
    //
    // The ActivatedEvent() event is logged with the following
    // parameter:
    //   buysTokens   this contract can buy asset tokens
    //   sellsTokens  this contract can sell asset tokens
    //
    function activate (
        bool _buysTokens,
        bool _sellsTokens
    ) onlyOwner {
        buysTokens  = _buysTokens;
        sellsTokens = _sellsTokens;
        ActivatedEvent(buysTokens, sellsTokens);
    }

    // Maker can deposit ethers to this contract so this contract
    // can buy asset tokens.
    //
    // Maker deposits asset tokens to this contract by calling the
    // asset's transfer() method with the following parameters
    //   _to     is the address of THIS contract
    //   _value  is the number of asset tokens to be transferred
    //
    // Taker MUST NOT send tokens directly to this contract. Takers
    // MUST use the takerSellAsset() method to sell asset tokens
    // to this contract
    //
    // Maker can also transfer ethers from one TokenTrader contract
    // to another TokenTrader contract, both owned by the Maker
    //
    // The MakerDepositedEther() event is logged with the following
    // parameter:
    //   ethers  is the number of ethers deposited by the maker
    //
    // This method was called deposit() in the old version
    //
    function makerDepositEther() payable onlyOwnerOrTokenTraderWithSameOwner {
        MakerDepositedEther(msg.value);
    }

    // Maker can withdraw asset tokens from this contract, with the
    // following parameter:
    //   tokens  is the number of asset tokens to be withdrawn
    //
    // The MakerWithdrewAsset() event is logged with the following
    // parameter:
    //   tokens  is the number of tokens withdrawn by the maker
    //
    // This method was called withdrawAsset() in the old version
    //
    function makerWithdrawAsset(uint256 tokens) onlyOwner returns (bool ok) {
        MakerWithdrewAsset(tokens);
        return ERC20(asset).transfer(owner, tokens);
    }

    // Maker can transfer asset tokens from this contract to another
    // TokenTrader contract, with the following parameter:
    //   toTokenTrader  Another TokenTrader contract owned by the
    //                  same owner and with the same asset
    //   tokens         is the number of asset tokens to be moved
    //
    // The MakerTransferredAsset() event is logged with the following
    // parameters:
    //   toTokenTrader  The other TokenTrader contract owned by
    //                  the same owner and with the same asset
    //   tokens         is the number of tokens transferred
    //
    // The asset Transfer() event is also logged from this contract
    // to the other contract
    //
    function makerTransferAsset(
        TokenTrader toTokenTrader,
        uint256 tokens
    ) onlyOwner returns (bool ok) {
        if (owner != toTokenTrader.owner() || asset != toTokenTrader.asset()) {
            throw;
        }
        MakerTransferredAsset(toTokenTrader, tokens);
        return ERC20(asset).transfer(toTokenTrader, tokens);
    }

    // Maker can withdraw any ERC20 asset tokens from this contract
    //
    // This method is included in the case where this contract receives
    // the wrong tokens
    //
    // The MakerWithdrewERC20Token() event is logged with the following
    // parameter:
    //   tokenAddress  is the address of the tokens withdrawn by the maker
    //   tokens        is the number of tokens withdrawn by the maker
    //
    // This method was called withdrawToken() in the old version
    //
    function makerWithdrawERC20Token(
        address tokenAddress,
        uint256 tokens
    ) onlyOwner returns (bool ok) {
        MakerWithdrewERC20Token(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(owner, tokens);
    }

    // Maker can withdraw ethers from this contract
    //
    // The MakerWithdrewEther() event is logged with the following parameter
    //   ethers  is the number of ethers withdrawn by the maker
    //
    // This method was called withdraw() in the old version
    //
    function makerWithdrawEther(uint256 ethers) onlyOwner returns (bool ok) {
        if (this.balance >= ethers) {
            MakerWithdrewEther(ethers);
            return owner.send(ethers);
        }
    }

    // Maker can transfer ethers from this contract to another TokenTrader
    // contract, with the following parameters:
    //   toTokenTrader  Another TokenTrader contract owned by the
    //                  same owner and with the same asset
    //   ethers         is the number of ethers to be moved
    //
    // The MakerTransferredEther() event is logged with the following parameter
    //   toTokenTrader  The other TokenTrader contract owned by the
    //                  same owner and with the same asset
    //   ethers         is the number of ethers transferred
    //
    // The MakerDepositedEther() event is logged on the other
    // contract with the following parameter:
    //   ethers  is the number of ethers deposited by the maker
    //
    function makerTransferEther(
        TokenTrader toTokenTrader,
        uint256 ethers
    ) onlyOwner returns (bool ok) {
        if (owner != toTokenTrader.owner() || asset != toTokenTrader.asset()) {
            throw;
        }
        if (this.balance >= ethers) {
            MakerTransferredEther(toTokenTrader, ethers);
            toTokenTrader.makerDepositEther.value(ethers)();
        }
    }

    // Taker buys asset tokens by sending ethers
    //
    // The TakerBoughtAsset() event is logged with the following parameters
    //   buyer           is the buyer's address
    //   ethersSent      is the number of ethers sent by the buyer
    //   ethersReturned  is the number of ethers sent back to the buyer as
    //                   change
    //   tokensBought    is the number of asset tokens sent to the buyer
    //
    // This method was called buy() in the old version
    //
    function takerBuyAsset() payable {
        if (sellsTokens || msg.sender == owner) {
            // Note that sellPrice has already been validated as > 0
            uint order    = msg.value / sellPrice;
            // Note that units has already been validated as > 0
            uint can_sell = ERC20(asset).balanceOf(address(this)) / units;
            uint256 change = 0;
            if (msg.value > (can_sell * sellPrice)) {
                change  = msg.value - (can_sell * sellPrice);
                order = can_sell;
            }
            if (change > 0) {
                if (!msg.sender.send(change)) throw;
            }
            if (order > 0) {
                if (!ERC20(asset).transfer(msg.sender, order * units)) throw;
            }
            TakerBoughtAsset(msg.sender, msg.value, change, order * units);
        }
        // Return user funds if the contract is not selling
        else if (!msg.sender.send(msg.value)) throw;
    }

    // Taker sells asset tokens for ethers by:
    // 1. Calling the asset's approve() method with the following parameters
    //    _spender            is the address of this contract
    //    _value              is the number of tokens to be sold
    // 2. Calling this takerSellAsset() method with the following parameter
    //    etherValueOfTokens  is the ether value of the asset tokens to be sold
    //                        by the taker
    //
    // The TakerSoldAsset() event is logged with the following parameters
    //   seller                  is the seller's address
    //   amountOfTokensToSell    is the amount of the asset tokens being
    //                           sold by the taker
    //   tokensSold              is the number of the asset tokens sold
    //   etherValueOfTokensSold  is the ether value of the asset tokens sold
    //
    // This method was called sell() in the old version
    //
    function takerSellAsset(uint256 amountOfTokensToSell) {
        if (buysTokens || msg.sender == owner) {
            // Maximum number of token the contract can buy
            // Note that buyPrice has already been validated as > 0
            uint256 can_buy = this.balance / buyPrice;
            // Token lots available
            // Note that units has already been validated as > 0
            uint256 order = amountOfTokensToSell / units;
            // Adjust order for funds available
            if (order > can_buy) order = can_buy;
            if (order > 0) {
                // Extract user tokens
                if (!ERC20(asset).transferFrom(msg.sender, address(this), order * units)) throw;
                // Pay user
                if (!msg.sender.send(order * buyPrice)) throw;
            }
            TakerSoldAsset(msg.sender, amountOfTokensToSell, order * units, order * buyPrice);
        }
    }

    // Taker buys tokens by sending ethers
    function () payable {
        takerBuyAsset();
    }
}

// This contract deploys TokenTrader contracts and logs the event
contract TokenTraderFactory is Owned {

    event TradeListing(address indexed ownerAddress, address indexed tokenTraderAddress,
        address indexed asset, uint256 buyPrice, uint256 sellPrice, uint256 units,
        bool buysTokens, bool sellsTokens);
    event OwnerWithdrewERC20Token(address indexed tokenAddress, uint256 tokens);

    mapping(address => bool) _verify;

    // Anyone can call this method to verify the settings of a
    // TokenTrader contract. The parameters are:
    //   tradeContract  is the address of a TokenTrader contract
    //
    // Return values:
    //   valid        did this TokenTraderFactory create the TokenTrader contract?
    //   owner        is the owner of the TokenTrader contract
    //   asset        is the ERC20 asset address
    //   buyPrice     is the buy price in ethers per `units` of asset tokens
    //   sellPrice    is the sell price in ethers per `units` of asset tokens
    //   units        is the number of units of asset tokens
    //   buysTokens   is the TokenTrader contract buying tokens?
    //   sellsTokens  is the TokenTrader contract selling tokens?
    //
    function verify(address tradeContract) constant returns (
        bool    valid,
        address owner,
        address asset,
        uint256 buyPrice,
        uint256 sellPrice,
        uint256 units,
        bool    buysTokens,
        bool    sellsTokens
    ) {
        valid = _verify[tradeContract];
        if (valid) {
            TokenTrader t = TokenTrader(tradeContract);
            owner         = t.owner();
            asset         = t.asset();
            buyPrice      = t.buyPrice();
            sellPrice     = t.sellPrice();
            units         = t.units();
            buysTokens    = t.buysTokens();
            sellsTokens   = t.sellsTokens();
        }
    }

    // Maker can call this method to create a new TokenTrader contract
    // with the maker being the owner of this new contract
    //
    // Parameters:
    //   asset        is the ERC20 asset address
    //   buyPrice     is the buy price in ethers per `units` of asset tokens
    //   sellPrice    is the sell price in ethers per `units` of asset tokens
    //   units        is the number of units of asset tokens
    //   buysTokens   is the TokenTrader contract buying tokens?
    //   sellsTokens  is the TokenTrader contract selling tokens?
    //
    // For example, listing a TokenTrader contract on the REP Augur token where
    // the contract will buy REP tokens at a rate of 39000/100000 = 0.39 ETH
    // per REP token and sell REP tokens at a rate of 41000/100000 = 0.41 ETH
    // per REP token:
    //   asset        0x48c80f1f4d53d5951e5d5438b54cba84f29f32a5
    //   buyPrice     39000
    //   sellPrice    41000
    //   units        100000
    //   buysTokens   true
    //   sellsTokens  true
    //
    // The TradeListing() event is logged with the following parameters
    //   ownerAddress        is the Maker's address
    //   tokenTraderAddress  is the address of the newly created TokenTrader contract
    //   asset               is the ERC20 asset address
    //   buyPrice            is the buy price in ethers per `units` of asset tokens
    //   sellPrice           is the sell price in ethers per `units` of asset tokens
    //   unit                is the number of units of asset tokens
    //   buysTokens          is the TokenTrader contract buying tokens?
    //   sellsTokens         is the TokenTrader contract selling tokens?
    //
    function createTradeContract(
        address asset,
        uint256 buyPrice,
        uint256 sellPrice,
        uint256 units,
        bool    buysTokens,
        bool    sellsTokens
    ) returns (address trader) {
        // Cannot have invalid asset
        if (asset == 0x0) throw;
        // Check for ERC20 allowance function
        // This will throw an error if the allowance function
        // is undefined to prevent GNTs from being used
        // with this factory
        uint256 allowance = ERC20(asset).allowance(msg.sender, this);
        // Cannot set zero or negative price
        if (buyPrice <= 0 || sellPrice <= 0) throw;
        // Must make profit on spread
        if (buyPrice >= sellPrice) throw;
        // Cannot buy or sell zero or negative units
        if (units <= 0) throw;

        trader = new TokenTrader(
            asset,
            buyPrice,
            sellPrice,
            units,
            buysTokens,
            sellsTokens);
        // Record that this factory created the trader
        _verify[trader] = true;
        // Set the owner to whoever called the function
        TokenTrader(trader).transferOwnership(msg.sender);
        TradeListing(msg.sender, trader, asset, buyPrice, sellPrice, units, buysTokens, sellsTokens);
    }

    // Factory owner can withdraw any ERC20 asset tokens from this contract
    //
    // This method is included in the case where this contract receives
    // the wrong tokens
    //
    // The OwnerWithdrewERC20Token() event is logged with the following
    // parameter:
    //   tokenAddress  is the address of the tokens withdrawn by the maker
    //   tokens        is the number of tokens withdrawn by the maker
    //
    function ownerWithdrawERC20Token(address tokenAddress, uint256 tokens) onlyOwner returns (bool ok) {
        OwnerWithdrewERC20Token(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(owner, tokens);
    }

    // Prevents accidental sending of ether to the factory
    function () {
        throw;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"asset","type":"address"},{"name":"buyPrice","type":"uint256"},{"name":"sellPrice","type":"uint256"},{"name":"units","type":"uint256"},{"name":"buysTokens","type":"bool"},{"name":"sellsTokens","type":"bool"}],"name":"createTradeContract","outputs":[{"name":"trader","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"ownerWithdrawERC20Token","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"tradeContract","type":"address"}],"name":"verify","outputs":[{"name":"valid","type":"bool"},{"name":"owner","type":"address"},{"name":"asset","type":"address"},{"name":"buyPrice","type":"uint256"},{"name":"sellPrice","type":"uint256"},{"name":"units","type":"uint256"},{"name":"buysTokens","type":"bool"},{"name":"sellsTokens","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"payable":false,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ownerAddress","type":"address"},{"indexed":true,"name":"tokenTraderAddress","type":"address"},{"indexed":true,"name":"asset","type":"address"},{"indexed":false,"name":"buyPrice","type":"uint256"},{"indexed":false,"name":"sellPrice","type":"uint256"},{"indexed":false,"name":"units","type":"uint256"},{"indexed":false,"name":"buysTokens","type":"bool"},{"indexed":false,"name":"sellsTokens","type":"bool"}],"name":"TradeListing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenAddress","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"OwnerWithdrewERC20Token","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60606040525b60008054600160a060020a0319166c01000000000000000000000000338102041790555b5b611708806100386000396000f36060604052361561004b5760e060020a60003504633d6a32bd811461005d5780635de014971461009857806363a9c3d7146100bf5780638da5cb5b14610120578063f2fde38b14610149575b346100005761005b5b610000565b565b005b346100005761007c60043560243560443560643560843560a43561015b565b60408051600160a060020a039092168252519081900360200190f35b34610000576100ab60043560243561036c565b604080519115158252519081900360200190f35b34610000576100cf600435610452565b604080519815158952600160a060020a0397881660208a015295909616878601526060870193909352608086019190915260a0850152151560c084015290151560e083015251908190036101000190f35b346100005761007c6106e1565b60408051600160a060020a039092168252519081900360200190f35b346100005761005b6004356106f0565b005b600080600160a060020a038816151561017357610000565b87600160a060020a031663dd62ed3e33306000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182600160a060020a0316815260200192505050602060405180830381600087803b156100005760325a03f115610000575050604051519150506000871115806101f6575060008611155b1561020057610000565b85871061020c57610000565b6000851161021957610000565b878787878787604051610f8f806107798339018087600160a060020a03168152602001868152602001858152602001848152602001831515815260200182151581526020019650505050505050604051809103906000f0801561000057600160a060020a038082166000818152600160208190526040808320805460ff191690921790915580517ff2fde38b00000000000000000000000000000000000000000000000000000000815233909416600485015251939550909263f2fde38b92602480820193929182900301818387803b156100005760325a03f1156100005750506040805189815260208101899052808201889052861515606082015285151560808201529051600160a060020a03808c1693508581169233909116917f65ff0f5aef2091ad3616436792adf51be3068c631b081ac0f30f77e3a0e6502d9181900360a00190a45b509695505050505050565b6000805433600160a060020a0390811691161461038857610000565b604080518381529051600160a060020a038516917f168656e1968a1165ef7fd3f1006847fcfba4cac97672bc70ccbcffb66bc080ba919081900360200190a26000805460408051602090810184905281517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201526024810187905291519287169363a9059cbb936044808501949192918390030190829087803b156100005760325a03f115610000575050604051519150505b5b92915050565b600160a060020a03811660009081526001602052604081205460ff16908080808080808088156106d45789905080600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150975080600160a060020a03166338d52e0f6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150965080600160a060020a0316638620410b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150955080600160a060020a0316634b7503346000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150945080600160a060020a031663976a84356000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150935080600160a060020a031663b10993476000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150925080600160a060020a0316634ca50f596000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b50919395975091939597565b600054600160a060020a031681565b60005433600160a060020a0390811691161461070b57610000565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000838102041790555b5b50566060604052346100005760405160c080610f8f83398101604090815281516020830151918301516060840151608085015160a090950151929491929091905b5b60008054600160a060020a0319166c01000000000000000000000000338102041790555b60018054600160a060020a0319166c01000000000000000000000000888102041790556002859055600384905560048390556005805460ff19167f01000000000000000000000000000000000000000000000000000000000000008481028190049190911761ff00191661010084830292909204820217918290556040805160ff80851615158252929093049091161515602083015280517ffa4f96c42c616d6fbda491095977a6af7c76ebd387177b72299180502cbeaa999281900390910190a15b5050505050505b610e548061013b6000396000f3606060405236156100cf5760e060020a60003504632170ebf781146100e057806338d52e0f146101045780634b7503341461012d5780634ca50f591461014c57806352954e5a1461016d5780638620410b146101945780638da5cb5b146101b3578063919f8cfc146101dc578063976a8435146101e6578063a7abc12414610205578063b10993471461021a578063be86d5a71461023b578063c34764cf14610262578063c60ccb0e14610289578063cd53a3b714610293578063eff883bd146102b7578063f2fde38b146102c9575b6100de5b6100db6102db565b5b565b005b34610000576100f0600435610514565b604080519115158252519081900360200190f35b34610000576101116105a6565b60408051600160a060020a039092168252519081900360200190f35b346100005761013a6105b5565b60408051918252519081900360200190f35b34610000576100f06105bb565b604080519115158252519081900360200190f35b34610000576100f06004356024356105c9565b604080519115158252519081900360200190f35b346100005761013a610782565b60408051918252519081900360200190f35b3461000057610111610788565b60408051600160a060020a039092168252519081900360200190f35b6100de610797565b005b346100005761013a61086f565b60408051918252519081900360200190f35b34610000576100de600435602435610875565b005b34610000576100f061090a565b604080519115158252519081900360200190f35b34610000576100f0600435602435610913565b604080519115158252519081900360200190f35b34610000576100f0600435602435610aa4565b604080519115158252519081900360200190f35b6100de6102db565b005b34610000576100f0600435610b79565b604080519115158252519081900360200190f35b34610000576100de600435610c3f565b005b34610000576100de600435610dcb565b005b600060006000600560019054906101000a900460ff168061030a575060005433600160a060020a039081169116145b156104de5760035434811561000057049250600454600160009054906101000a9004600160a060020a0316600160a060020a03166370a08231306000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f1156100005750506040515190508115610000570491506000905060035482023411156103ba576003548202340390508192505b60008111156103f357604051600160a060020a0333169082156108fc029083906000818181858888f1935050505015156103f357610000565b5b600083111561048957600160009054906101000a9004600160a060020a0316600160a060020a031663a9059cbb3360045486026000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050604051511515905061048957610000565b5b60045460408051348152602081018490529185028282015251600160a060020a033316917f37e948531341be0a8ce95c3833827c6f3559825cb6421e6ff1fe21c3a8b71217919081900360600190a261050d565b604051600160a060020a033316903480156108fc02916000818181858888f19350505050151561050d57610000565b5b5b505050565b6000805433600160a060020a0390811691161461053057610000565b600160a060020a0330163182901061059f576040805183815290517f8a93d70d792b644d97d7da8a5798e03bbee85be4537a860a331dbe3ee50eb9829181900360200190a160008054604051600160a060020a039091169184156108fc02918591818181858888f19450505050505b5b5b919050565b600154600160a060020a031681565b60035481565b600554610100900460ff1681565b6000805433600160a060020a039081169116146105e557610000565b82600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600054600160a060020a03908116911614159050806106ae575082600160a060020a03166338d52e0f6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600154600160a060020a039081169116141590505b156106b857610000565b60408051600160a060020a03851681526020810184905281517f127afec6b0ab48f803536010148b79615f4a518f9b574de5b45bc74991c46d51929181900390910190a1600160009054906101000a9004600160a060020a0316600160a060020a031663a9059cbb84846000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b5b92915050565b60025481565b600054600160a060020a031681565b60005433600160a060020a0390811691161480159061082e5750600060009054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600160a060020a0316919091141590505b1561083857610000565b6040805134815290517fc745dab9c51cefa79677191ed7af7b0ccbb8360b8b39ed79f257f6895882980f9181900360200190a15b5b565b60045481565b60005433600160a060020a0390811691161461089057610000565b6005805460ff191660f860020a8481028190049190911761ff00191661010084830292909204820217918290556040805160ff80851615158252929093049091161515602083015280517ffa4f96c42c616d6fbda491095977a6af7c76ebd387177b72299180502cbeaa999281900390910190a15b5b5050565b60055460ff1681565b6000805433600160a060020a0390811691161461092f57610000565b82600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600054600160a060020a03908116911614159050806109f8575082600160a060020a03166338d52e0f6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600154600160a060020a039081169116141590505b15610a0257610000565b600160a060020a0330163182901061077b5760408051600160a060020a03851681526020810184905281517f714b446590efbc5b722abe34b4c0cacf4b1f5607fbf924f957646590ce66c4ad929181900390910190a182600160a060020a031663919f8cfc836040518260e060020a0281526004018090506000604051808303818588803b156100005761235a5a03f11561000057505050505b5b5b92915050565b6000805433600160a060020a03908116911614610ac057610000565b60408051600160a060020a03851681526020810184905281517ffea8ae97829f3801e6ca15928428931c2a4f3cee1fa7c9b83d959efd24666422929181900390910190a160008054604080516020908101849052815160e060020a63a9059cbb028152600160a060020a0393841660048201526024810187905291519287169363a9059cbb936044808501949192918390030190829087803b156100005760325a03f115610000575050604051519150505b5b92915050565b6000805433600160a060020a03908116911614610b9557610000565b6040805183815290517f1ebbc515a759c3fe8e048867aac7fe458e3a37ac3dd44ffc73a6238cf30039819181900360200190a160015460008054604080516020908101849052815160e060020a63a9059cbb028152600160a060020a039384166004820152602481018890529151929094169363a9059cbb9360448084019492938390030190829087803b156100005760325a03f115610000575050604051519150505b5b919050565b600554600090819060ff1680610c63575060005433600160a060020a039081169116145b1561050d5760025430600160a060020a0316318115610000570491506004548381156100005704905081811115610c975750805b6000811115610d7057600160009054906101000a9004600160a060020a0316600160a060020a03166323b872dd333060045485026000604051602001526040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b156100005760325a03f1156100005750506040515115159050610d3d57610000565b600254604051600160a060020a03331691830280156108fc02916000818181858888f193505050501515610d7057610000565b5b6004546002546040805186815292840260208401529083028282015251600160a060020a033316917f0ba0a3a12a9b73413f41468a265bf897ff66171a971e352360753a27d5db7683919081900360600190a25b5b505050565b60005433600160a060020a03908116911614610de657610000565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000838102041790555b5b5056

Deployed Bytecode

0x6060604052361561004b5760e060020a60003504633d6a32bd811461005d5780635de014971461009857806363a9c3d7146100bf5780638da5cb5b14610120578063f2fde38b14610149575b346100005761005b5b610000565b565b005b346100005761007c60043560243560443560643560843560a43561015b565b60408051600160a060020a039092168252519081900360200190f35b34610000576100ab60043560243561036c565b604080519115158252519081900360200190f35b34610000576100cf600435610452565b604080519815158952600160a060020a0397881660208a015295909616878601526060870193909352608086019190915260a0850152151560c084015290151560e083015251908190036101000190f35b346100005761007c6106e1565b60408051600160a060020a039092168252519081900360200190f35b346100005761005b6004356106f0565b005b600080600160a060020a038816151561017357610000565b87600160a060020a031663dd62ed3e33306000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182600160a060020a0316815260200192505050602060405180830381600087803b156100005760325a03f115610000575050604051519150506000871115806101f6575060008611155b1561020057610000565b85871061020c57610000565b6000851161021957610000565b878787878787604051610f8f806107798339018087600160a060020a03168152602001868152602001858152602001848152602001831515815260200182151581526020019650505050505050604051809103906000f0801561000057600160a060020a038082166000818152600160208190526040808320805460ff191690921790915580517ff2fde38b00000000000000000000000000000000000000000000000000000000815233909416600485015251939550909263f2fde38b92602480820193929182900301818387803b156100005760325a03f1156100005750506040805189815260208101899052808201889052861515606082015285151560808201529051600160a060020a03808c1693508581169233909116917f65ff0f5aef2091ad3616436792adf51be3068c631b081ac0f30f77e3a0e6502d9181900360a00190a45b509695505050505050565b6000805433600160a060020a0390811691161461038857610000565b604080518381529051600160a060020a038516917f168656e1968a1165ef7fd3f1006847fcfba4cac97672bc70ccbcffb66bc080ba919081900360200190a26000805460408051602090810184905281517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201526024810187905291519287169363a9059cbb936044808501949192918390030190829087803b156100005760325a03f115610000575050604051519150505b5b92915050565b600160a060020a03811660009081526001602052604081205460ff16908080808080808088156106d45789905080600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150975080600160a060020a03166338d52e0f6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150965080600160a060020a0316638620410b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150955080600160a060020a0316634b7503346000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150945080600160a060020a031663976a84356000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150935080600160a060020a031663b10993476000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150925080600160a060020a0316634ca50f596000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b50919395975091939597565b600054600160a060020a031681565b60005433600160a060020a0390811691161461070b57610000565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000838102041790555b5b50566060604052346100005760405160c080610f8f83398101604090815281516020830151918301516060840151608085015160a090950151929491929091905b5b60008054600160a060020a0319166c01000000000000000000000000338102041790555b60018054600160a060020a0319166c01000000000000000000000000888102041790556002859055600384905560048390556005805460ff19167f01000000000000000000000000000000000000000000000000000000000000008481028190049190911761ff00191661010084830292909204820217918290556040805160ff80851615158252929093049091161515602083015280517ffa4f96c42c616d6fbda491095977a6af7c76ebd387177b72299180502cbeaa999281900390910190a15b5050505050505b610e548061013b6000396000f3606060405236156100cf5760e060020a60003504632170ebf781146100e057806338d52e0f146101045780634b7503341461012d5780634ca50f591461014c57806352954e5a1461016d5780638620410b146101945780638da5cb5b146101b3578063919f8cfc146101dc578063976a8435146101e6578063a7abc12414610205578063b10993471461021a578063be86d5a71461023b578063c34764cf14610262578063c60ccb0e14610289578063cd53a3b714610293578063eff883bd146102b7578063f2fde38b146102c9575b6100de5b6100db6102db565b5b565b005b34610000576100f0600435610514565b604080519115158252519081900360200190f35b34610000576101116105a6565b60408051600160a060020a039092168252519081900360200190f35b346100005761013a6105b5565b60408051918252519081900360200190f35b34610000576100f06105bb565b604080519115158252519081900360200190f35b34610000576100f06004356024356105c9565b604080519115158252519081900360200190f35b346100005761013a610782565b60408051918252519081900360200190f35b3461000057610111610788565b60408051600160a060020a039092168252519081900360200190f35b6100de610797565b005b346100005761013a61086f565b60408051918252519081900360200190f35b34610000576100de600435602435610875565b005b34610000576100f061090a565b604080519115158252519081900360200190f35b34610000576100f0600435602435610913565b604080519115158252519081900360200190f35b34610000576100f0600435602435610aa4565b604080519115158252519081900360200190f35b6100de6102db565b005b34610000576100f0600435610b79565b604080519115158252519081900360200190f35b34610000576100de600435610c3f565b005b34610000576100de600435610dcb565b005b600060006000600560019054906101000a900460ff168061030a575060005433600160a060020a039081169116145b156104de5760035434811561000057049250600454600160009054906101000a9004600160a060020a0316600160a060020a03166370a08231306000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f1156100005750506040515190508115610000570491506000905060035482023411156103ba576003548202340390508192505b60008111156103f357604051600160a060020a0333169082156108fc029083906000818181858888f1935050505015156103f357610000565b5b600083111561048957600160009054906101000a9004600160a060020a0316600160a060020a031663a9059cbb3360045486026000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050604051511515905061048957610000565b5b60045460408051348152602081018490529185028282015251600160a060020a033316917f37e948531341be0a8ce95c3833827c6f3559825cb6421e6ff1fe21c3a8b71217919081900360600190a261050d565b604051600160a060020a033316903480156108fc02916000818181858888f19350505050151561050d57610000565b5b5b505050565b6000805433600160a060020a0390811691161461053057610000565b600160a060020a0330163182901061059f576040805183815290517f8a93d70d792b644d97d7da8a5798e03bbee85be4537a860a331dbe3ee50eb9829181900360200190a160008054604051600160a060020a039091169184156108fc02918591818181858888f19450505050505b5b5b919050565b600154600160a060020a031681565b60035481565b600554610100900460ff1681565b6000805433600160a060020a039081169116146105e557610000565b82600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600054600160a060020a03908116911614159050806106ae575082600160a060020a03166338d52e0f6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600154600160a060020a039081169116141590505b156106b857610000565b60408051600160a060020a03851681526020810184905281517f127afec6b0ab48f803536010148b79615f4a518f9b574de5b45bc74991c46d51929181900390910190a1600160009054906101000a9004600160a060020a0316600160a060020a031663a9059cbb84846000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b5b92915050565b60025481565b600054600160a060020a031681565b60005433600160a060020a0390811691161480159061082e5750600060009054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600160a060020a0316919091141590505b1561083857610000565b6040805134815290517fc745dab9c51cefa79677191ed7af7b0ccbb8360b8b39ed79f257f6895882980f9181900360200190a15b5b565b60045481565b60005433600160a060020a0390811691161461089057610000565b6005805460ff191660f860020a8481028190049190911761ff00191661010084830292909204820217918290556040805160ff80851615158252929093049091161515602083015280517ffa4f96c42c616d6fbda491095977a6af7c76ebd387177b72299180502cbeaa999281900390910190a15b5b5050565b60055460ff1681565b6000805433600160a060020a0390811691161461092f57610000565b82600160a060020a0316638da5cb5b6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600054600160a060020a03908116911614159050806109f8575082600160a060020a03166338d52e0f6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151600154600160a060020a039081169116141590505b15610a0257610000565b600160a060020a0330163182901061077b5760408051600160a060020a03851681526020810184905281517f714b446590efbc5b722abe34b4c0cacf4b1f5607fbf924f957646590ce66c4ad929181900390910190a182600160a060020a031663919f8cfc836040518260e060020a0281526004018090506000604051808303818588803b156100005761235a5a03f11561000057505050505b5b5b92915050565b6000805433600160a060020a03908116911614610ac057610000565b60408051600160a060020a03851681526020810184905281517ffea8ae97829f3801e6ca15928428931c2a4f3cee1fa7c9b83d959efd24666422929181900390910190a160008054604080516020908101849052815160e060020a63a9059cbb028152600160a060020a0393841660048201526024810187905291519287169363a9059cbb936044808501949192918390030190829087803b156100005760325a03f115610000575050604051519150505b5b92915050565b6000805433600160a060020a03908116911614610b9557610000565b6040805183815290517f1ebbc515a759c3fe8e048867aac7fe458e3a37ac3dd44ffc73a6238cf30039819181900360200190a160015460008054604080516020908101849052815160e060020a63a9059cbb028152600160a060020a039384166004820152602481018890529151929094169363a9059cbb9360448084019492938390030190829087803b156100005760325a03f115610000575050604051519150505b5b919050565b600554600090819060ff1680610c63575060005433600160a060020a039081169116145b1561050d5760025430600160a060020a0316318115610000570491506004548381156100005704905081811115610c975750805b6000811115610d7057600160009054906101000a9004600160a060020a0316600160a060020a03166323b872dd333060045485026000604051602001526040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b156100005760325a03f1156100005750506040515115159050610d3d57610000565b600254604051600160a060020a03331691830280156108fc02916000818181858888f193505050501515610d7057610000565b5b6004546002546040805186815292840260208401529083028282015251600160a060020a033316917f0ba0a3a12a9b73413f41468a265bf897ff66171a971e352360753a27d5db7683919081900360600190a25b5b505050565b60005433600160a060020a03908116911614610de657610000565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000838102041790555b5b5056

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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