Sponsored Link:   trade.io - The Future of Crypto Trading - A Better, Faster, Smarter Crypto Exchange - Pre-Register Now!
Contract Overview
Balance: 0.01 Ether
Ether Value: $4.65 (@ $464.72/ETH)
Transactions: 2 txns
 Latest 2 txns

TxHash Age From To Value [TxFee]
0xe5afc50dbe20dcbf075b6d0567383dcb11bf2e351db764ad35ffd5276183664523 days 15 mins ago0xa3eb2115d947c29882c9ee2d8d7bef98d0ca16fd  IN   0x706b36a1f11457b31652149b77a3fef16575b8080.01 Ether0.0001052
0xdd01c2abc2f14464d380b599850292ba3cf89e54ada927a690239f313c75896023 days 30 mins ago0xdb0a49ebed788cd412744a4f9f1ce8d16d019b2e  IN    Contract Creation0 Ether0.015580704


[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0xa2320cbf0e0a1a12cea1589c33f4e5df6cc768f9a2b14d515782204bbe04f35159962381 day 19 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.06653307310309575 Ether
0xa2320cbf0e0a1a12cea1589c33f4e5df6cc768f9a2b14d515782204bbe04f35159962381 day 19 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.06653307310309575 Ether
0x9f43445dbfbd1436d1c95f40b010bf5dd52299f37dbb8208f47e58d8ac4b476959901822 days 20 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.1052403645534912 Ether
0x9f43445dbfbd1436d1c95f40b010bf5dd52299f37dbb8208f47e58d8ac4b476959901822 days 20 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.1052403645534912 Ether
0xc65044865d2117e006ef009889d3d1814beedb6760efab8348bfe3792f33bb1959850323 days 18 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.021127395308445 Ether
0xc65044865d2117e006ef009889d3d1814beedb6760efab8348bfe3792f33bb1959850323 days 18 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.021127395308445 Ether
0x545399c27bbcff0b77ce75949cac94c9e6912c975932b842daad2749bef8723859768605 days 3 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.02766690655250625 Ether
0x545399c27bbcff0b77ce75949cac94c9e6912c975932b842daad2749bef8723859768605 days 3 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.02766690655250625 Ether
0xca44b9f3502364ce4c8c42e22d1103d9e124b882428efe496d9bd85e16a9cf2f59768515 days 3 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.02979213412275 Ether
0xca44b9f3502364ce4c8c42e22d1103d9e124b882428efe496d9bd85e16a9cf2f59768515 days 3 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.02979213412275 Ether
0x7300faa0baffebdf312a2e4d07fdf13e12dbf4856beb7c7f5e3ffde6503374b459535329 days 1 hr ago0x8fd3121013a07c57f0d69646e86e7a4880b467b70x706b36a1f11457b31652149b77a3fef16575b8080.42398901246195 Ether
0x7300faa0baffebdf312a2e4d07fdf13e12dbf4856beb7c7f5e3ffde6503374b459535329 days 1 hr ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.42398901246195 Ether
0x7300faa0baffebdf312a2e4d07fdf13e12dbf4856beb7c7f5e3ffde6503374b459535329 days 1 hr ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.42398901246195 Ether
0x42a1508fdd792b9d0aa584a01069236709bc0015d3ce698d5448497c357dde58594682410 days 4 hrs ago0x8fd3121013a07c57f0d69646e86e7a4880b467b70x706b36a1f11457b31652149b77a3fef16575b8080.0230830866104175 Ether
0x42a1508fdd792b9d0aa584a01069236709bc0015d3ce698d5448497c357dde58594682410 days 4 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.0230830866104175 Ether
0x42a1508fdd792b9d0aa584a01069236709bc0015d3ce698d5448497c357dde58594682410 days 4 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.0230830866104175 Ether
0x4354b6238ebec1b44b53c0d4fdfc9b1f663823facca7428bd1a797ac99980e5e594203810 days 23 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.0014178784 Ether
0x4354b6238ebec1b44b53c0d4fdfc9b1f663823facca7428bd1a797ac99980e5e594203810 days 23 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.0014178784 Ether
0xf71c70fbe0da7c78df37d1a392515431d68600d82db0feccd8a5f167cbb6e7fe594113311 days 3 hrs ago0x8fd3121013a07c57f0d69646e86e7a4880b467b70x706b36a1f11457b31652149b77a3fef16575b8080.232662505144014 Ether
0xf71c70fbe0da7c78df37d1a392515431d68600d82db0feccd8a5f167cbb6e7fe594113311 days 3 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.232662505144014 Ether
0xf71c70fbe0da7c78df37d1a392515431d68600d82db0feccd8a5f167cbb6e7fe594113311 days 3 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.232662505144014 Ether
0xff22380c5cc0d90a774f2cb1e83bd9b4293052265afdfa3f190283a346c36d95594113111 days 3 hrs ago0x8fd3121013a07c57f0d69646e86e7a4880b467b70x706b36a1f11457b31652149b77a3fef16575b8080.232662505144014 Ether
0xff22380c5cc0d90a774f2cb1e83bd9b4293052265afdfa3f190283a346c36d95594113111 days 3 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.232662505144014 Ether
0xff22380c5cc0d90a774f2cb1e83bd9b4293052265afdfa3f190283a346c36d95594113111 days 3 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.232662505144014 Ether
0x852befd855db3c4549866953c5ed0f1cf5451cad58b1cb64cc8e9b3d14e282a5594001111 days 7 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.27881527205865825 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: AirSwapHandler
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.21;

// File: contracts/ExchangeHandler.sol

/// @title Interface for all exchange handler contracts
interface ExchangeHandler {

    /// @dev Get the available amount left to fill for an order
    /// @param orderAddresses Array of address values needed for this DEX order
    /// @param orderValues Array of uint values needed for this DEX order
    /// @param exchangeFee Value indicating the fee for this DEX order
    /// @param v ECDSA signature parameter v
    /// @param r ECDSA signature parameter r
    /// @param s ECDSA signature parameter s
    /// @return Available amount left to fill for this order
    function getAvailableAmount(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint256 exchangeFee,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256);

    /// @dev Perform a buy order at the exchange
    /// @param orderAddresses Array of address values needed for each DEX order
    /// @param orderValues Array of uint values needed for each DEX order
    /// @param exchangeFee Value indicating the fee for this DEX order
    /// @param amountToFill Amount to fill in this order
    /// @param v ECDSA signature parameter v
    /// @param r ECDSA signature parameter r
    /// @param s ECDSA signature parameter s
    /// @return Amount filled in this order
    function performBuy(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint256 exchangeFee,
        uint256 amountToFill,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external payable returns (uint256);

    /// @dev Perform a sell order at the exchange
    /// @param orderAddresses Array of address values needed for each DEX order
    /// @param orderValues Array of uint values needed for each DEX order
    /// @param exchangeFee Value indicating the fee for this DEX order
    /// @param amountToFill Amount to fill in this order
    /// @param v ECDSA signature parameter v
    /// @param r ECDSA signature parameter r
    /// @param s ECDSA signature parameter s
    /// @return Amount filled in this order
    function performSell(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint256 exchangeFee,
        uint256 amountToFill,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256);
}

// File: contracts/WETH9.sol

// Copyright (C) 2015, 2016, 2017 Dapphub

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

contract WETH9 {
    string public name     = "Wrapped Ether";
    string public symbol   = "WETH";
    uint8  public decimals = 18;

    event  Approval(address indexed src, address indexed guy, uint wad);
    event  Transfer(address indexed src, address indexed dst, uint wad);
    event  Deposit(address indexed dst, uint wad);
    event  Withdrawal(address indexed src, uint wad);

    mapping (address => uint)                       public  balanceOf;
    mapping (address => mapping (address => uint))  public  allowance;

    function() public payable {
        deposit();
    }
    function deposit() public payable {
        balanceOf[msg.sender] += msg.value;
        Deposit(msg.sender, msg.value);
    }
    function withdraw(uint wad) public {
        require(balanceOf[msg.sender] >= wad);
        balanceOf[msg.sender] -= wad;
        msg.sender.transfer(wad);
        Withdrawal(msg.sender, wad);
    }

    function totalSupply() public view returns (uint) {
        return this.balance;
    }

    function approve(address guy, uint wad) public returns (bool) {
        allowance[msg.sender][guy] = wad;
        Approval(msg.sender, guy, wad);
        return true;
    }

    function transfer(address dst, uint wad) public returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {
        require(balanceOf[src] >= wad);

        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
            require(allowance[src][msg.sender] >= wad);
            allowance[src][msg.sender] -= wad;
        }

        balanceOf[src] -= wad;
        balanceOf[dst] += wad;

        Transfer(src, dst, wad);

        return true;
    }
}

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

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


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


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

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

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

}

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol

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

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: contracts/AirSwapHandler.sol

/**
 * @title AirSwap interface.
 */
interface AirSwapInterface {
    /// @dev Mapping of order hash to bool (true = already filled).
    function fills(
        bytes32 hash
    ) external view returns (bool);

    /// @dev Fills an order by transferring tokens between (maker or escrow) and taker.
    /// Maker is given tokenA to taker.
    function fill(
        address makerAddress,
        uint makerAmount,
        address makerToken,
        address takerAddress,
        uint takerAmount,
        address takerToken,
        uint256 expiration,
        uint256 nonce,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external payable;
}

/**
 * @title AirSwap wrapper contract.
 * @dev Assumes makers and takers have approved this contract to access their balances.
 */
contract AirSwapHandler is ExchangeHandler, Ownable {
    /// @dev AirSwap exhange address
    AirSwapInterface public airSwap;
    WETH9 public weth;
    address public totle;
    uint256 constant MAX_UINT = 2**256 - 1;

    modifier onlyTotle() {
        require(msg.sender == totle);
        _;
    }

    /// @dev Constructor
    function AirSwapHandler(
        address _airSwap,
        address _wethAddress,
        address _totle
    ) public {
        require(_airSwap != address(0x0));
        require(_wethAddress != address(0x0));
        require(_totle != address(0x0));

        airSwap = AirSwapInterface(_airSwap);
        weth = WETH9(_wethAddress);
        totle = _totle;
    }

    /// @dev Get the available amount left to fill for an order
    /// @param orderValues Array of uint values needed for this DEX order
    /// @return Available amount left to fill for this order
    function getAvailableAmount(
        address[8],
        uint256[6] orderValues,
        uint256,
        uint8,
        bytes32,
        bytes32
    ) external returns (uint256) {
        return orderValues[1];
    }

    /// @dev Perform a buy order at the exchange
    /// @param orderAddresses Array of address values needed for each DEX order
    /// @param orderValues Array of uint values needed for each DEX order
    /// @param amountToFill Amount to fill in this order
    /// @param v ECDSA signature parameter v
    /// @param r ECDSA signature parameter r
    /// @param s ECDSA signature parameter s
    /// @return Amount filled in this order
    function performBuy(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint256,
        uint256 amountToFill,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
    external
    onlyTotle
    payable
    returns (uint256) {
        return fillBuy(orderAddresses, orderValues, v, r, s);
    }

    /// @dev Perform a sell order at the exchange
    /// @param orderAddresses Array of address values needed for each DEX order
    /// @param orderValues Array of uint values needed for each DEX order
    /// @param amountToFill Amount to fill in this order
    /// @param v ECDSA signature parameter v
    /// @param r ECDSA signature parameter r
    /// @param s ECDSA signature parameter s
    /// @return Amount filled in this order
    function performSell(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint256,
        uint256 amountToFill,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
    external
    onlyTotle
    returns (uint256) {
        return fillSell(orderAddresses, orderValues, v, r, s);
    }

    function setTotle(address _totle)
    external
    onlyOwner {
        require(_totle != address(0));
        totle = _totle;
    }

    /// @dev The contract is not designed to hold and/or manage tokens.
    /// Withdraws token in the case of emergency. Only an owner is allowed to call this.
    function withdrawToken(address _token, uint _amount)
    external
    onlyOwner
    returns (bool) {
        return ERC20(_token).transfer(owner, _amount);
    }

    /// @dev The contract is not designed to hold ETH.
    /// Withdraws ETH in the case of emergency. Only an owner is allowed to call this.
    function withdrawETH(uint _amount)
    external
    onlyOwner
    returns (bool) {
        owner.transfer(_amount);
    }

    function approveToken(address _token, uint amount) external onlyOwner {
        require(ERC20(_token).approve(address(airSwap), amount));
    }

    function() public payable {
    }

    /** Validates order arguments for fill() and cancel() functions. */
    function validateOrder(
        address makerAddress,
        uint makerAmount,
        address makerToken,
        address takerAddress,
        uint takerAmount,
        address takerToken,
        uint256 expiration,
        uint256 nonce)
    public
    view
    returns (bool) {
        // Hash arguments to identify the order.
        bytes32 hashV = keccak256(makerAddress, makerAmount, makerToken,
                                  takerAddress, takerAmount, takerToken,
                                  expiration, nonce);
        return airSwap.fills(hashV);
    }

    /// orderAddresses[0] == makerAddress
    /// orderAddresses[1] == makerToken
    /// orderAddresses[2] == takerAddress
    /// orderAddresses[3] == takerToken
    /// orderValues[0] = makerAmount
    /// orderValues[1] = takerAmount
    /// orderValues[2] = expiration
    /// orderValues[3] = nonce
    function fillBuy(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) private returns (uint) {
        airSwap.fill.value(msg.value)(orderAddresses[0], orderValues[0], orderAddresses[1],
                                      address(this), orderValues[1], orderAddresses[3],
                                      orderValues[2], orderValues[3], v, r, s);

        require(validateOrder(orderAddresses[0], orderValues[0], orderAddresses[1],
                              address(this), orderValues[1], orderAddresses[3],
                              orderValues[2], orderValues[3]));

        require(ERC20(orderAddresses[1]).transfer(orderAddresses[2], orderValues[0]));

        return orderValues[0];
    }

    /// orderAddresses[0] == makerAddress
    /// orderAddresses[1] == makerToken
    /// orderAddresses[2] == takerAddress
    /// orderAddresses[3] == takerToken
    /// orderValues[0] = makerAmount
    /// orderValues[1] = takerAmount
    /// orderValues[2] = expiration
    /// orderValues[3] = nonce
    function fillSell(
        address[8] orderAddresses,
        uint256[6] orderValues,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) private
    returns (uint)
    {
        assert(msg.sender == totle);

        require(orderAddresses[1] == address(weth));

        uint takerAmount = orderValues[1];

        if(ERC20(orderAddresses[3]).allowance(address(this), address(airSwap)) == 0) {
            require(ERC20(orderAddresses[3]).approve(address(airSwap), MAX_UINT));
        }

        airSwap.fill(orderAddresses[0], orderValues[0], orderAddresses[1],
                     address(this), takerAmount, orderAddresses[3],
                     orderValues[2], orderValues[3], v, r, s);

        require(validateOrder(orderAddresses[0], orderValues[0], orderAddresses[1],
                              address(this), takerAmount, orderAddresses[3],
                              orderValues[2], orderValues[3]));

        weth.withdraw(orderValues[0]);
        msg.sender.transfer(orderValues[0]);

        return orderValues[0];
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"amount","type":"uint256"}],"name":"approveToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_totle","type":"address"}],"name":"setTotle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"airSwap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weth","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address[8]"},{"name":"orderValues","type":"uint256[6]"},{"name":"","type":"uint256"},{"name":"","type":"uint8"},{"name":"","type":"bytes32"},{"name":"","type":"bytes32"}],"name":"getAvailableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"orderAddresses","type":"address[8]"},{"name":"orderValues","type":"uint256[6]"},{"name":"","type":"uint256"},{"name":"amountToFill","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"performSell","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"orderAddresses","type":"address[8]"},{"name":"orderValues","type":"uint256[6]"},{"name":"","type":"uint256"},{"name":"amountToFill","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"performBuy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"makerAddress","type":"address"},{"name":"makerAmount","type":"uint256"},{"name":"makerToken","type":"address"},{"name":"takerAddress","type":"address"},{"name":"takerAmount","type":"uint256"},{"name":"takerToken","type":"address"},{"name":"expiration","type":"uint256"},{"name":"nonce","type":"uint256"}],"name":"validateOrder","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_airSwap","type":"address"},{"name":"_wethAddress","type":"address"},{"name":"_totle","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b604051606080611c5683398101604052808051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156100b957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156100f557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561013157600080fd5b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050611a50806102066000396000f3006060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063022fc88b146100c75780632183e39014610109578063370099d4146101425780633fc8cef3146101975780634102bf5c146101ec5780634981b3ca146102585780638da5cb5b146102cd5780639e281a9814610322578063aeb89f141461037c578063bdd5be2f146103d1578063c6dd5db51461043b578063f14210a61461050d578063f2fde38b14610548575b005b34156100d257600080fd5b610107600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610581565b005b341561011457600080fd5b610140600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106c6565b005b341561014d57600080fd5b6101556107a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a257600080fd5b6101aa6107c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101f757600080fd5b61024260048080610100019091908060c001909190803590602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506107ed565b6040518082815260200191505060405180910390f35b341561026357600080fd5b6102b760048080610100019091908060c001909190803590602001909190803590602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061080f565b6040518082815260200191505060405180910390f35b34156102d857600080fd5b6102e06108d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561032d57600080fd5b610362600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108f6565b604051808215151515815260200191505060405180910390f35b341561038757600080fd5b61038f610a35565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042560048080610100019091908060c001909190803590602001909190803590602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050610a5b565b6040518082815260200191505060405180910390f35b341561044657600080fd5b6104f3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050610b1d565b604051808215151515815260200191505060405180910390f35b341561051857600080fd5b61052e6004808035906020019091905050610d1a565b604051808215151515815260200191505060405180910390f35b341561055357600080fd5b61057f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ddd565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105dc57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156106a057600080fd5b5af115156106ad57600080fd5b5050506040518051905015156106c257600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561075d57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008560016006811015156107fe57fe5b602002013590509695505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086d57600080fd5b6108c488600880602002604051908101604052809291908260086020028082843782019150505050508860068060200260405190810160405280929190826006602002808284378201915050505050868686610f32565b9050979650505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a1657600080fd5b5af11515610a2357600080fd5b50505060405180519050905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ab957600080fd5b610b108860088060200260405190810160405280929190826008602002808284378201915050505050886006806020026040519081016040528092919082600660200280828437820191505050505086868661162a565b9050979650505050505050565b6000808989898989898989604051808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019850505050505050505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166320158c44826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610cf457600080fd5b5af11515610d0157600080fd5b5050506040518051905091505098975050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d7757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610dd857600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e7457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f8e57fe5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16876001600881101515610fd657fe5b602002015173ffffffffffffffffffffffffffffffffffffffff16141515610ffd57600080fd5b85600160068110151561100c57fe5b60200201519050600087600360088110151561102457fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561111857600080fd5b5af1151561112557600080fd5b50505060405180519050141561124f5786600360088110151561114457fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561122c57600080fd5b5af1151561123957600080fd5b50505060405180519050151561124e57600080fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631d4d691d88600060088110151561129c57fe5b60200201518860006006811015156112b057fe5b60200201518a60016008811015156112c457fe5b602002015130868d60036008811015156112da57fe5b60200201518d60026006811015156112ee57fe5b60200201518e600360068110151561130257fe5b60200201518e8e8e6040518c63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019b505050505050505050505050600060405180830381600087803b151561146757600080fd5b5af1151561147457600080fd5b5050506114f987600060088110151561148957fe5b602002015187600060068110151561149d57fe5b60200201518960016008811015156114b157fe5b602002015130858c60036008811015156114c757fe5b60200201518c60026006811015156114db57fe5b60200201518d60036006811015156114ef57fe5b6020020151610b1d565b151561150457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d87600060068110151561155157fe5b60200201516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15156115a757600080fd5b5af115156115b457600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff166108fc8760006006811015156115e057fe5b60200201519081150290604051600060405180830381858888f19350505050151561160a57600080fd5b85600060068110151561161957fe5b602002015191505095945050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631d4d691d3488600060088110151561167a57fe5b602002015188600060068110151561168e57fe5b60200201518a60016008811015156116a257fe5b6020020151308b60016006811015156116b757fe5b60200201518d60036008811015156116cb57fe5b60200201518d60026006811015156116df57fe5b60200201518e60036006811015156116f357fe5b60200201518e8e8e6040518d63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019b5050505050505050505050506000604051808303818588803b151561185757600080fd5b5af1151561186457600080fd5b505050506118fd86600060088110151561187a57fe5b602002015186600060068110151561188e57fe5b60200201518860016008811015156118a257fe5b6020020151308960016006811015156118b757fe5b60200201518b60036008811015156118cb57fe5b60200201518b60026006811015156118df57fe5b60200201518c60036006811015156118f357fe5b6020020151610b1d565b151561190857600080fd5b85600160088110151561191757fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87600260088110151561194657fe5b602002015187600060068110151561195a57fe5b60200201516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119e357600080fd5b5af115156119f057600080fd5b505050604051805190501515611a0557600080fd5b846000600681101515611a1457fe5b60200201519050959450505050505600a165627a7a72305820ec6e701cf4915bcdf135a7b153a2cf5d81b6ef3c16f3c84e8fbe509f5697fdfe00290000000000000000000000008fd3121013a07c57f0d69646e86e7a4880b467b7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000d94c60e2793ad587400d86e4d6fd9c874f0f79ef

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008fd3121013a07c57f0d69646e86e7a4880b467b7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000d94c60e2793ad587400d86e4d6fd9c874f0f79ef

-----Decoded View---------------
Found 3 constructor arguments :
Arg [0] : 0000000000000000000000008fd3121013a07c57f0d69646e86e7a4880b467b7
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [2] : 000000000000000000000000d94c60e2793ad587400d86e4d6fd9c874f0f79ef


   Swarm Source:
bzzr://ec6e701cf4915bcdf135a7b153a2cf5d81b6ef3c16f3c84e8fbe509f5697fdfe

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.