Contract Overview
Balance: 0.01 Ether
Ether Value: $1.77 (@ $176.63/ETH)
Transactions: 2 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xdb0a49ebed788cd412744a4f9f1ce8d16d019b2eat txn 0xdd01c2abc2f14464d380b599850292ba3cf89e54ada927a690239f313c758960
Token Balance:
[ 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
0xaaa063f673f48f42417506cb8ca1c6fd2a841c011f648d0635df9f652d1b92f866930105 days 9 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.010355265633059256 Ether
0xaaa063f673f48f42417506cb8ca1c6fd2a841c011f648d0635df9f652d1b92f866930105 days 9 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.010355265633059256 Ether
0xc7e062dbad7ecbc81143e4dcad171e0bf90c26cf3f2017b31b43b1d11b35183566929875 days 9 hrs ago0x8fd3121013a07c57f0d69646e86e7a4880b467b70x706b36a1f11457b31652149b77a3fef16575b8080.0413990388096 Ether
0xc7e062dbad7ecbc81143e4dcad171e0bf90c26cf3f2017b31b43b1d11b35183566929875 days 9 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.0413990388096 Ether
0xc7e062dbad7ecbc81143e4dcad171e0bf90c26cf3f2017b31b43b1d11b35183566929875 days 9 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.0413990388096 Ether
0x160fc53ebf45cf3dd34215b42907187a847c5ac84be95c05cce861bcad3117c566865776 days 10 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b76.300378099602440572 Ether
0x160fc53ebf45cf3dd34215b42907187a847c5ac84be95c05cce861bcad3117c566865776 days 10 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8086.300378099602440572 Ether
0x23b19e467266564dacef4639b100e79f1efeba422a0f64e0dae7a83a87d81987666432110 days 1 hr ago0x706b36a1f11457b31652149b77a3fef16575b8080xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0.01844676861944 Ether
0x23b19e467266564dacef4639b100e79f1efeba422a0f64e0dae7a83a87d81987666432110 days 1 hr ago0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20x706b36a1f11457b31652149b77a3fef16575b8080.01844676861944 Ether
0x51fcd97f661fbe6e876fedd60539ec66174e536ece6e149c7eec8172122bbb52666161910 days 12 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.002614973337325229 Ether
0x51fcd97f661fbe6e876fedd60539ec66174e536ece6e149c7eec8172122bbb52666161910 days 12 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.002614973337325229 Ether
0xafc82812314ab1f7aa427a13d103d2747a19929225df19c4b6ff617ed7a6f230666048410 days 16 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.012698457283321416 Ether
0xafc82812314ab1f7aa427a13d103d2747a19929225df19c4b6ff617ed7a6f230666048410 days 16 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.012698457283321416 Ether
0x6bc5cc74aefeb2cad5c229bd59aa6d18481cbd0e16917af5b57dad7e7cac3b46665868910 days 23 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.080622250030008406 Ether
0x6bc5cc74aefeb2cad5c229bd59aa6d18481cbd0e16917af5b57dad7e7cac3b46665868910 days 23 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.080622250030008406 Ether
0xada0a2173c36cccf68b6d5c7fe0f2d4bbb0a692ddae6d44d60344cc30327401e664611813 days 1 hr ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.099060029406262564 Ether
0xada0a2173c36cccf68b6d5c7fe0f2d4bbb0a692ddae6d44d60344cc30327401e664611813 days 1 hr ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.099060029406262564 Ether
0xdfdd1dca05460eec0d12c62c7b6da87d145ccbc488b176ab21e3a7be1a1be9a6664597313 days 1 hr ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.378261065197201443 Ether
0xdfdd1dca05460eec0d12c62c7b6da87d145ccbc488b176ab21e3a7be1a1be9a6664597313 days 1 hr ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.378261065197201443 Ether
0x7d205ec9c317e9180751f09ab3ee33b7a80f860daf29cbce6d367573e9fb3596664239113 days 16 hrs ago0x8fd3121013a07c57f0d69646e86e7a4880b467b70x706b36a1f11457b31652149b77a3fef16575b8080.315998330771181377 Ether
0x7d205ec9c317e9180751f09ab3ee33b7a80f860daf29cbce6d367573e9fb3596664239113 days 16 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.315998330771181377 Ether
0x7d205ec9c317e9180751f09ab3ee33b7a80f860daf29cbce6d367573e9fb3596664239113 days 16 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.315998330771181377 Ether
0x57c8790031ad646ef9f01cefb49aa1631f84a36374084469d0395013d2703e81663350915 days 2 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.032282092047424779 Ether
0x57c8790031ad646ef9f01cefb49aa1631f84a36374084469d0395013d2703e81663350915 days 2 hrs ago0xd94c60e2793ad587400d86e4d6fd9c874f0f79ef0x706b36a1f11457b31652149b77a3fef16575b8080.032282092047424779 Ether
0x57c8790031ad646ef9f01cefb49aa1631f84a36374084469d0395013d2703e81663350915 days 2 hrs ago0x706b36a1f11457b31652149b77a3fef16575b8080x8fd3121013a07c57f0d69646e86e7a4880b467b70.06803883956722209 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: AirSwapHandler
Compiler Text: 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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008fd3121013a07c57f0d69646e86e7a4880b467b7
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [2] : 000000000000000000000000d94c60e2793ad587400d86e4d6fd9c874f0f79ef


   Swarm Source:
bzzr://ec6e701cf4915bcdf135a7b153a2cf5d81b6ef3c16f3c84e8fbe509f5697fdfe

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.