More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 7,977 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x3552614b | 8044636 | 2007 days ago | IN | 0 ETH | 0.00012654 | ||||
Transfer | 4706420 | 2572 days ago | IN | 100 ETH | 0.0004486 | ||||
Transfer | 4587650 | 2592 days ago | IN | 0 ETH | 0.0004486 | ||||
Transfer | 4561713 | 2596 days ago | IN | 0.05 ETH | 0.00010681 | ||||
Transfer | 4561113 | 2596 days ago | IN | 0.01 ETH | 0.000441 | ||||
Transfer | 4540883 | 2599 days ago | IN | 1 ETH | 0.0004486 | ||||
Claim Tokens | 4516290 | 2603 days ago | IN | 0 ETH | 0.00046019 | ||||
Claim Tokens | 4513856 | 2603 days ago | IN | 0 ETH | 0.00002296 | ||||
Claim Tokens | 4513854 | 2603 days ago | IN | 0 ETH | 0.0001148 | ||||
Proxy Claim Toke... | 4513791 | 2603 days ago | IN | 0 ETH | 0.00000587 | ||||
Claim Tokens | 4513768 | 2603 days ago | IN | 0 ETH | 0.00036201 | ||||
Claim Tokens | 4513556 | 2603 days ago | IN | 0 ETH | 0.00004498 | ||||
Proxy Claim Toke... | 4513538 | 2603 days ago | IN | 0 ETH | 0.00004782 | ||||
Transfer | 4476323 | 2609 days ago | IN | 2.5 ETH | 0.0004486 | ||||
Transfer | 4471730 | 2610 days ago | IN | 1.1 ETH | 0.000441 | ||||
Transfer | 4471122 | 2610 days ago | IN | 0.1 ETH | 0.0004486 | ||||
Transfer | 4471018 | 2610 days ago | IN | 2.5 ETH | 0.00042724 | ||||
Transfer | 4471018 | 2610 days ago | IN | 2.5 ETH | 0.0021362 | ||||
Transfer | 4471017 | 2610 days ago | IN | 2 ETH | 0.00064086 | ||||
Transfer | 4471015 | 2610 days ago | IN | 2.5 ETH | 0.0002243 | ||||
Transfer | 4471012 | 2610 days ago | IN | 2.5 ETH | 0.00042724 | ||||
Transfer | 4471010 | 2610 days ago | IN | 2.5 ETH | 0.00042724 | ||||
Transfer | 4471003 | 2610 days ago | IN | 2.5 ETH | 0.00064086 | ||||
Transfer | 4470817 | 2610 days ago | IN | 1 ETH | 0.0002243 | ||||
Transfer | 4470808 | 2610 days ago | IN | 1 ETH | 0.00000213 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5450454 | 2445 days ago | 0 ETH | ||||
4470238 | 2610 days ago | 2 ETH | ||||
4470238 | 2610 days ago | 2.5 ETH | ||||
4470237 | 2610 days ago | 0.5 ETH | ||||
4470236 | 2610 days ago | 1 ETH | ||||
4470230 | 2610 days ago | 1.5 ETH | ||||
4470226 | 2610 days ago | 50 ETH | ||||
4470223 | 2610 days ago | 2.5 ETH | ||||
4470221 | 2610 days ago | 0.8 ETH | ||||
4470217 | 2610 days ago | 1 ETH | ||||
4470217 | 2610 days ago | 1.86 ETH | ||||
4470215 | 2610 days ago | 12.25363375 ETH | ||||
4470211 | 2610 days ago | 2.5 ETH | ||||
4470210 | 2610 days ago | 2.6 ETH | ||||
4470207 | 2610 days ago | 84 ETH | ||||
4470206 | 2610 days ago | 2.5 ETH | ||||
4470198 | 2610 days ago | 3 ETH | ||||
4470197 | 2610 days ago | 0.25 ETH | ||||
4470196 | 2610 days ago | 2.5 ETH | ||||
4470196 | 2610 days ago | 2.5 ETH | ||||
4470195 | 2610 days ago | 1.49 ETH | ||||
4470194 | 2610 days ago | 1,000 ETH | ||||
4470194 | 2610 days ago | 1,000 ETH | ||||
4470192 | 2610 days ago | 2.5 ETH | ||||
4470190 | 2610 days ago | 7 ETH |
Loading...
Loading
Contract Name:
DutchAuction
Compiler Version
v0.4.17+commit.bdeb9e52
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-10-18 */ pragma solidity ^0.4.17; /// @title ERC223ReceivingContract - Standard contract implementation for compatibility with ERC223 tokens. contract ERC223ReceivingContract { /// @dev Function that is called when a user or another contract wants to transfer funds. /// @param _from Transaction initiator, analogue of msg.sender /// @param _value Number of tokens to transfer. /// @param _data Data containig a function signature and/or parameters function tokenFallback(address _from, uint256 _value, bytes _data) public; } contract Token { /* * Implements ERC 20 standard. * https://github.com/ethereum/EIPs/blob/f90864a3d2b2b45c4decf95efd26b3f0c276051a/EIPS/eip-20-token-standard.md * https://github.com/ethereum/EIPs/issues/20 * * Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload. * https://github.com/ethereum/EIPs/issues/223 */ /* * This is a slight change to the ERC20 base standard. * function totalSupply() constant returns (uint256 supply); * is replaced with: * uint256 public totalSupply; * This automatically creates a getter function for the totalSupply. * This is moved to the base contract since public getter functions are not * currently recognised as an implementation of the matching abstract * function by the compiler. */ uint256 public totalSupply; /* * ERC 20 */ function balanceOf(address _owner) public constant returns (uint256 balance); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); function allowance(address _owner, address _spender) public constant returns (uint256 remaining); /* * ERC 223 */ function transfer(address _to, uint256 _value, bytes _data) public returns (bool success); /* * Events */ event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); // There is no ERC223 compatible Transfer event, with `_data` included. } /// @title Standard token contract - Standard token implementation. contract StandardToken is Token { /* * Data structures */ mapping (address => uint256) balances; mapping (address => mapping (address => uint256)) allowed; /* * Public functions */ /// @notice Send `_value` tokens to `_to` from `msg.sender`. /// @dev Transfers sender's tokens to a given address. Returns success. /// @param _to Address of token receiver. /// @param _value Number of tokens to transfer. /// @return Returns success of function call. function transfer(address _to, uint256 _value) public returns (bool) { require(_to != 0x0); require(_to != address(this)); require(balances[msg.sender] >= _value); require(balances[_to] + _value >= balances[_to]); balances[msg.sender] -= _value; balances[_to] += _value; Transfer(msg.sender, _to, _value); return true; } /// @notice Send `_value` tokens to `_to` from `msg.sender` and trigger /// tokenFallback if sender is a contract. /// @dev Function that is called when a user or another contract wants to transfer funds. /// @param _to Address of token receiver. /// @param _value Number of tokens to transfer. /// @param _data Data to be sent to tokenFallback /// @return Returns success of function call. function transfer( address _to, uint256 _value, bytes _data) public returns (bool) { require(transfer(_to, _value)); uint codeLength; assembly { // Retrieve the size of the code on target address, this needs assembly. codeLength := extcodesize(_to) } if (codeLength > 0) { ERC223ReceivingContract receiver = ERC223ReceivingContract(_to); receiver.tokenFallback(msg.sender, _value, _data); } return true; } /// @notice Transfer `_value` tokens from `_from` to `_to` if `msg.sender` is allowed. /// @dev Allows for an approved third party to transfer tokens from one /// address to another. Returns success. /// @param _from Address from where tokens are withdrawn. /// @param _to Address to where tokens are sent. /// @param _value Number of tokens to transfer. /// @return Returns success of function call. function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_from != 0x0); require(_to != 0x0); require(_to != address(this)); require(balances[_from] >= _value); require(allowed[_from][msg.sender] >= _value); require(balances[_to] + _value >= balances[_to]); balances[_to] += _value; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } /// @notice Allows `_spender` to transfer `_value` tokens from `msg.sender` to any address. /// @dev Sets approved amount of tokens for spender. Returns success. /// @param _spender Address of allowed account. /// @param _value Number of approved tokens. /// @return Returns success of function call. function approve(address _spender, uint256 _value) public returns (bool) { require(_spender != 0x0); // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 require(_value == 0 || allowed[msg.sender][_spender] == 0); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /* * Read functions */ /// @dev Returns number of allowed tokens that a spender can transfer on /// behalf of a token owner. /// @param _owner Address of token owner. /// @param _spender Address of token spender. /// @return Returns remaining allowance for spender. function allowance(address _owner, address _spender) constant public returns (uint256) { return allowed[_owner][_spender]; } /// @dev Returns number of tokens owned by the given address. /// @param _owner Address of token owner. /// @return Returns balance of owner. function balanceOf(address _owner) constant public returns (uint256) { return balances[_owner]; } } /// @title Raiden Token contract RaidenToken is StandardToken { /* * Terminology: * 1 token unit = Rei * 1 token = RDN = Rei * multiplier * multiplier set from token's number of decimals (i.e. 10 ** decimals) */ /* * Token metadata */ string constant public name = "Raiden Token"; string constant public symbol = "RDN"; uint8 constant public decimals = 18; uint constant multiplier = 10 ** uint(decimals); event Deployed(uint indexed _total_supply); event Burnt( address indexed _receiver, uint indexed _num, uint indexed _total_supply ); /* * Public functions */ /// @dev Contract constructor function sets dutch auction contract address /// and assigns all tokens to dutch auction. /// @param auction_address Address of dutch auction contract. /// @param wallet_address Address of wallet. /// @param initial_supply Number of initially provided token units (Rei). function RaidenToken( address auction_address, address wallet_address, uint initial_supply) public { // Auction address should not be null. require(auction_address != 0x0); require(wallet_address != 0x0); // Initial supply is in Rei require(initial_supply > multiplier); // Total supply of Rei at deployment totalSupply = initial_supply; balances[auction_address] = initial_supply / 2; balances[wallet_address] = initial_supply / 2; Transfer(0x0, auction_address, balances[auction_address]); Transfer(0x0, wallet_address, balances[wallet_address]); Deployed(totalSupply); assert(totalSupply == balances[auction_address] + balances[wallet_address]); } /// @notice Allows `msg.sender` to simply destroy `num` token units (Rei). This means the total /// token supply will decrease. /// @dev Allows to destroy token units (Rei). /// @param num Number of token units (Rei) to burn. function burn(uint num) public { require(num > 0); require(balances[msg.sender] >= num); require(totalSupply >= num); uint pre_balance = balances[msg.sender]; balances[msg.sender] -= num; totalSupply -= num; Burnt(msg.sender, num, totalSupply); Transfer(msg.sender, 0x0, num); assert(balances[msg.sender] == pre_balance - num); } } /// @title Dutch auction contract - distribution of a fixed number of tokens using an auction. /// The contract code is inspired by the Gnosis auction contract. Main difference is that the /// auction ends if a fixed number of tokens was sold. contract DutchAuction { /* * Auction for the RDN Token. * * Terminology: * 1 token unit = Rei * 1 token = RDN = Rei * token_multiplier * token_multiplier set from token's number of decimals (i.e. 10 ** decimals) */ // Wait 7 days after the end of the auction, before anyone can claim tokens uint constant public token_claim_waiting_period = 7 days; // Bid value over which the address has to be whitelisted // At deployment moment, less than 1k$ uint constant public bid_threshold = 2.5 ether; /* * Storage */ RaidenToken public token; address public owner_address; address public wallet_address; address public whitelister_address; // Price decay function parameters to be changed depending on the desired outcome // Starting price in WEI; e.g. 2 * 10 ** 18 uint public price_start; // Divisor constant; e.g. 524880000 uint public price_constant; // Divisor exponent; e.g. 3 uint32 public price_exponent; // For calculating elapsed time for price uint public start_time; uint public end_time; uint public start_block; // Keep track of all ETH received in the bids uint public received_wei; // Keep track of cumulative ETH funds for which the tokens have been claimed uint public funds_claimed; uint public token_multiplier; // Total number of Rei (RDN * token_multiplier) that will be auctioned uint public num_tokens_auctioned; // Wei per RDN (Rei * token_multiplier) uint public final_price; // Bidder address => bid value mapping (address => uint) public bids; // Whitelist for addresses that want to bid more than bid_threshold mapping (address => bool) public whitelist; Stages public stage; /* * Enums */ enum Stages { AuctionDeployed, AuctionSetUp, AuctionStarted, AuctionEnded, TokensDistributed } /* * Modifiers */ modifier atStage(Stages _stage) { require(stage == _stage); _; } modifier isOwner() { require(msg.sender == owner_address); _; } modifier isWhitelister() { require(msg.sender == whitelister_address); _; } /* * Events */ event Deployed( uint indexed _price_start, uint indexed _price_constant, uint32 indexed _price_exponent ); event Setup(); event AuctionStarted(uint indexed _start_time, uint indexed _block_number); event BidSubmission( address indexed _sender, uint _amount, uint _missing_funds ); event ClaimedTokens(address indexed _recipient, uint _sent_amount); event AuctionEnded(uint _final_price); event TokensDistributed(); /* * Public functions */ /// @dev Contract constructor function sets the starting price, divisor constant and /// divisor exponent for calculating the Dutch Auction price. /// @param _wallet_address Wallet address to which all contributed ETH will be forwarded. /// @param _price_start High price in WEI at which the auction starts. /// @param _price_constant Auction price divisor constant. /// @param _price_exponent Auction price divisor exponent. function DutchAuction( address _wallet_address, address _whitelister_address, uint _price_start, uint _price_constant, uint32 _price_exponent) public { require(_wallet_address != 0x0); require(_whitelister_address != 0x0); wallet_address = _wallet_address; whitelister_address = _whitelister_address; owner_address = msg.sender; stage = Stages.AuctionDeployed; changeSettings(_price_start, _price_constant, _price_exponent); Deployed(_price_start, _price_constant, _price_exponent); } /// @dev Fallback function for the contract, which calls bid() if the auction has started. function () public payable atStage(Stages.AuctionStarted) { bid(); } /// @notice Set `_token_address` as the token address to be used in the auction. /// @dev Setup function sets external contracts addresses. /// @param _token_address Token address. function setup(address _token_address) public isOwner atStage(Stages.AuctionDeployed) { require(_token_address != 0x0); token = RaidenToken(_token_address); // Get number of Rei (RDN * token_multiplier) to be auctioned from token auction balance num_tokens_auctioned = token.balanceOf(address(this)); // Set the number of the token multiplier for its decimals token_multiplier = 10 ** uint(token.decimals()); stage = Stages.AuctionSetUp; Setup(); } /// @notice Set `_price_start`, `_price_constant` and `_price_exponent` as /// the new starting price, price divisor constant and price divisor exponent. /// @dev Changes auction price function parameters before auction is started. /// @param _price_start Updated start price. /// @param _price_constant Updated price divisor constant. /// @param _price_exponent Updated price divisor exponent. function changeSettings( uint _price_start, uint _price_constant, uint32 _price_exponent) internal { require(stage == Stages.AuctionDeployed || stage == Stages.AuctionSetUp); require(_price_start > 0); require(_price_constant > 0); price_start = _price_start; price_constant = _price_constant; price_exponent = _price_exponent; } /// @notice Adds account addresses to whitelist. /// @dev Adds account addresses to whitelist. /// @param _bidder_addresses Array of addresses. function addToWhitelist(address[] _bidder_addresses) public isWhitelister { for (uint32 i = 0; i < _bidder_addresses.length; i++) { whitelist[_bidder_addresses[i]] = true; } } /// @notice Removes account addresses from whitelist. /// @dev Removes account addresses from whitelist. /// @param _bidder_addresses Array of addresses. function removeFromWhitelist(address[] _bidder_addresses) public isWhitelister { for (uint32 i = 0; i < _bidder_addresses.length; i++) { whitelist[_bidder_addresses[i]] = false; } } /// @notice Start the auction. /// @dev Starts auction and sets start_time. function startAuction() public isOwner atStage(Stages.AuctionSetUp) { stage = Stages.AuctionStarted; start_time = now; start_block = block.number; AuctionStarted(start_time, start_block); } /// @notice Finalize the auction - sets the final RDN token price and changes the auction /// stage after no bids are allowed anymore. /// @dev Finalize auction and set the final RDN token price. function finalizeAuction() public atStage(Stages.AuctionStarted) { // Missing funds should be 0 at this point uint missing_funds = missingFundsToEndAuction(); require(missing_funds == 0); // Calculate the final price = WEI / RDN = WEI / (Rei / token_multiplier) // Reminder: num_tokens_auctioned is the number of Rei (RDN * token_multiplier) that are auctioned final_price = token_multiplier * received_wei / num_tokens_auctioned; end_time = now; stage = Stages.AuctionEnded; AuctionEnded(final_price); assert(final_price > 0); } /// --------------------------------- Auction Functions ------------------ /// @notice Send `msg.value` WEI to the auction from the `msg.sender` account. /// @dev Allows to send a bid to the auction. function bid() public payable atStage(Stages.AuctionStarted) { require(msg.value > 0); require(bids[msg.sender] + msg.value <= bid_threshold || whitelist[msg.sender]); assert(bids[msg.sender] + msg.value >= msg.value); // Missing funds without the current bid value uint missing_funds = missingFundsToEndAuction(); // We require bid values to be less than the funds missing to end the auction // at the current price. require(msg.value <= missing_funds); bids[msg.sender] += msg.value; received_wei += msg.value; // Send bid amount to wallet wallet_address.transfer(msg.value); BidSubmission(msg.sender, msg.value, missing_funds); assert(received_wei >= msg.value); } /// @notice Claim auction tokens for `msg.sender` after the auction has ended. /// @dev Claims tokens for `msg.sender` after auction. To be used if tokens can /// be claimed by beneficiaries, individually. function claimTokens() public atStage(Stages.AuctionEnded) returns (bool) { return proxyClaimTokens(msg.sender); } /// @notice Claim auction tokens for `receiver_address` after the auction has ended. /// @dev Claims tokens for `receiver_address` after auction has ended. /// @param receiver_address Tokens will be assigned to this address if eligible. function proxyClaimTokens(address receiver_address) public atStage(Stages.AuctionEnded) returns (bool) { // Waiting period after the end of the auction, before anyone can claim tokens // Ensures enough time to check if auction was finalized correctly // before users start transacting tokens require(now > end_time + token_claim_waiting_period); require(receiver_address != 0x0); if (bids[receiver_address] == 0) { return false; } // Number of Rei = bid_wei / Rei = bid_wei / (wei_per_RDN * token_multiplier) uint num = (token_multiplier * bids[receiver_address]) / final_price; // Due to final_price floor rounding, the number of assigned tokens may be higher // than expected. Therefore, the number of remaining unassigned auction tokens // may be smaller than the number of tokens needed for the last claimTokens call uint auction_tokens_balance = token.balanceOf(address(this)); if (num > auction_tokens_balance) { num = auction_tokens_balance; } // Update the total amount of funds for which tokens have been claimed funds_claimed += bids[receiver_address]; // Set receiver bid to 0 before assigning tokens bids[receiver_address] = 0; require(token.transfer(receiver_address, num)); ClaimedTokens(receiver_address, num); // After the last tokens are claimed, we change the auction stage // Due to the above logic, rounding errors will not be an issue if (funds_claimed == received_wei) { stage = Stages.TokensDistributed; TokensDistributed(); } assert(token.balanceOf(receiver_address) >= num); assert(bids[receiver_address] == 0); return true; } /// @notice Get the RDN price in WEI during the auction, at the time of /// calling this function. Returns `0` if auction has ended. /// Returns `price_start` before auction has started. /// @dev Calculates the current RDN token price in WEI. /// @return Returns WEI per RDN (token_multiplier * Rei). function price() public constant returns (uint) { if (stage == Stages.AuctionEnded || stage == Stages.TokensDistributed) { return 0; } return calcTokenPrice(); } /// @notice Get the missing funds needed to end the auction, /// calculated at the current RDN price in WEI. /// @dev The missing funds amount necessary to end the auction at the current RDN price in WEI. /// @return Returns the missing funds amount in WEI. function missingFundsToEndAuction() constant public returns (uint) { // num_tokens_auctioned = total number of Rei (RDN * token_multiplier) that is auctioned uint required_wei_at_price = num_tokens_auctioned * price() / token_multiplier; if (required_wei_at_price <= received_wei) { return 0; } // assert(required_wei_at_price - received_wei > 0); return required_wei_at_price - received_wei; } /* * Private functions */ /// @dev Calculates the token price (WEI / RDN) at the current timestamp /// during the auction; elapsed time = 0 before auction starts. /// Based on the provided parameters, the price does not change in the first /// `price_constant^(1/price_exponent)` seconds due to rounding. /// Rounding in `decay_rate` also produces values that increase instead of decrease /// in the beginning; these spikes decrease over time and are noticeable /// only in first hours. This should be calculated before usage. /// @return Returns the token price - Wei per RDN. function calcTokenPrice() constant private returns (uint) { uint elapsed; if (stage == Stages.AuctionStarted) { elapsed = now - start_time; } uint decay_rate = elapsed ** price_exponent / price_constant; return price_start * (1 + elapsed) / (1 + elapsed + decay_rate); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"num_tokens_auctioned","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"final_price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price_exponent","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"end_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"bid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"token_multiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price_start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bid_threshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"funds_claimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token_claim_waiting_period","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelister_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bidder_addresses","type":"address[]"}],"name":"removeFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bids","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token_address","type":"address"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"received_wei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bidder_addresses","type":"address[]"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"start_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price_constant","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver_address","type":"address"}],"name":"proxyClaimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"start_block","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"missingFundsToEndAuction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizeAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_wallet_address","type":"address"},{"name":"_whitelister_address","type":"address"},{"name":"_price_start","type":"uint256"},{"name":"_price_constant","type":"uint256"},{"name":"_price_exponent","type":"uint32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_price_start","type":"uint256"},{"indexed":true,"name":"_price_constant","type":"uint256"},{"indexed":true,"name":"_price_exponent","type":"uint32"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[],"name":"Setup","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_start_time","type":"uint256"},{"indexed":true,"name":"_block_number","type":"uint256"}],"name":"AuctionStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_sender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_missing_funds","type":"uint256"}],"name":"BidSubmission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_sent_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_final_price","type":"uint256"}],"name":"AuctionEnded","type":"event"},{"anonymous":false,"inputs":[],"name":"TokensDistributed","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b60405160a08062001cfa8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190505060008573ffffffffffffffffffffffffffffffffffffffff16141515156200007857600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16141515156200009f57600080fd5b84600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160006101000a81548160ff021916908360048111156200018257fe5b0217905550620001a8838383620001e86401000000000262001962176401000000009004565b8063ffffffff1682847f386f36f3306fb418dd13e11a0f5b005c8b23a70fb5da6c18ab5123e5fe68598560405160405180910390a45050505050620002a6565b60006004811115620001f657fe5b601160009054906101000a900460ff1660048111156200021257fe5b1480620002465750600160048111156200022857fe5b601160009054906101000a900460ff1660048111156200024457fe5b145b15156200025257600080fd5b6000831115156200026257600080fd5b6000821115156200027257600080fd5b826004819055508160058190555080600660006101000a81548163ffffffff021916908363ffffffff160217905550505050565b611a4480620002b66000396000f3006060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303cc7b85146101be57806308b309e3146101e75780630c64a7391461021057806316243356146102455780631998aeef1461026e5780631e3359621461027857806329b4d111146102a15780632a887299146102ca5780632aefb7c5146102f357806348c54b9d1461031c5780634b7829f1146103495780634e01291814610372578063548db174146103c757806362ea82db1461042157806366d382031461046e5780636b64c769146104a75780637b10e717146104bc5780637f649783146104e557806380edef8e1461053f578063834ee417146105945780639b19251a146105bd5780639dbf05431461060e578063a035b1fe14610637578063aeaaaa0814610660578063b87fb3db146106b1578063c040e6b8146106da578063c5cd88db14610711578063e776a5b51461073a578063f77282ab1461078f578063fc0c546a146107a4575b600280600481111561018c57fe5b601160009054906101000a900460ff1660048111156101a757fe5b1415156101b357600080fd5b6101bb6107f9565b50005b34156101c957600080fd5b6101d1610a78565b6040518082815260200191505060405180910390f35b34156101f257600080fd5b6101fa610a7e565b6040518082815260200191505060405180910390f35b341561021b57600080fd5b610223610a84565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561025057600080fd5b610258610a9a565b6040518082815260200191505060405180910390f35b6102766107f9565b005b341561028357600080fd5b61028b610aa0565b6040518082815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610aa6565b6040518082815260200191505060405180910390f35b34156102d557600080fd5b6102dd610aac565b6040518082815260200191505060405180910390f35b34156102fe57600080fd5b610306610ab8565b6040518082815260200191505060405180910390f35b341561032757600080fd5b61032f610abe565b604051808215151515815260200191505060405180910390f35b341561035457600080fd5b61035c610b04565b6040518082815260200191505060405180910390f35b341561037d57600080fd5b610385610b0b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d257600080fd5b61041f600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610b31565b005b341561042c57600080fd5b610458600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c29565b6040518082815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c41565b005b34156104b257600080fd5b6104ba610f25565b005b34156104c757600080fd5b6104cf61101d565b6040518082815260200191505060405180910390f35b34156104f057600080fd5b61053d600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611023565b005b341561054a57600080fd5b61055261111b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059f57600080fd5b6105a7611141565b6040518082815260200191505060405180910390f35b34156105c857600080fd5b6105f4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611147565b604051808215151515815260200191505060405180910390f35b341561061957600080fd5b610621611167565b6040518082815260200191505060405180910390f35b341561064257600080fd5b61064a61116d565b6040518082815260200191505060405180910390f35b341561066b57600080fd5b610697600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111e3565b604051808215151515815260200191505060405180910390f35b34156106bc57600080fd5b6106c461175c565b6040518082815260200191505060405180910390f35b34156106e557600080fd5b6106ed611762565b604051808260048111156106fd57fe5b60ff16815260200191505060405180910390f35b341561071c57600080fd5b610724611775565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d6117b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079a57600080fd5b6107a26117d9565b005b34156107af57600080fd5b6107b76118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600280600481111561080957fe5b601160009054906101000a900460ff16600481111561082457fe5b14151561083057600080fd5b60003411151561083f57600080fd5b6722b1c8c1227a000034600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115806108e05750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15156108eb57600080fd5b3434600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561093857fe5b610940611775565b915081341115151561095157600080fd5b34600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555034600a60008282540192505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610a1057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167fc9c6176cbf7c0a8c29655fe8ccbe5e28382ca11459d145223308723bfc6975453484604051808381526020018281526020019250505060405180910390a234600a5410151515610a7457fe5b5050565b600d5481565b600e5481565b600660009054906101000a900463ffffffff1681565b60085481565b600c5481565b60045481565b6722b1c8c1227a000081565b600b5481565b60006003806004811115610ace57fe5b601160009054906101000a900460ff166004811115610ae957fe5b141515610af557600080fd5b610afe336111e3565b91505090565b62093a8081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8f57600080fd5b600090505b81518163ffffffff161015610c2557600060106000848463ffffffff16815181101515610bbd57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610b94565b5050565b600f6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d57600080fd5b6000806004811115610cab57fe5b601160009054906101000a900460ff166004811115610cc657fe5b141515610cd257600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610cf857600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610dfc57600080fd5b6102c65a03f11515610e0d57600080fd5b50505060405180519050600d819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610eaa57600080fd5b6102c65a03f11515610ebb57600080fd5b5050506040518051905060ff16600a0a600c819055506001601160006101000a81548160ff02191690836004811115610ef057fe5b02179055507f587930504fa5b1062f394d90f9dac9ecadd354ed23a97af9ea4e44dff4870a8460405160405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f8157600080fd5b6001806004811115610f8f57fe5b601160009054906101000a900460ff166004811115610faa57fe5b141515610fb657600080fd5b6002601160006101000a81548160ff02191690836004811115610fd557fe5b021790555042600781905550436009819055506009546007547ff8910119ddbef5440c54532457dfe8250a10ed39e583292818f44724b9e1344c60405160405180910390a350565b600a5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561108157600080fd5b600090505b81518163ffffffff16101561111757600160106000848463ffffffff168151811015156110af57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611086565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60106020528060005260406000206000915054906101000a900460ff1681565b60055481565b60006003600481111561117c57fe5b601160009054906101000a900460ff16600481111561119757fe5b14806111c757506004808111156111aa57fe5b601160009054906101000a900460ff1660048111156111c557fe5b145b156111d557600090506111e0565b6111dd6118de565b90505b90565b600080600060038060048111156111f657fe5b601160009054906101000a900460ff16600481111561121157fe5b14151561121d57600080fd5b62093a80600854014211151561123257600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff161415151561125857600080fd5b6000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112a95760009350611754565b600e54600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c54028115156112f957fe5b0492506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156113c057600080fd5b6102c65a03f115156113d157600080fd5b505050604051805190509150818311156113e9578192505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b600082825401925050819055506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561154957600080fd5b6102c65a03f1151561155a57600080fd5b50505060405180519050151561156f57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d7907846040518082815260200191505060405180910390a2600a54600b54141561161a576004601160006101000a81548160ff021916908360048111156115e857fe5b02179055507fcea85459abe456c560868e61c476933dcee35a72aba5f546e93715929a69618660405160405180910390a15b826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116df57600080fd5b6102c65a03f115156116f057600080fd5b505050604051805190501015151561170457fe5b6000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561174f57fe5b600193505b505050919050565b60095481565b601160009054906101000a900460ff1681565b600080600c5461178361116d565b600d540281151561179057fe5b049050600a54811115156117a757600091506117af565b600a54810391505b5090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060028060048111156117e957fe5b601160009054906101000a900460ff16600481111561180457fe5b14151561181057600080fd5b611818611775565b915060008214151561182957600080fd5b600d54600a54600c540281151561183c57fe5b04600e81905550426008819055506003601160006101000a81548160ff0219169083600481111561186957fe5b02179055507f45806e512b1f4f10e33e8b3cb64d1d11d998d8c554a95e0841fc1c701278bd5d600e546040518082815260200191505060405180910390a16000600e541115156118b557fe5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600260048111156118f057fe5b601160009054906101000a900460ff16600481111561190b57fe5b141561191957600754420391505b600554600660009054906101000a900463ffffffff1663ffffffff16830a81151561194057fe5b049050808260010101826001016004540281151561195a57fe5b049250505090565b6000600481111561196f57fe5b601160009054906101000a900460ff16600481111561198a57fe5b14806119bb57506001600481111561199e57fe5b601160009054906101000a900460ff1660048111156119b957fe5b145b15156119c657600080fd5b6000831115156119d557600080fd5b6000821115156119e457600080fd5b826004819055508160058190555080600660006101000a81548163ffffffff021916908363ffffffff1602179055505050505600a165627a7a72305820c02791b2eab317ec1431d443a7209661995d304d4de51163c18e708c731a4759002900000000000000000000000000c7122633a4ef0bc72f7d02456ee2b11e97561e0000000000000000000000007f07a4a25863ff8445f28cd89b7228d91f2f818b0000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000000000000005ddb19800000000000000000000000000000000000000000000000000000000000000003
Deployed Bytecode
0x6060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303cc7b85146101be57806308b309e3146101e75780630c64a7391461021057806316243356146102455780631998aeef1461026e5780631e3359621461027857806329b4d111146102a15780632a887299146102ca5780632aefb7c5146102f357806348c54b9d1461031c5780634b7829f1146103495780634e01291814610372578063548db174146103c757806362ea82db1461042157806366d382031461046e5780636b64c769146104a75780637b10e717146104bc5780637f649783146104e557806380edef8e1461053f578063834ee417146105945780639b19251a146105bd5780639dbf05431461060e578063a035b1fe14610637578063aeaaaa0814610660578063b87fb3db146106b1578063c040e6b8146106da578063c5cd88db14610711578063e776a5b51461073a578063f77282ab1461078f578063fc0c546a146107a4575b600280600481111561018c57fe5b601160009054906101000a900460ff1660048111156101a757fe5b1415156101b357600080fd5b6101bb6107f9565b50005b34156101c957600080fd5b6101d1610a78565b6040518082815260200191505060405180910390f35b34156101f257600080fd5b6101fa610a7e565b6040518082815260200191505060405180910390f35b341561021b57600080fd5b610223610a84565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561025057600080fd5b610258610a9a565b6040518082815260200191505060405180910390f35b6102766107f9565b005b341561028357600080fd5b61028b610aa0565b6040518082815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610aa6565b6040518082815260200191505060405180910390f35b34156102d557600080fd5b6102dd610aac565b6040518082815260200191505060405180910390f35b34156102fe57600080fd5b610306610ab8565b6040518082815260200191505060405180910390f35b341561032757600080fd5b61032f610abe565b604051808215151515815260200191505060405180910390f35b341561035457600080fd5b61035c610b04565b6040518082815260200191505060405180910390f35b341561037d57600080fd5b610385610b0b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d257600080fd5b61041f600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610b31565b005b341561042c57600080fd5b610458600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c29565b6040518082815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c41565b005b34156104b257600080fd5b6104ba610f25565b005b34156104c757600080fd5b6104cf61101d565b6040518082815260200191505060405180910390f35b34156104f057600080fd5b61053d600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611023565b005b341561054a57600080fd5b61055261111b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059f57600080fd5b6105a7611141565b6040518082815260200191505060405180910390f35b34156105c857600080fd5b6105f4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611147565b604051808215151515815260200191505060405180910390f35b341561061957600080fd5b610621611167565b6040518082815260200191505060405180910390f35b341561064257600080fd5b61064a61116d565b6040518082815260200191505060405180910390f35b341561066b57600080fd5b610697600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111e3565b604051808215151515815260200191505060405180910390f35b34156106bc57600080fd5b6106c461175c565b6040518082815260200191505060405180910390f35b34156106e557600080fd5b6106ed611762565b604051808260048111156106fd57fe5b60ff16815260200191505060405180910390f35b341561071c57600080fd5b610724611775565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d6117b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079a57600080fd5b6107a26117d9565b005b34156107af57600080fd5b6107b76118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600280600481111561080957fe5b601160009054906101000a900460ff16600481111561082457fe5b14151561083057600080fd5b60003411151561083f57600080fd5b6722b1c8c1227a000034600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115806108e05750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15156108eb57600080fd5b3434600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561093857fe5b610940611775565b915081341115151561095157600080fd5b34600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555034600a60008282540192505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610a1057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167fc9c6176cbf7c0a8c29655fe8ccbe5e28382ca11459d145223308723bfc6975453484604051808381526020018281526020019250505060405180910390a234600a5410151515610a7457fe5b5050565b600d5481565b600e5481565b600660009054906101000a900463ffffffff1681565b60085481565b600c5481565b60045481565b6722b1c8c1227a000081565b600b5481565b60006003806004811115610ace57fe5b601160009054906101000a900460ff166004811115610ae957fe5b141515610af557600080fd5b610afe336111e3565b91505090565b62093a8081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8f57600080fd5b600090505b81518163ffffffff161015610c2557600060106000848463ffffffff16815181101515610bbd57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610b94565b5050565b600f6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d57600080fd5b6000806004811115610cab57fe5b601160009054906101000a900460ff166004811115610cc657fe5b141515610cd257600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610cf857600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610dfc57600080fd5b6102c65a03f11515610e0d57600080fd5b50505060405180519050600d819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610eaa57600080fd5b6102c65a03f11515610ebb57600080fd5b5050506040518051905060ff16600a0a600c819055506001601160006101000a81548160ff02191690836004811115610ef057fe5b02179055507f587930504fa5b1062f394d90f9dac9ecadd354ed23a97af9ea4e44dff4870a8460405160405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f8157600080fd5b6001806004811115610f8f57fe5b601160009054906101000a900460ff166004811115610faa57fe5b141515610fb657600080fd5b6002601160006101000a81548160ff02191690836004811115610fd557fe5b021790555042600781905550436009819055506009546007547ff8910119ddbef5440c54532457dfe8250a10ed39e583292818f44724b9e1344c60405160405180910390a350565b600a5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561108157600080fd5b600090505b81518163ffffffff16101561111757600160106000848463ffffffff168151811015156110af57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611086565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60106020528060005260406000206000915054906101000a900460ff1681565b60055481565b60006003600481111561117c57fe5b601160009054906101000a900460ff16600481111561119757fe5b14806111c757506004808111156111aa57fe5b601160009054906101000a900460ff1660048111156111c557fe5b145b156111d557600090506111e0565b6111dd6118de565b90505b90565b600080600060038060048111156111f657fe5b601160009054906101000a900460ff16600481111561121157fe5b14151561121d57600080fd5b62093a80600854014211151561123257600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff161415151561125857600080fd5b6000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112a95760009350611754565b600e54600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c54028115156112f957fe5b0492506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156113c057600080fd5b6102c65a03f115156113d157600080fd5b505050604051805190509150818311156113e9578192505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b600082825401925050819055506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561154957600080fd5b6102c65a03f1151561155a57600080fd5b50505060405180519050151561156f57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d7907846040518082815260200191505060405180910390a2600a54600b54141561161a576004601160006101000a81548160ff021916908360048111156115e857fe5b02179055507fcea85459abe456c560868e61c476933dcee35a72aba5f546e93715929a69618660405160405180910390a15b826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116df57600080fd5b6102c65a03f115156116f057600080fd5b505050604051805190501015151561170457fe5b6000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561174f57fe5b600193505b505050919050565b60095481565b601160009054906101000a900460ff1681565b600080600c5461178361116d565b600d540281151561179057fe5b049050600a54811115156117a757600091506117af565b600a54810391505b5090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060028060048111156117e957fe5b601160009054906101000a900460ff16600481111561180457fe5b14151561181057600080fd5b611818611775565b915060008214151561182957600080fd5b600d54600a54600c540281151561183c57fe5b04600e81905550426008819055506003601160006101000a81548160ff0219169083600481111561186957fe5b02179055507f45806e512b1f4f10e33e8b3cb64d1d11d998d8c554a95e0841fc1c701278bd5d600e546040518082815260200191505060405180910390a16000600e541115156118b557fe5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600260048111156118f057fe5b601160009054906101000a900460ff16600481111561190b57fe5b141561191957600754420391505b600554600660009054906101000a900463ffffffff1663ffffffff16830a81151561194057fe5b049050808260010101826001016004540281151561195a57fe5b049250505090565b6000600481111561196f57fe5b601160009054906101000a900460ff16600481111561198a57fe5b14806119bb57506001600481111561199e57fe5b601160009054906101000a900460ff1660048111156119b957fe5b145b15156119c657600080fd5b6000831115156119d557600080fd5b6000821115156119e457600080fd5b826004819055508160058190555080600660006101000a81548163ffffffff021916908363ffffffff1602179055505050505600a165627a7a72305820c02791b2eab317ec1431d443a7209661995d304d4de51163c18e708c731a47590029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000c7122633a4ef0bc72f7d02456ee2b11e97561e0000000000000000000000007f07a4a25863ff8445f28cd89b7228d91f2f818b0000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000000000000005ddb19800000000000000000000000000000000000000000000000000000000000000003
-----Decoded View---------------
Arg [0] : _wallet_address (address): 0x00C7122633A4EF0BC72f7D02456EE2B11E97561e
Arg [1] : _whitelister_address (address): 0x7F07A4A25863FF8445F28CD89B7228d91F2f818B
Arg [2] : _price_start (uint256): 2000000000000000000
Arg [3] : _price_constant (uint256): 1574640000
Arg [4] : _price_exponent (uint32): 3
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000000c7122633a4ef0bc72f7d02456ee2b11e97561e
Arg [1] : 0000000000000000000000007f07a4a25863ff8445f28cd89b7228d91f2f818b
Arg [2] : 0000000000000000000000000000000000000000000000001bc16d674ec80000
Arg [3] : 000000000000000000000000000000000000000000000000000000005ddb1980
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Swarm Source
bzzr://c02791b2eab317ec1431d443a7209661995d304d4de51163c18e708c731a4759
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000006 | 18,874 | $0.1041 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.