Contract Overview
Balance: 0 Ether
Transactions: 6 txns
 Latest 6 txns

TxHash Age From To Value [TxFee]
0xc6111ac5fddc24501716007c6b690b3f71986fd2cc13f942b29901fe559e0f7e1 day 13 hrs ago0x2b277c705f85e01cbfcb92cbd273ac355b46f529  IN   0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0 Ether0.00058017
0x06f31ca4d9dede521cd7b4e6008a90713efc9447f1bf69f8099b6c240d79d06d1 day 14 hrs ago0x2b277c705f85e01cbfcb92cbd273ac355b46f529  IN   0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0 Ether0.00052543
0x69f3f9f1fe9630b449174e17cf83fb4feee155218f39f9e6341613300756c7651 day 14 hrs ago0x2b277c705f85e01cbfcb92cbd273ac355b46f529  IN   0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0 Ether0.0005
0x8dad5c83fab890c4f9ff1572c7e25fd7d1a9b06bf42127745a01633ca8efe1da1 day 14 hrs ago0x2b277c705f85e01cbfcb92cbd273ac355b46f529  IN   0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0 Ether0.0005
0xb94079656547a371f6c6ce8c19dfd9f72483ac2b8bfeb5a028afa061407f1f748 days 13 hrs ago0xc443795a9b6259ceee8f311a8233f12274377c79  IN   0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0 Ether0.000088017
0x4744ef9c440cc1c7f8bb0b6cb95443148e7bf8340aac4099861e0474cca0a5c410 days 20 hrs ago0x281e55a508779f7ea198ca32210727de7ee097c1  IN    Contract Creation0 Ether0.001525839
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 3 Internal Transactions

ParentTxHash Block Age From To Value
0xc6111ac5fddc24501716007c6b690b3f71986fd2cc13f942b29901fe559e0f7e104097411 day 13 hrs ago0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0xf8d75d3b9eeddc16eacc0c9d6380b0c5ea4ced5c0 Ether
0x06f31ca4d9dede521cd7b4e6008a90713efc9447f1bf69f8099b6c240d79d06d104096191 day 14 hrs ago0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0xf8d75d3b9eeddc16eacc0c9d6380b0c5ea4ced5c0 Ether
0xb94079656547a371f6c6ce8c19dfd9f72483ac2b8bfeb5a028afa061407f1f74103603398 days 13 hrs ago0xf68b2c469f759f7ce473cd39d29d0c9d34fb576e0xf8d75d3b9eeddc16eacc0c9d6380b0c5ea4ced5c0 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact Match)
Contract Name: InvestmentPlatform
Compiler Version: v0.5.1+commit.c8a2cb62
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.5.1;

/**
 * @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 c) {
    if (a == 0) {
      return 0;
    }
    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 a / b;
  }

  /**
  * @dev Subtracts 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 c) {
    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.
   */
  constructor() 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;
  }

}

/**
 * @title ERC20
 * @dev Used to interact with a token contract
 */
contract ERC20 {
    function totalSupply() public pure returns (uint);
    function balanceOf(address tokenOwner) public pure returns (uint balance);
    function allowance(address tokenOwner, address spender) public pure returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
    function owner() public pure returns (address);
    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

/**
 * @title InvestmentPlatform
 * @dev Send tokens to this contract and receive roi when project is completed
 */
contract InvestmentPlatform is Ownable {
    using SafeMath for uint256;

    /** PROJECT VARIABLES
     * @dev These will depend on the project requirements.
     */
     // Token Address
    address public token = 0xf8d75D3b9Eeddc16EACc0c9D6380B0c5ea4Ced5C;
    // Platform Owner Address
    address public platformowner = 0x281e55a508779f7EA198cA32210727De7EE097C1;
    // Required funds in token units
    uint256 public requirement = 1187500 * 10**uint256(18);
    // Return on investment in percentage
    uint256 public  roi = 15;
    // How much should be the roi
    uint256 public expected = calculateroi(requirement);

    /** INTERNAL VARIABLES
     */
    // Total funds received
    uint256 public totalfunds = 0;
    // Funds to be returned
    uint256 public returnfunds = requirement;
    // Total fees incurred
    uint256 public totalfee = 0;
    // Funding fee in percentage
    uint256 private fundingfee = 3;
    // Cashout fee in percentage
    uint256 private cashoutfee = 0;
    
    // Records the investor deposit
    mapping ( address => uint256 ) public balances;

    /** STATE VARIABLES
     * @dev Holds boolean states of the contract
     * activated: Requires insurance tokens before investors can send tokens.
     * funded: Funding requirement has been reached.
     * withdrawn: Contract owner has received token funds.
     * completed: Investors can now cashout their tokens with roi.
     * failed: Investors can retrieve their invested token without the roi.
     */
    bool public funded = false;
    bool public withdrawn = false;
    bool public completed = false;
    bool public failed = false;
    bool public paused = false;

    /** EVENTS
     */
    event Invest(address investor, uint256 amount);
    event WithdrawFunds(address projectmanager, uint256 amount);
    event CompleteProject(address completer, uint256 amount);
    event CashOut(address investor, uint256 amount);

    event WithdrawFee(address receiver, uint256 amount);
    event UnstuckFunds(address receiver, uint256 amount);

    event FailProject();
    event RetrieveFunds(address investor, uint256 amount);
    
    event Pause();
    event Unpause();

    /** MODIFIERS
     */
    modifier onlyPlatformOwner() {
        require(msg.sender == platformowner);
        _;
    }

    modifier onlyInvestor() {
        require(msg.sender != owner && msg.sender != platformowner);
        _;
    }

    modifier onlyAdmin() {
        require(msg.sender == owner || msg.sender == platformowner);
        _;
    }

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }
  
    /**
    * @dev Calculates the ROI
    * @param amount The value to be added with the roi.
    */
    function calculateroi(uint256 amount) internal view returns(uint256) {
        uint256 roiamount;
        roiamount = amount.mul(roi).div(100).add(amount);
        return roiamount;
    }

    /**
    * @dev Calculates the fee
    * @param amount The value to be applied with the fee.
    */
    function calculatefee(uint256 amount, uint256 feepercent) internal pure returns(uint256) {
        uint256 feeamount;
        feeamount = amount.mul(feepercent).div(100);
        return feeamount;
    }


    /** 
     * COMPLETED CONTRACT EXTERNAL FUNCTIONS
     */



    /**
    * @dev Sends tokens to this contract.
    * Requires token approval to work.
    * Sets funded to true when totalfunds reaches requirement.
    * 
    * @param amount The token amount to invest in this contract.
    */
    function invest(uint256 amount) public onlyInvestor whenNotPaused {
        
        require(!funded);
        require(!failed);
        
        // Prevents overfunding When requirement is reached
        if (totalfunds.add(amount) >= requirement) {
            uint256 investamount = requirement.sub(totalfunds);
            balances[msg.sender] = balances[msg.sender].add(investamount);
            totalfunds = requirement;
            funded = true;
            ERC20(token).transferFrom(msg.sender,address(this),investamount);
            emit Invest(msg.sender,investamount);
        }
        else {
        totalfunds = totalfunds.add(amount);
        balances[msg.sender] = balances[msg.sender].add(amount);
        ERC20(token).transferFrom(msg.sender,address(this),amount);
        emit Invest(msg.sender,amount);
        }
    }

    /**
    * @dev Receives all tokens invested in this contract.
    * Sets withdrawn to true.
    */
    function withdrawfunds() public onlyOwner whenNotPaused {
        require(funded);
        require(!failed);
        require(!withdrawn);
        uint256 withdrawalfee = calculatefee(totalfunds,fundingfee);
        uint256 totalwithdrawal = totalfunds.sub(withdrawalfee);
        totalfee = totalfee.add(withdrawalfee);
        withdrawn = true;
        ERC20(token).transfer(msg.sender, totalwithdrawal);
        emit WithdrawFunds(msg.sender,totalwithdrawal);
    }

    /**
    * @dev Sends expected tokens to be returned to investors.
    * Owner will send token profit for investors.
    * PlatformOwner must send token insurance for investors if Owner was unable to comply.
    * Requires token approval to work.
    * Sets completed to true.
    */
    function completeproject() public onlyAdmin whenNotPaused {
        require(withdrawn);
        require(!completed);
        completed = true;
        paused = true;
        ERC20(token).transferFrom(msg.sender,address(this),expected);
        emit CompleteProject(msg.sender,expected);
    }

    /**
    * @dev Receives tokens based on invested amount and roi.
    */
    function cashout() public onlyInvestor whenNotPaused {
        require(completed);
        uint256 investingfee = calculatefee(calculateroi(balances[msg.sender]),cashoutfee);
        uint256 cashoutamount = calculateroi(balances[msg.sender]).sub(investingfee);
        totalfee = totalfee.add(investingfee);
        returnfunds = returnfunds.sub(balances[msg.sender]);
        balances[msg.sender] = 0;
        ERC20(token).transfer(msg.sender, cashoutamount);
        emit CashOut(msg.sender, cashoutamount);
    }



    /** 
     * PLATFORM OWNER EXTERNAL FUNCTIONS
     */



    /**
    * @dev Pause the contract
    */
    function pause() public onlyPlatformOwner whenNotPaused {
        paused = true;
        emit Pause();
    }

    /**
    * @dev Unpause the contract
    */
    function unpause() public onlyPlatformOwner whenPaused {
        paused = false;
        emit Unpause();
    }

    /**
    * @dev Receive all fees.
    */
    function withdrawfee() public onlyPlatformOwner whenNotPaused {
        require(withdrawn);
        ERC20(token).transfer(msg.sender,totalfee);
        emit WithdrawFee(msg.sender, totalfee);
        totalfee = 0;
    }

    /**
    * @dev Receives extra tokens not cashed out in this contract.
    * Extra tokens happen because of rounding down during roi calculation.
    * @param amount The extra token amount.
    */
    function unstuckfunds(uint256 amount) public onlyPlatformOwner whenNotPaused {
        require(returnfunds == 0);
        ERC20(token).transfer(msg.sender,amount);
        emit UnstuckFunds(msg.sender, amount);
    }



    /** 
     * FAILED CONTRACT EXTERNAL FUNCTIONS
     */



    /**
    * @dev Receives insurance tokens sent to activate this contract.
    * Sets failed to true.
    */
    function failproject() public onlyPlatformOwner whenNotPaused {
        require(!withdrawn);
        require(!failed);
        failed = true;
        paused = true;
        emit FailProject();
    }

    /**
    * @dev Receives tokens based on invested amount.
    */
    function retrievefunds() public onlyInvestor whenNotPaused {
        require(failed);
        ERC20(token).transfer(msg.sender, balances[msg.sender]);
        emit RetrieveFunds(msg.sender, balances[msg.sender]);
        balances[msg.sender] = 0;
    }
}

    Contract ABI  
[{"constant":false,"inputs":[],"name":"retrievefunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"expected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"invest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"returnfunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"unstuckfunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"completeproject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"roi","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawfunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cashout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"platformowner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"completed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawfee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"failed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"failproject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalfee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalfunds","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":"funded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Invest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"projectmanager","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"completer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CompleteProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CashOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"UnstuckFunds","type":"event"},{"anonymous":false,"inputs":[],"name":"FailProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"RetrieveFunds","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405260018054600160a060020a031990811673f8d75d3b9eeddc16eacc0c9d6380b0c5ea4ced5c179091556002805490911673281e55a508779f7ea198ca32210727de7ee097c117905569fb768105935a2f3000006003819055600f6004556200007590640100000000620000b7810204565b60055560006006819055600380546007556008829055600955600a819055600c805464ffffffffff191690558054600160a060020a0319163317905562000172565b6000806200011483620000ff6064620000ea600454886200011b6401000000000262001266179091906401000000009004565b906401000000006200128f6200014e82021704565b90640100000000620011e16200016482021704565b9392505050565b60008215156200012e5750600062000148565b508181028183828115156200013f57fe5b04146200014857fe5b92915050565b600081838115156200015c57fe5b049392505050565b818101828110156200014857fe5b6112d080620001826000396000f3fe60806040526004361061014d577c010000000000000000000000000000000000000000000000000000000060003504630519f4d781146101525780631ce623831461016957806327e235e3146101905780632afcf480146101c35780632e0089bc146101ed57806339239cf6146102025780633ccc279f1461022c5780633f4ba83a146102415780634afdd0e7146102565780635c975abb1461026b5780636c343ffe1461029457806384054d3d146102a95780638456cb59146102be5780638da5cb5b146102d357806398d7219d146103045780639d9a7fe914610319578063b75639301461032e578063b906bf7f14610343578063ba414fa614610358578063c444d2681461036d578063c80ec52214610382578063e6901a0614610397578063e79056c1146103ac578063f2fde38b146103c1578063f3a504f2146103f4578063fc0c546a14610409575b600080fd5b34801561015e57600080fd5b5061016761041e565b005b34801561017557600080fd5b5061017e610568565b60408051918252519081900360200190f35b34801561019c57600080fd5b5061017e600480360360208110156101b357600080fd5b5035600160a060020a031661056e565b3480156101cf57600080fd5b50610167600480360360208110156101e657600080fd5b5035610580565b3480156101f957600080fd5b5061017e610872565b34801561020e57600080fd5b506101676004803603602081101561022557600080fd5b5035610878565b34801561023857600080fd5b50610167610975565b34801561024d57600080fd5b50610167610aeb565b34801561026257600080fd5b5061017e610b54565b34801561027757600080fd5b50610280610b5a565b604080519115158252519081900360200190f35b3480156102a057600080fd5b50610167610b6b565b3480156102b557600080fd5b50610167610cea565b3480156102ca57600080fd5b50610167610eaf565b3480156102df57600080fd5b506102e8610f1e565b60408051600160a060020a039092168252519081900360200190f35b34801561031057600080fd5b506102e8610f2d565b34801561032557600080fd5b50610280610f3c565b34801561033a57600080fd5b5061017e610f4b565b34801561034f57600080fd5b50610167610f51565b34801561036457600080fd5b50610280611061565b34801561037957600080fd5b50610167611071565b34801561038e57600080fd5b5061028061111b565b3480156103a357600080fd5b5061017e611129565b3480156103b857600080fd5b5061017e61112f565b3480156103cd57600080fd5b50610167600480360360208110156103e457600080fd5b5035600160a060020a0316611135565b34801561040057600080fd5b506102806111c9565b34801561041557600080fd5b506102e86111d2565b600054600160a060020a031633148015906104445750600254600160a060020a03163314155b151561044f57600080fd5b600c54640100000000900460ff161561046757600080fd5b600c546301000000900460ff16151561047f57600080fd5b600154336000818152600b6020908152604080832054815160e060020a63a9059cbb0281526004810195909552602485015251600160a060020a039094169363a9059cbb93604480820194918390030190829087803b1580156104e157600080fd5b505af11580156104f5573d6000803e3d6000fd5b505050506040513d602081101561050b57600080fd5b5050336000818152600b60209081526040918290205482519384529083015280517f8f0d2e49b63a0a51de1da5ce865d62c867c2e079d7fdaf1cdd7be9be008ec8b49281900390910190a1336000908152600b6020526040812055565b60055481565b600b6020526000908152604090205481565b600054600160a060020a031633148015906105a65750600254600160a060020a03163314155b15156105b157600080fd5b600c54640100000000900460ff16156105c957600080fd5b600c5460ff16156105d957600080fd5b600c546301000000900460ff16156105f057600080fd5b600354600654610606908363ffffffff6111e116565b1061074d5760006106246006546003546111f490919063ffffffff16565b336000908152600b6020526040902054909150610647908263ffffffff6111e116565b336000818152600b6020908152604080832094909455600354600655600c805460ff191660019081179091555484517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810194909452306024850152604484018690529351600160a060020a0394909416936323b872dd93606480820194918390030190829087803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506040513d602081101561070a57600080fd5b5050604080513381526020810183905281517fd90d253a9de34d2fdd5a75ae49ea17fcb43af32fc8ea08cc6d2341991dd3872e929181900390910190a15061086f565b600654610760908263ffffffff6111e116565b600655336000908152600b6020526040902054610783908263ffffffff6111e116565b336000818152600b602090815260408083209490945560015484517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810194909452306024850152604484018690529351600160a060020a03909416936323b872dd93606480820194918390030190829087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d602081101561083157600080fd5b5050604080513381526020810183905281517fd90d253a9de34d2fdd5a75ae49ea17fcb43af32fc8ea08cc6d2341991dd3872e929181900390910190a15b50565b60075481565b600254600160a060020a0316331461088f57600080fd5b600c54640100000000900460ff16156108a757600080fd5b600754156108b457600080fd5b6001546040805160e060020a63a9059cbb028152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050506040513d602081101561093557600080fd5b5050604080513381526020810183905281517f168b696ed7073d8d2e6207d3b20228e6c3bb317600cb3736f822dad40063cf69929181900390910190a150565b600054600160a060020a03163314806109985750600254600160a060020a031633145b15156109a357600080fd5b600c54640100000000900460ff16156109bb57600080fd5b600c54610100900460ff1615156109d157600080fd5b600c5462010000900460ff16156109e757600080fd5b600c805464ff000000001962ff000019909116620100001716640100000000179055600154600554604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481019290925251600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610a7f57600080fd5b505af1158015610a93573d6000803e3d6000fd5b505050506040513d6020811015610aa957600080fd5b505060055460408051338152602081019290925280517f25039b4785b0cfa8847f34ef1ec7d78f5277f56fe3beaec1558ec8b98f941e729281900390910190a1565b600254600160a060020a03163314610b0257600080fd5b600c54640100000000900460ff161515610b1b57600080fd5b600c805464ff00000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60045481565b600c54640100000000900460ff1681565b600054600160a060020a03163314610b8257600080fd5b600c54640100000000900460ff1615610b9a57600080fd5b600c5460ff161515610bab57600080fd5b600c546301000000900460ff1615610bc257600080fd5b600c54610100900460ff1615610bd757600080fd5b6000610be7600654600954611206565b90506000610c00826006546111f490919063ffffffff16565b600854909150610c16908363ffffffff6111e116565b600855600c805461ff0019166101001790556001546040805160e060020a63a9059cbb028152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015610c7f57600080fd5b505af1158015610c93573d6000803e3d6000fd5b505050506040513d6020811015610ca957600080fd5b5050604080513381526020810183905281517f21901fa892c430ea8bd38b9390225ac8e67eac75ee10ffba16feefc539a288f9929181900390910190a15050565b600054600160a060020a03163314801590610d105750600254600160a060020a03163314155b1515610d1b57600080fd5b600c54640100000000900460ff1615610d3357600080fd5b600c5462010000900460ff161515610d4a57600080fd5b336000908152600b6020526040812054610d6f90610d6790611232565b600a54611206565b336000908152600b602052604081205491925090610d9e908390610d9290611232565b9063ffffffff6111f416565b600854909150610db4908363ffffffff6111e116565b600855336000908152600b6020526040902054600754610dd99163ffffffff6111f416565b600755336000818152600b60209081526040808320839055600154815160e060020a63a9059cbb0281526004810195909552602485018690529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610e4457600080fd5b505af1158015610e58573d6000803e3d6000fd5b505050506040513d6020811015610e6e57600080fd5b5050604080513381526020810183905281517fab933177d8753a66dd869151cf9aa88649e067b7a4e2dad9d5d192d61cf593b0929181900390910190a15050565b600254600160a060020a03163314610ec657600080fd5b600c54640100000000900460ff1615610ede57600080fd5b600c805464ff0000000019166401000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600054600160a060020a031681565b600254600160a060020a031681565b600c5462010000900460ff1681565b60035481565b600254600160a060020a03163314610f6857600080fd5b600c54640100000000900460ff1615610f8057600080fd5b600c54610100900460ff161515610f9657600080fd5b6001546008546040805160e060020a63a9059cbb028152336004820152602481019290925251600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d602081101561101a57600080fd5b505060085460408051338152602081019290925280517f66bf9186b00db666fc37aaffbb95a050c66e599e000c785c1dff0467d868f1b19281900390910190a16000600855565b600c546301000000900460ff1681565b600254600160a060020a0316331461108857600080fd5b600c54640100000000900460ff16156110a057600080fd5b600c54610100900460ff16156110b557600080fd5b600c546301000000900460ff16156110cc57600080fd5b600c805464ff000000001963ff00000019909116630100000017166401000000001790556040517f74caa1674bb5ee74531a48c4bb697a4b26fcac8e9de7a4a2ac9e475acff3af2c90600090a1565b600c54610100900460ff1681565b60085481565b60065481565b600054600160a060020a0316331461114c57600080fd5b600160a060020a038116151561116157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600c5460ff1681565b600154600160a060020a031681565b818101828110156111ee57fe5b92915050565b60008282111561120057fe5b50900390565b60008061122a606461121e868663ffffffff61126616565b9063ffffffff61128f16565b949350505050565b60008061125f83611253606461121e6004548861126690919063ffffffff16565b9063ffffffff6111e116565b9392505050565b6000821515611277575060006111ee565b5081810281838281151561128757fe5b04146111ee57fe5b6000818381151561129c57fe5b04939250505056fea165627a7a72305820afb4a628292ff3981fa90022151e87f2ad49b726852af6efade992f23a66520c0029

   Swarm Source:
bzzr://afb4a628292ff3981fa90022151e87f2ad49b726852af6efade992f23a66520c

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward