ETH Price: $3,331.13 (-3.94%)

Contract

0x1bDf56C9593590122fD8750555d8148Da2b80bE8
 
Transaction Hash
Method
Block
From
To
Transfer55916572018-05-10 22:27:362421 days ago1525991256IN
Fusion: Token Sale
0.65 ETH0.0005512225
Transfer52248332018-03-09 14:26:312484 days ago1520605591IN
Fusion: Token Sale
0.5 ETH0.0018741685
Transfer50761742018-02-12 9:34:192509 days ago1518428059IN
Fusion: Token Sale
4.89 ETH0.0011024550
Transfer50730522018-02-11 21:06:472509 days ago1518383207IN
Fusion: Token Sale
3 ETH0.00060929
Transfer50721012018-02-11 17:14:562510 days ago1518369296IN
Fusion: Token Sale
2.46 ETH0.0017639280
Transfer50721012018-02-11 17:14:562510 days ago1518369296IN
Fusion: Token Sale
2.47 ETH0.0008819640
Transfer50720982018-02-11 17:13:092510 days ago1518369189IN
Fusion: Token Sale
2.47 ETH0.0008819640
Withdrawal For50714492018-02-11 14:40:012510 days ago1518360001IN
Fusion: Token Sale
0 ETH0.054626720
Withdrawal For50714442018-02-11 14:38:572510 days ago1518359937IN
Fusion: Token Sale
0 ETH0.1261364420
Withdrawal For50714392018-02-11 14:37:452510 days ago1518359865IN
Fusion: Token Sale
0 ETH0.1261364420
Withdrawal For50714282018-02-11 14:35:292510 days ago1518359729IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50714212018-02-11 14:33:212510 days ago1518359601IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50714162018-02-11 14:32:402510 days ago1518359560IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50714132018-02-11 14:31:552510 days ago1518359515IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50714082018-02-11 14:30:012510 days ago1518359401IN
Fusion: Token Sale
0 ETH0.1261364420
Withdrawal For50714032018-02-11 14:29:122510 days ago1518359352IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50713972018-02-11 14:27:122510 days ago1518359232IN
Fusion: Token Sale
0 ETH0.1261351620
Withdrawal For50713862018-02-11 14:23:262510 days ago1518359006IN
Fusion: Token Sale
0 ETH0.1264351620
Withdrawal For50713802018-02-11 14:22:262510 days ago1518358946IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50713712018-02-11 14:19:562510 days ago1518358796IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50713682018-02-11 14:19:302510 days ago1518358770IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50713582018-02-11 14:17:152510 days ago1518358635IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50713552018-02-11 14:16:522510 days ago1518358612IN
Fusion: Token Sale
0 ETH0.1261364420
Withdrawal For50713462018-02-11 14:14:322510 days ago1518358472IN
Fusion: Token Sale
0 ETH0.1264364420
Withdrawal For50713422018-02-11 14:13:322510 days ago1518358412IN
Fusion: Token Sale
0 ETH0.1264364420
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
54509532018-04-16 12:40:372446 days ago1523882437
Fusion: Token Sale
0 ETH
54506132018-04-16 11:21:222446 days ago1523877682
Fusion: Token Sale
0 ETH
54493932018-04-16 6:18:332446 days ago1523859513
Fusion: Token Sale
0 ETH
54471622018-04-15 21:18:052446 days ago1523827085
Fusion: Token Sale
0 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.12081424 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.07918575 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.88880312 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.58255173 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.92422896 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.60577103 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
543.66409673 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
356.33590326 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
2.41628487 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
1.58371512 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
15.10178046 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
9.89821953 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
60.40712185 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
39.59287814 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.60407121 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.39592878 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
1.20814243 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.79185756 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
13.2895668 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
8.71043319 ETH
50714492018-02-11 14:40:012510 days ago1518360001
Fusion: Token Sale
0.60407121 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x13955F18...2D72f06E7
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ShareTokenSale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-01-31
*/

pragma solidity ^0.4.18;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


/**
 * @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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}



/**
 * @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);
}

/**
 * @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);
}






/**
 * @title ERC20 FSN Token Generation and Voluntary Participants Program
 * @dev see https://github.com/FusionFoundation/TokenSale
 */
contract ShareTokenSale is Ownable {

    using SafeMath for uint256;

    ERC20 public token;
    address public receiverAddr;
    uint256 public totalSaleAmount;
    uint256 public totalWannaBuyAmount; 
    uint256 public startTime;
    uint256 public endTime;
    uint256 public userWithdrawalStartTime;
    uint256 public clearStartTime;
    uint256 public withdrawn;
    uint256 public proportion = 1 ether;
    mapping(uint256 => uint256) public globalAmounts;    


    struct Stage {
        uint256 rate;
        uint256 duration;
        uint256 startTime;       
    }
    Stage[] public stages;    


    struct PurchaserInfo {
        bool withdrew;
        bool recorded;
        mapping(uint256 => uint256) amounts;
    }
    mapping(address => PurchaserInfo) public purchaserMapping;
    address[] public purchaserList;

    modifier onlyOpenTime {
        require(isStarted());
        require(!isEnded());
        _;
    }

    modifier onlyAutoWithdrawalTime {
         require(isEnded());
        _;
    }

    modifier onlyUserWithdrawalTime {
        require(isUserWithdrawalTime());
        _;
    }

    modifier purchasersAllWithdrawn {
        require(withdrawn==purchaserList.length);
        _;
    }

    modifier onlyClearTime {
        require(isClearTime());
        _;
    }

    function ShareTokenSale(address _receiverAddr, address _tokenAddr, uint256 _totalSaleAmount, uint256 _startTime) public {
        require(_receiverAddr != address(0));
        require(_tokenAddr != address(0));
        require(_totalSaleAmount > 0);
        require(_startTime > 0);
        receiverAddr = _receiverAddr;
        token = ERC20(_tokenAddr);
        totalSaleAmount = _totalSaleAmount;       
        startTime = _startTime;        
    }

    function isStarted() public view returns(bool) {
        return 0 < startTime && startTime <= now && endTime != 0;
    }   

    function isEnded() public view returns(bool) {
        return now > endTime;
    }

    function isUserWithdrawalTime() public view returns(bool) {
        return now > userWithdrawalStartTime;
    }

    function isClearTime() public view returns(bool) {
        return now > clearStartTime;
    }
    
    function startSale(uint256[] rates, uint256[] durations, uint256 userWithdrawalDelaySec, uint256 clearDelaySec) public onlyOwner {
        require(endTime == 0);
        require(durations.length == rates.length);
        delete stages;
        endTime = startTime;
        for (uint256 i = 0; i < durations.length; i++) {
            uint256 rate = rates[i];
            uint256 duration = durations[i];            
            stages.push(Stage({rate: rate, duration: duration, startTime:endTime}));
            endTime = endTime.add(duration);
        }
        userWithdrawalStartTime = endTime.add(userWithdrawalDelaySec);
        clearStartTime = endTime.add(clearDelaySec);
    }
    
    function getCurrentStage() public onlyOpenTime view returns(uint256) {
        for (uint256 i = stages.length - 1; i >= 0; i--) {
            if (now >= stages[i].startTime) {
                return i;
            }
        }
        revert();
    }

    function getPurchaserCount() public view returns(uint256) {
        return purchaserList.length;
    }


    function _calcProportion() internal {
        if (totalWannaBuyAmount == 0 || totalSaleAmount >= totalWannaBuyAmount) {
            proportion = 1 ether;
            return;
        }
        proportion = totalSaleAmount.mul(1 ether).div(totalWannaBuyAmount);        
    }

    function getSaleInfo(address purchaser) public view returns (uint256, uint256, uint256) {
        PurchaserInfo storage pi = purchaserMapping[purchaser];
        uint256 sendEther = 0;
        uint256 usedEther = 0;
        uint256 getToken = 0;        
        for (uint256 i = 0; i < stages.length; i++) {
            sendEther = sendEther.add(pi.amounts[i]);
            uint256 stageUsedEther = pi.amounts[i].mul(proportion).div(1 ether);
            uint256 stageGetToken = stageUsedEther.mul(stages[i].rate);
            if (stageGetToken > 0) {         
                getToken = getToken.add(stageGetToken);
                usedEther = usedEther.add(stageUsedEther);
            }
        }        
        return (sendEther, usedEther, getToken);
    }
    
    function () payable public {        
        buy();
    }
    
    function buy() payable public onlyOpenTime {
        require(msg.value >= 0.1 ether);
        uint256 stageIndex = getCurrentStage();
        uint256 amount = msg.value;
        PurchaserInfo storage pi = purchaserMapping[msg.sender];
        if (!pi.recorded) {
            pi.recorded = true;
            purchaserList.push(msg.sender);
        }
        pi.amounts[stageIndex] = pi.amounts[stageIndex].add(amount);
        globalAmounts[stageIndex] = globalAmounts[stageIndex].add(amount);
        totalWannaBuyAmount = totalWannaBuyAmount.add(amount.mul(stages[stageIndex].rate));
        _calcProportion();
    }
    
    function _withdrawal(address purchaser) internal {
        require(purchaser != 0x0);
        PurchaserInfo storage pi = purchaserMapping[purchaser];        
        if (pi.withdrew) {
            return;
        }
        pi.withdrew = true;
        withdrawn = withdrawn.add(1);
        var (sendEther, usedEther, getToken) = getSaleInfo(purchaser);
        if (usedEther > 0 && getToken > 0) {
            receiverAddr.transfer(usedEther);
            token.transfer(purchaser, getToken);
            if (sendEther.sub(usedEther) > 0) {                
                purchaser.transfer(sendEther.sub(usedEther));   
            }           
        } else {
            purchaser.transfer(sendEther);
        }
        return;
    }
    
    function withdrawal() payable public onlyUserWithdrawalTime {
        _withdrawal(msg.sender);
    }
    
    function withdrawalFor(uint256 index, uint256 stop) payable public onlyAutoWithdrawalTime onlyOwner {
        for (; index < stop; index++) {
            _withdrawal(purchaserList[index]);
        }
    }
    
    function clear(uint256 tokenAmount, uint256 etherAmount) payable public purchasersAllWithdrawn onlyClearTime onlyOwner {
        if (tokenAmount > 0) {
            token.transfer(receiverAddr, tokenAmount);
        }
        if (etherAmount > 0) {
            receiverAddr.transfer(etherAmount);
        }        
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"isClearTime","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rates","type":"uint256[]"},{"name":"durations","type":"uint256[]"},{"name":"userWithdrawalDelaySec","type":"uint256"},{"name":"clearDelaySec","type":"uint256"}],"name":"startSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAmount","type":"uint256"},{"name":"etherAmount","type":"uint256"}],"name":"clear","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"isUserWithdrawalTime","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proportion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"stop","type":"uint256"}],"name":"withdrawalFor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSaleAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"stages","outputs":[{"name":"rate","type":"uint256"},{"name":"duration","type":"uint256"},{"name":"startTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"purchaserList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPurchaserCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"globalAmounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"receiverAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"purchaserMapping","outputs":[{"name":"withdrew","type":"bool"},{"name":"recorded","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"purchaser","type":"address"}],"name":"getSaleInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalWannaBuyAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"clearStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"withdrawn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawal","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentStage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"userWithdrawalStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_receiverAddr","type":"address"},{"name":"_tokenAddr","type":"address"},{"name":"_totalSaleAmount","type":"uint256"},{"name":"_startTime","type":"uint256"}],"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"}]

Deployed Bytecode

0x6060604052600436106101505763ffffffff60e060020a600035041663088266b5811461015a57806323aedc62146101815780633197cbb61461021757806341ee903e1461023c578063463d5ce11461024a578063544736e61461025d5780635b4246d4146102705780635d977c021461028357806378e9792514610291578063814e5c9b146102a4578063845ddcb2146102b75780638815ee86146102f15780638da5cb5b1461032357806391de5474146103365780639cba355914610349578063a3dcb4d21461035f578063a4fd6f5614610372578063a6f2ae3a14610150578063a8754caa14610385578063aafbb120146103c0578063ad78dc8e146103df578063af21037f146103f2578063c80ec52214610405578063d4e9329214610418578063eedbe31d14610420578063f2fde38b14610433578063f7e2ff0014610452578063fc0c546a14610465575b610158610478565b005b341561016557600080fd5b61016d6105f1565b604051901515815260200160405180910390f35b341561018c57600080fd5b610158600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650508435946020013593506105fa92505050565b341561022257600080fd5b61022a61073b565b60405190815260200160405180910390f35b610158600435602435610741565b341561025557600080fd5b61016d61084a565b341561026857600080fd5b61016d610852565b341561027b57600080fd5b61022a61087a565b610158600435602435610880565b341561029c57600080fd5b61022a6108ed565b34156102af57600080fd5b61022a6108f3565b34156102c257600080fd5b6102cd6004356108f9565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156102fc57600080fd5b61030760043561092a565b604051600160a060020a03909116815260200160405180910390f35b341561032e57600080fd5b610307610952565b341561034157600080fd5b61022a610961565b341561035457600080fd5b61022a600435610967565b341561036a57600080fd5b610307610979565b341561037d57600080fd5b61016d610988565b341561039057600080fd5b6103a4600160a060020a0360043516610990565b6040519115158252151560208201526040908101905180910390f35b34156103cb57600080fd5b6102cd600160a060020a03600435166109ae565b34156103ea57600080fd5b61022a610abd565b34156103fd57600080fd5b61022a610ac3565b341561041057600080fd5b61022a610ac9565b610158610acf565b341561042b57600080fd5b61022a610aed565b341561043e57600080fd5b610158600160a060020a0360043516610b68565b341561045d57600080fd5b61022a610c03565b341561047057600080fd5b610307610c09565b6000806000610485610852565b151561049057600080fd5b610498610988565b156104a257600080fd5b67016345785d8a00003410156104b757600080fd5b6104bf610aed565b33600160a060020a03166000908152600d6020526040902080549194503493509150610100900460ff16151561054157805461ff001916610100178155600e80546001810161050e8382610ea6565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790555b6000838152600182016020526040902054610562908363ffffffff610c1816565b6000848152600183016020908152604080832093909355600b9052205461058f908363ffffffff610c1816565b6000848152600b6020526040902055600c80546105e1916105d291869081106105b457fe5b6000918252602090912060039091020154849063ffffffff610c3216565b6004549063ffffffff610c1816565b6004556105ec610c5d565b505050565b60085442115b90565b600080548190819033600160a060020a0390811691161461061a57600080fd5b6006541561062757600080fd5b865186511461063557600080fd5b610641600c6000610eca565b600554600655600092505b85518310156107065786838151811061066157fe5b90602001906020020151915085838151811061067957fe5b906020019060200201519050600c80548060010182816106999190610eee565b916000526020600020906003020160006060604051908101604090815286825260208201869052600654908201529190508151815560208201518160010155604082015160029091015550506006546106f8908263ffffffff610c1816565b60065560019092019161064c565b600654610719908663ffffffff610c1816565b60075560065461072f908563ffffffff610c1816565b60085550505050505050565b60065481565b600e546009541461075157600080fd5b6107596105f1565b151561076457600080fd5b60005433600160a060020a0390811691161461077f57600080fd5b600082111561080a57600154600254600160a060020a039182169163a9059cbb91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156107ee57600080fd5b6102c65a03f115156107ff57600080fd5b505050604051805150505b600081111561084657600254600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561084657600080fd5b5050565b600754421190565b6000600554600010801561086857504260055411155b8015610875575060065415155b905090565b600a5481565b610888610988565b151561089357600080fd5b60005433600160a060020a039081169116146108ae57600080fd5b80821015610846576108e2600e838154811015156108c857fe5b600091825260209091200154600160a060020a0316610cae565b6001909101906108ae565b60055481565b60035481565b600c80548290811061090757fe5b600091825260209091206003909102018054600182015460029092015490925083565b600e80548290811061093857fe5b600091825260209091200154600160a060020a0316905081565b600054600160a060020a031681565b600e5490565b600b6020526000908152604090205481565b600254600160a060020a031681565b600654421190565b600d6020526000908152604090205460ff8082169161010090041682565b600160a060020a0381166000908152600d60205260408120819081908180808080805b600c54831015610aab5760008381526001880160205260409020546109fd90879063ffffffff610c1816565b600a54600085815260018a016020526040902054919750610a3e91670de0b6b3a764000091610a32919063ffffffff610c3216565b9063ffffffff610e7d16565b9150610a70600c84815481101515610a5257fe5b6000918252602090912060039091020154839063ffffffff610c3216565b90506000811115610aa057610a8b848263ffffffff610c1816565b9350610a9d858363ffffffff610c1816565b94505b6001909201916109d1565b50939992985090965090945050505050565b60045481565b60085481565b60095481565b610ad761084a565b1515610ae257600080fd5b610aeb33610cae565b565b600080610af8610852565b1515610b0357600080fd5b610b0b610988565b15610b1557600080fd5b50600c54600019015b60008110610b5f57600c805482908110610b3457fe5b90600052602060002090600302016002015442101515610b5657809150610b64565b60001901610b1e565b600080fd5b5090565b60005433600160a060020a03908116911614610b8357600080fd5b600160a060020a0381161515610b9857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60075481565b600154600160a060020a031681565b600082820183811015610c2757fe5b8091505b5092915050565b600080831515610c455760009150610c2b565b50828202828482811515610c5557fe5b0414610c2757fe5b6004541580610c70575060045460035410155b15610c8657670de0b6b3a7640000600a55610aeb565b610ca9600454610a32670de0b6b3a7640000600354610c3290919063ffffffff16565b600a55565b6000808080600160a060020a0385161515610cc857600080fd5b600160a060020a0385166000908152600d60205260409020805490945060ff1615610cf257610e76565b835460ff191660019081178555600954610d119163ffffffff610c1816565b600955610d1d856109ae565b925092509250600082118015610d335750600081115b15610e4557600254600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610d6b57600080fd5b600154600160a060020a031663a9059cbb868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610dca57600080fd5b6102c65a03f11515610ddb57600080fd5b50505060405180515060009050610df8848463ffffffff610e9416565b1115610e4057600160a060020a0385166108fc610e1b858563ffffffff610e9416565b9081150290604051600060405180830381858888f193505050501515610e4057600080fd5b610e76565b600160a060020a03851683156108fc0284604051600060405180830381858888f193505050501515610e7657600080fd5b5050505050565b6000808284811515610e8b57fe5b04949350505050565b600082821115610ea057fe5b50900390565b8154818355818115116105ec576000838152602090206105ec918101908301610f1a565b5080546000825560030290600052602060002090810190610eeb9190610f34565b50565b8154818355818115116105ec576003028160030283600052602060002091820191016105ec9190610f34565b6105f791905b80821115610b645760008155600101610f20565b6105f791905b80821115610b64576000808255600182018190556002820155600301610f3a5600a165627a7a7230582037a0288bd942631b5b0208b1f950fb4a8b18d68d863ad21bf9ca17a78e10ce1e0029

Swarm Source

bzzr://37a0288bd942631b5b0208b1f950fb4a8b18d68d863ad21bf9ca17a78e10ce1e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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