Contract Overview
Transactions:
2 txns
TxHash | Block | Age | From | To | Value | [TxFee] | |
---|---|---|---|---|---|---|---|
0xe5afc50dbe20dcbf075b6d0567383dcb11bf2e351db764ad35ffd52761836645 | 5872041 | 238 days 12 hrs ago | 0xa3eb2115d947c29882c9ee2d8d7bef98d0ca16fd | IN | 0x706b36a1f11457b31652149b77a3fef16575b808 | 0.01 Ether | 0.0001052 |
0xdd01c2abc2f14464d380b599850292ba3cf89e54ada927a690239f313c758960 | 5871971 | 238 days 12 hrs ago | 0xdb0a49ebed788cd412744a4f9f1ce8d16d019b2e | IN | Contract Creation | 0 Ether | 0.015580704 |
[ Download CSV Export ]
Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution
[ Download CSV Export ]
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.
Contract Source Code Verified (Exact Match)
Contract Source Code Verified (Exact Match)
Contract Name: | AirSwapHandler |
Compiler Version: | v0.4.21+commit.dfe3193c |
Optimization Enabled: | No |
Runs (Optimizer): | 200 |
Contract Source Code
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
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
Block | Age | transaction | Difficulty | GasUsed | Reward |
---|
Block | Age | Uncle Number | Difficulty | GasUsed | Reward |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.