ETH Price: $3,784.94 (+0.07%)
Gas: 4 Gwei

Contract

0x4355fC160f74328f9b383dF2EC589bB3dFd82Ba0
 
Transaction Hash
Method
Block
From
To
Value
0x5c8cdeca1c0a10297c7742a93763f7ca7bfeb11457e1d4164d52243e82686a6aApprove(pending)2024-05-31 23:59:0311 hrs ago1717199943IN
Opus Token
0 ETH(Pending)(Pending)
Approve198899032024-05-17 13:10:5914 days ago1715951459IN
Opus Token
0 ETH0.000329487.09760388
Transfer197318222024-04-25 10:35:5937 days ago1714041359IN
Opus Token
0 ETH0.0009042915.20896661
Transfer193400172024-03-01 11:25:5992 days ago1709292359IN
Opus Token
0 ETH0.0014978539.88117203
Approve191586762024-02-05 1:02:23117 days ago1707094943IN
Opus Token
0 ETH0.0006545614.09674473
Approve191260102024-01-31 10:57:11122 days ago1706698631IN
Opus Token
0 ETH0.0015591233.59469911
Approve188957512023-12-30 3:43:59154 days ago1703907839IN
Opus Token
0 ETH0.00068614.68651049
Transfer188956002023-12-30 3:13:47154 days ago1703906027IN
Opus Token
0 ETH0.000945215.89707183
Approve184760532023-11-01 8:26:11213 days ago1698827171IN
Opus Token
0 ETH0.0006496413.92597292
Transfer183132092023-10-09 13:27:35235 days ago1696858055IN
Opus Token
0 ETH0.000382210.22868861
Approve181359382023-09-14 17:18:23260 days ago1694711903IN
Opus Token
0 ETH0.0017773638.32665342
Approve175702042023-06-27 10:46:35340 days ago1687862795IN
Opus Token
0 ETH0.0006394813.7648183
Is Contract175701752023-06-27 10:40:47340 days ago1687862447IN
Opus Token
0 ETH0.0002776112.5897646
Transfer174888182023-06-16 0:23:47351 days ago1686875027IN
Opus Token
0 ETH0.0007017316.56203487
Transfer174888172023-06-16 0:23:35351 days ago1686875015IN
Opus Token
0 ETH0.0008012718.91684318
Transfer174887902023-06-16 0:18:11351 days ago1686874691IN
Opus Token
0 ETH0.0007663714.01810894
Transfer174886232023-06-15 23:44:47351 days ago1686872687IN
Opus Token
0 ETH0.0060833615.20840144
Transfer174886182023-06-15 23:43:47351 days ago1686872627IN
Opus Token
0 ETH0.0008868916.22274887
Transfer174885952023-06-15 23:39:11351 days ago1686872351IN
Opus Token
0 ETH0.0071438617.85966125
Transfer174885252023-06-15 23:24:59351 days ago1686871499IN
Opus Token
0 ETH0.0074260218.5650562
Approve170108362023-04-09 12:47:23418 days ago1681044443IN
Opus Token
0 ETH0.0005466722.59547548
Approve166263502023-02-14 10:20:11473 days ago1676370011IN
Opus Token
0 ETH0.0006957814.89592582
Transfer162490622022-12-23 17:57:35525 days ago1671818255IN
Opus Token
0 ETH0.0012388222.66500743
Transfer160274632022-11-22 18:55:23556 days ago1669143323IN
Opus Token
0 ETH0.0008214719.38820525
Transfer160274572022-11-22 18:54:11556 days ago1669143251IN
Opus Token
0 ETH0.0011331926.75287679
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
55024502018-04-25 9:17:022229 days ago1524647822
Opus Token
0.01 ETH
48379522018-01-01 21:19:072342 days ago1514841547
Opus Token
1 ETH
48379072018-01-01 21:09:522342 days ago1514840992
Opus Token
1 ETH
48358762018-01-01 12:47:312342 days ago1514810851
Opus Token
1 ETH
48354862018-01-01 11:05:512343 days ago1514804751
Opus Token
1 ETH
48332032018-01-01 2:03:552343 days ago1514772235
Opus Token
1 ETH
48330502018-01-01 1:26:512343 days ago1514770011
Opus Token
1 ETH
48316342017-12-31 19:36:392343 days ago1514748999
Opus Token
1 ETH
48314682017-12-31 18:58:222343 days ago1514746702
Opus Token
1 ETH
48217802017-12-30 3:15:162345 days ago1514603716
Opus Token
1 ETH
48217432017-12-30 3:05:362345 days ago1514603136
Opus Token
1 ETH
48008492017-12-26 13:43:322348 days ago1514295812
Opus Token
1 ETH
48008182017-12-26 13:35:492348 days ago1514295349
Opus Token
1 ETH
47966852017-12-25 21:16:282349 days ago1514236588
Opus Token
1 ETH
47966592017-12-25 21:10:362349 days ago1514236236
Opus Token
1 ETH
47912072017-12-24 23:29:422350 days ago1514158182
Opus Token
1 ETH
47911942017-12-24 23:24:572350 days ago1514157897
Opus Token
1 ETH
47911902017-12-24 23:24:112350 days ago1514157851
Opus Token
1 ETH
47908752017-12-24 22:11:022350 days ago1514153462
Opus Token
1 ETH
47908412017-12-24 22:03:382350 days ago1514153018
Opus Token
1 ETH
47900812017-12-24 19:08:352350 days ago1514142515
Opus Token
1 ETH
47900482017-12-24 19:01:512350 days ago1514142111
Opus Token
1 ETH
47772582017-12-22 14:43:402352 days ago1513953820
Opus Token
1 ETH
47772332017-12-22 14:38:032352 days ago1513953483
Opus Token
1 ETH
47741962017-12-22 1:51:212353 days ago1513907481
Opus Token
1 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OpusToken

Compiler Version
v0.4.8+commit.60cc1668

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-07-14
*/

pragma solidity ^0.4.8;


/**
 * Math operations with safety checks
 * By OpenZeppelin: https://github.com/OpenZeppelin/zeppelin-solidity/contracts/SafeMath.sol
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a * b;
    if(!(a == 0 || c / a == b)) throw;
    return c;
  }

  function div(uint256 a, uint256 b) internal 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;
  }

  function sub(uint256 a, uint256 b) internal returns (uint256) {
    if(!(b <= a)) throw;
    return a - b;
  }

  function add(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a + b;
    if(!(c >= a)) throw;
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

}

contract ContractReceiver{
    function tokenFallback(address _from, uint256 _value, bytes  _data) external;
}


//Basic ERC23 token, backward compatible with ERC20 transfer function.
//Based in part on code by open-zeppelin: https://github.com/OpenZeppelin/zeppelin-solidity.git
contract ERC23BasicToken {
    using SafeMath for uint256;
    uint256 public totalSupply;
    mapping(address => uint256) balances;
    event Transfer(address indexed from, address indexed to, uint256 value);
    
    function tokenFallback(address _from, uint256 _value, bytes  _data) external {
        throw;
    }

    function transfer(address _to, uint256 _value, bytes _data) returns (bool success) {

        //Standard ERC23 transfer function

        if(isContract(_to)) {
            transferToContract(_to, _value, _data);
        }
        else {
            transferToAddress(_to, _value, _data);
        }
        return true;
    }

    function transfer(address _to, uint256 _value) {

        //standard function transfer similar to ERC20 transfer with no _data
        //added due to backwards compatibility reasons

        bytes memory empty;
        if(isContract(_to)) {
            transferToContract(_to, _value, empty);
        }
        else {
            transferToAddress(_to, _value, empty);
        }
    }

    function transferToAddress(address _to, uint256 _value, bytes _data) internal {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
     }

    function transferToContract(address _to, uint256 _value, bytes _data) internal {
        balances[msg.sender] = balances[msg.sender].sub( _value);
        balances[_to] = balances[_to].add( _value);
        ContractReceiver receiver = ContractReceiver(_to);
        receiver.tokenFallback(msg.sender, _value, _data);
        Transfer(msg.sender, _to, _value);    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    //assemble the given address bytecode. If bytecode exists then the _addr is a contract.
    function isContract(address _addr) returns (bool is_contract) {
          uint256 length;
          assembly {
              //retrieve the size of the code on target address, this needs assembly
              length := extcodesize(_addr)
          }
          if(length>0) {
              return true;
          }
          else {
              return false;
          }
    }
}

contract ERC23StandardToken is ERC23BasicToken {
    mapping (address => mapping (address => uint256)) allowed;
    event Approval (address indexed owner, address indexed spender, uint256 value);

    function transferFrom(address _from, address _to, uint256 _value) {
        var _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // if (_value > _allowance) throw;

        balances[_to] = balances[_to].add(_value);
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        Transfer(_from, _to, _value);
    }

    function approve(address _spender, uint256 _value) {

        // 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
        if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;

        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

}




// Based in part on code by Open-Zeppelin: https://github.com/OpenZeppelin/zeppelin-solidity.git
// Based in part on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
contract OpusToken is ERC23StandardToken {
    string public constant name = "Opus Token";
    string public constant symbol = "OPT";
    uint256 public constant decimals = 18;
    address public multisig=address(0x1426c1f91b923043F7C5FbabC6e369e7cBaef3f0); //multisig wallet, to which all contributions will be sent
    address public foundation; //owner address
    address public candidate; //owner candidate in 2-phase ownership transfer

    mapping (address => uint256) contributions; //keeps track of ether contributions in Wei of each contributor address
    uint256 public startBlock = 4023333; //pre-crowdsale start block (30min ealier than estimate) 
    uint256 public preEndBlock = 4057233; //pre-crowdsale end block(1h after estimated time)
    uint256 public phase1StartBlock = 4066633; //Crowdsale start block (1h earlier)
    uint256 public phase1EndBlock = 4100233; //Week 1 end block (estimate)
    uint256 public phase2EndBlock = 4133833; //Week 2 end block (estimate)
    uint256 public phase3EndBlock = 4201433; //Week 4 end block (2h later)
    uint256 public endBlock = 4201433; //whole crowdsale end block
    uint256 public crowdsaleTokenSupply = 900000000 * (10**18); //Amount of tokens for sale during crowdsale
    uint256 public ecosystemTokenSupply = 100000000 * (10**18); //Tokens for supporting the Opus eco-system, e.g. purchasing music licenses, artist bounties, etc.
    uint256 public foundationTokenSupply = 600000000 * (10**18); //Tokens distributed to the Opus foundation, developers and angel investors
    uint256 public crowdsaleTokenSold = 0; //Keeps track of the amount of tokens sold during the crowdsale
    uint256 public presaleEtherRaised = 0; //Keeps track of the Ether raised during the crowdsale
    uint256 public transferLockup = 9600;
    bool public halted = false; //Halt crowdsale in emergency
    event Halt(); //Halt event
    event Unhalt(); //Unhalt event

    modifier onlyFoundation() {
        //only do if call is from owner modifier
        if (msg.sender != foundation) throw;
        _;
    }

    modifier crowdsaleTransferLock() {
        // lockup during and after 48h of end of crowdsale
        if (block.number <= endBlock.add(transferLockup)) throw;
        _;
    }

    modifier whenNotHalted() {
        // only do when not halted modifier
        if (halted) throw;
        _;
    }

    //Constructor: set multisig crowdsale recipient wallet address and fund the foundation
    //Initialize total supply and allocate ecosystem & foundation tokens
  	function OpusToken() {
        foundation = msg.sender;
        totalSupply = ecosystemTokenSupply.add(foundationTokenSupply);
        balances[foundation] = totalSupply;
  	}

    //Fallback function when receiving Ether.
    function() payable {
        buy();
    }


    //Halt ICO in case of emergency.
    function halt() onlyFoundation {
        halted = true;
        Halt();
    }

    function unhalt() onlyFoundation {
        halted = false;
        Unhalt();
    }

    function buy() payable {
        buyRecipient(msg.sender);
    }

    //Allow addresses to buy token for another account
    function buyRecipient(address recipient) public payable whenNotHalted {
        if(msg.value == 0) throw;
        if(!(preCrowdsaleOn()||crowdsaleOn())) throw;//only allows during presale/crowdsale
        if(contributions[recipient].add(msg.value)>perAddressCap()) throw;//per address cap
        uint256 tokens = msg.value.mul(returnRate()); //decimals=18, so no need to adjust for unit
        if(crowdsaleTokenSold.add(tokens)>crowdsaleTokenSupply) throw;//max supply limit

        balances[recipient] = balances[recipient].add(tokens);
        totalSupply = totalSupply.add(tokens);
        presaleEtherRaised = presaleEtherRaised.add(msg.value);
        contributions[recipient] = contributions[recipient].add(msg.value);
        crowdsaleTokenSold = crowdsaleTokenSold.add(tokens);
        if(crowdsaleTokenSold == crowdsaleTokenSupply){
        //If crowdsale token sold out, end crowdsale
            if(block.number < preEndBlock) {
                preEndBlock = block.number;
            }
            endBlock = block.number;
        }
        if (!multisig.send(msg.value)) throw; //immediately send Ether to multisig address
        Transfer(this, recipient, tokens);
    }

    //Burns the specified amount of tokens from the foundation
    //Used to burn unspent funds in foundation DAO
    function burn(uint256 _value) external onlyFoundation returns (bool) {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Transfer(msg.sender, address(0), _value);
        return true;
    }

    //2-phase ownership transfer;
    //prevent transferring ownership to non-existent addresses by accident.
    function proposeFoundationTransfer(address newFoundation) external onlyFoundation {
        //propose new owner
        candidate = newFoundation;
    }

    function cancelFoundationTransfer() external onlyFoundation {
        candidate = address(0);
    }

    function acceptFoundationTransfer() external {
        //new owner accept transfer to complete transfer
        if(msg.sender != candidate) throw;
        foundation = candidate;
        candidate = address(0);
    }

    //Allow to change the recipient multisig address
    function setMultisig(address addr) external onlyFoundation {
      	if (addr == address(0)) throw;
      	multisig = addr;
    }

    function transfer(address _to, uint256 _value, bytes _data) public crowdsaleTransferLock returns (bool success) {
        return super.transfer(_to, _value, _data);
    }

	  function transfer(address _to, uint256 _value) public crowdsaleTransferLock {
        super.transfer(_to, _value);
	  }

    function transferFrom(address _from, address _to, uint256 _value) public crowdsaleTransferLock {
        super.transferFrom(_from, _to, _value);
    }

    //Return rate of token against ether.
    function returnRate() public constant returns(uint256) {
        if (block.number>=startBlock && block.number<=preEndBlock) return 8888; //Pre-crowdsale
        if (block.number>=phase1StartBlock && block.number<=phase1EndBlock) return 8000; //Crowdsale phase1
        if (block.number>phase1EndBlock && block.number<=phase2EndBlock) return 7500; //Phase2
        if (block.number>phase2EndBlock && block.number<=phase3EndBlock) return 7000; //Phase3
    }

    //per address cap in Wei: 1000 ether + 1% of ether received at the given time.
    function perAddressCap() public constant returns(uint256) {
        uint256 baseline = 1000 * (10**18);
        return baseline.add(presaleEtherRaised.div(100));
    }

    function preCrowdsaleOn() public constant returns (bool) {
        //return whether presale is on according to block number
        return (block.number>=startBlock && block.number<=preEndBlock);
    }

    function crowdsaleOn() public constant returns (bool) {
        //return whether crowdsale is on according to block number
        return (block.number>=phase1StartBlock && block.number<=endBlock);
    }


    function getEtherRaised() external constant returns (uint256) {
        //getter function for etherRaised
        return presaleEtherRaised;
    }

    function getTokenSold() external constant returns (uint256) {
        //getter function for crowdsaleTokenSold
        return crowdsaleTokenSold;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"crowdsaleOn","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"buyRecipient","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"phase1StartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptFoundationTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"isContract","outputs":[{"name":"is_contract","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundation","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"presaleEtherRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"multisig","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"perAddressCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"phase1EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ecosystemTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"preCrowdsaleOn","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"phase2EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"candidate","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"returnRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"preEndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newFoundation","type":"address"}],"name":"proposeFoundationTransfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"phase3EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transferLockup","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getEtherRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"cancelFoundationTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setMultisig","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundationTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[],"name":"Halt","type":"event"},{"anonymous":false,"inputs":[],"name":"Unhalt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

606060405260038054600160a060020a031916731426c1f91b923043f7c5fbabc6e369e7cbaef3f0179055623d6425600755623de891600855623e0d49600955623e9089600a55623f13c9600b5562401bd9600c819055600d556b02e87669c308736a04000000600e556a52b7d2dcc80cd2e4000000600f556b01f04ef12cb04cf158000000601055600060118190556012556125806013556014805460ff1916905534610000575b60048054600160a060020a03191633600160a060020a0316179055601054600f546100df9164010000000061010281026110c01704565b6000818155600454600160a060020a03168152600160205260409020555b61011f565b60008282018381101561011457610000565b8091505b5092915050565b6115468061012e6000396000f300606060405236156101fe5763ffffffff60e060020a60003504166302dd92c4811461020f57806306fdde0314610230578063083c6323146102bd578063095ea7b3146102dc57806311a4c710146102fa578063145538ea14610310578063152af8f91461032f578063162790551461033e57806318160ddd1461036b57806319af6f481461038a57806323b872dd146103a9578063313ce567146103cd57806341fbb050146103ec57806342966c681461041557806344acb8da1461043957806344b49958146104585780634783c35b1461047757806347dd5172146104a057806348cd4cb1146104bf578063575d462a146104de5780635d6cb67e146104fd5780635ed7ca5b1461051c5780636649dfd51461052b5780636aa68a151461054c5780636c8381f81461056b57806370a08231146105945780637c2ffbb3146105bf578063812ba50c146105de57806384b35fbb146105fd578063899ecf2b1461061857806394d773631461063757806395d89b4114610656578063a6f2ae3a146106e3578063a9059cbb146106ed578063b9b8af0b1461070b578063be45fd621461072c578063c0ee0b8a146107a0578063c24fe21b146107cb578063cb3e64fd146107ea578063dd62ed3e146107f9578063e876bdef1461082a578063f2a6941714610849578063f3283fba14610858578063fb70f76514610873575b61020d5b61020a610892565b5b565b005b346100005761021c61089e565b604080519115158252519081900360200190f35b346100005761023d6108ba565b604080516020808252835181830152835191928392908301918501908083838215610283575b80518252602083111561028357601f199092019160209182019101610263565b505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576102ca6108f1565b60408051918252519081900360200190f35b346100005761020d600160a060020a03600435166024356108f7565b005b61020d600160a060020a0360043516610996565b005b34610000576102ca610ba8565b60408051918252519081900360200190f35b346100005761020d610bae565b005b346100005761021c600160a060020a0360043516610bf1565b604080519115158252519081900360200190f35b34610000576102ca610c12565b60408051918252519081900360200190f35b34610000576102ca610c18565b60408051918252519081900360200190f35b346100005761020d600160a060020a0360043581169060243516604435610c1e565b005b34610000576102ca610c50565b60408051918252519081900360200190f35b34610000576103f9610c55565b60408051600160a060020a039092168252519081900360200190f35b346100005761021c600435610c64565b604080519115158252519081900360200190f35b34610000576102ca610d14565b60408051918252519081900360200190f35b34610000576102ca610d1a565b60408051918252519081900360200190f35b34610000576103f9610d20565b60408051600160a060020a039092168252519081900360200190f35b34610000576102ca610d2f565b60408051918252519081900360200190f35b34610000576102ca610d69565b60408051918252519081900360200190f35b34610000576102ca610d6f565b60408051918252519081900360200190f35b34610000576102ca610d75565b60408051918252519081900360200190f35b346100005761020d610d7b565b005b346100005761021c610dd0565b604080519115158252519081900360200190f35b34610000576102ca610dec565b60408051918252519081900360200190f35b34610000576103f9610df2565b60408051600160a060020a039092168252519081900360200190f35b34610000576102ca600160a060020a0360043516610e01565b60408051918252519081900360200190f35b34610000576102ca610e20565b60408051918252519081900360200190f35b34610000576102ca610eac565b60408051918252519081900360200190f35b346100005761020d600160a060020a0360043516610eb2565b005b34610000576102ca610eed565b60408051918252519081900360200190f35b34610000576102ca610ef3565b60408051918252519081900360200190f35b346100005761023d610efa565b604080516020808252835181830152835191928392908301918501908083838215610283575b80518252602083111561028357601f199092019160209182019101610263565b505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020d610892565b005b346100005761020d600160a060020a0360043516602435610f31565b005b346100005761021c610f61565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f810184900484028501840190955284845261021c948235600160a060020a0316946024803595606494929391909201918190840183828082843750949650610f6a95505050505050565b604080519115158252519081900360200190f35b346100005761020d60048035600160a060020a0316906024803591604435918201910135610fa4565b005b34610000576102ca610faf565b60408051918252519081900360200190f35b346100005761020d610fb5565b005b34610000576102ca600160a060020a0360043581169060243516611007565b60408051918252519081900360200190f35b34610000576102ca611034565b60408051918252519081900360200190f35b346100005761020d61103b565b005b346100005761020d600160a060020a036004351661106a565b005b34610000576102ca6110ba565b60408051918252519081900360200190f35b61020a33610996565b5b565b600060095443101580156108b45750600d544311155b90505b90565b60408051808201909152600a81527f4f70757320546f6b656e00000000000000000000000000000000000000000000602082015281565b600d5481565b801580159061092a5750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b1561093457610000565b600160a060020a03338116600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60145460009060ff16156109a957610000565b3415156109b557610000565b6109bd610dd0565b806109cb57506109cb61089e565b5b15156109d757610000565b6109df610d2f565b600160a060020a038316600090815260066020526040902054610a08903463ffffffff6110c016565b1115610a1357610000565b610a2b610a1e610e20565b349063ffffffff6110dd16565b9050600e54610a45826011546110c090919063ffffffff16565b1115610a5057610000565b600160a060020a038216600090815260016020526040902054610a79908263ffffffff6110c016565b600160a060020a03831660009081526001602052604081209190915554610aa6908263ffffffff6110c016565b600055601254610abc903463ffffffff6110c016565b601255600160a060020a038216600090815260066020526040902054610ae8903463ffffffff6110c016565b600160a060020a038316600090815260066020526040902055601154610b14908263ffffffff6110c016565b6011819055600e541415610b3657600854431015610b3157436008555b43600d555b600354604051600160a060020a03909116903480156108fc02916000818181858888f193505050501515610b6957610000565b81600160a060020a031630600160a060020a03166000805160206114fb833981519152836040518082815260200191505060405180910390a35b5b5050565b60095481565b60055433600160a060020a03908116911614610bc957610000565b6005805460048054600160a060020a0319908116600160a060020a038416179091551690555b565b6000813b81811115610c065760019150610c0b565b600091505b5b50919050565b60005481565b60115481565b601354600d54610c339163ffffffff6110c016565b4311610c3e57610000565b610c4983838361110c565b5b5b505050565b601281565b600454600160a060020a031681565b60045460009033600160a060020a03908116911614610c8257610000565b600160a060020a033316600090815260016020526040902054610cab908363ffffffff61120616565b600160a060020a03331660009081526001602052604081209190915554610cd8908363ffffffff61120616565b600090815560408051848152905133600160a060020a0316916000805160206114fb833981519152919081900360200190a35060015b5b919050565b600e5481565b60125481565b600354600160a060020a031681565b601254600090683635c9adc5dea0000090610d6290610d5590606463ffffffff61122016565b829063ffffffff6110c016565b91505b5090565b60075481565b600a5481565b600f5481565b60045433600160a060020a03908116911614610d9657610000565b6014805460ff191660011790556040517fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5690600090a15b5b565b600060075443101580156108b457506008544311155b90505b90565b600b5481565b600554600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b60006007544310158015610e3657506008544311155b15610e4457506122b86108b7565b6009544310158015610e585750600a544311155b15610e665750611f406108b7565b600a5443118015610e795750600b544311155b15610e875750611d4c6108b7565b600b5443118015610e9a5750600c544311155b156108b75750611b586108b7565b5b90565b60085481565b60045433600160a060020a03908116911614610ecd57610000565b60058054600160a060020a031916600160a060020a0383161790555b5b50565b600c5481565b6011545b90565b60408051808201909152600381527f4f50540000000000000000000000000000000000000000000000000000000000602082015281565b601354600d54610f469163ffffffff6110c016565b4311610f5157610000565b610992828261123a565b5b5b5050565b60145460ff1681565b6000610f83601354600d546110c090919063ffffffff16565b4311610f8e57610000565b610f99848484611279565b90505b5b9392505050565b610000565b50505050565b60135481565b60045433600160a060020a03908116911614610fd057610000565b6014805460ff191690556040517f6426a220e8910820230d4f2e29cc2bee7c13058ff2524cbcc4d823ba49aa2f6690600090a15b5b565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b6012545b90565b60045433600160a060020a0390811691161461105657610000565b60058054600160a060020a03191690555b5b565b60045433600160a060020a0390811691161461108557610000565b600160a060020a038116151561109a57610000565b60038054600160a060020a031916600160a060020a0383161790555b5b50565b60105481565b6000828201838110156110d257610000565b8091505b5092915050565b60008282028315806110f6575082848281156100005704145b15156110d257610000565b8091505b5092915050565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152902054611150908363ffffffff6110c016565b600160a060020a038085166000908152600160205260408082209390935590861681522054611185908363ffffffff61120616565b600160a060020a0385166000908152600160205260409020556111ae818363ffffffff61120616565b600160a060020a038086166000818152600260209081526040808320338616845282529182902094909455805186815290519287169391926000805160206114fb833981519152929181900390910190a35b50505050565b60008282111561121557610000565b508082035b92915050565b6000600082848115610000570490508091505b5092915050565b60408051602081019091526000815261125283610bf1565b15611267576112628383836112b0565b610c49565b610c49838383611450565b5b5b505050565b600061128484610bf1565b15611299576112948484846112b0565b6112a4565b6112a4848484611450565b5b5060015b9392505050565b600160a060020a0333166000908152600160205260408120546112d9908463ffffffff61120616565b600160a060020a03338116600090815260016020526040808220939093559086168152205461130e908463ffffffff6110c016565b600160a060020a0380861660008181526001602090815260409182902094909455517fc0ee0b8a0000000000000000000000000000000000000000000000000000000081523392831660048201908152602482018890526060604483019081528751606484015287518a9750939563c0ee0b8a95948a948a9493926084909101919085019080838382156113bd575b8051825260208311156113bd57601f19909201916020918201910161139d565b505050905090810190601f1680156113e95780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b156100005760325a03f1156100005750505083600160a060020a031633600160a060020a03166000805160206114fb833981519152856040518082815260200191505060405180910390a35b50505050565b600160a060020a033316600090815260016020526040902054611479908363ffffffff61120616565b600160a060020a0333811660009081526001602052604080822093909355908516815220546114ae908363ffffffff6110c016565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316926000805160206114fb83398151915292918290030190a35b5050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820be2438a2c5e28c2f291e5de0431c85e1051363d4bbf7da1f0b10f176e5d9be650029

Deployed Bytecode

0x606060405236156101fe5763ffffffff60e060020a60003504166302dd92c4811461020f57806306fdde0314610230578063083c6323146102bd578063095ea7b3146102dc57806311a4c710146102fa578063145538ea14610310578063152af8f91461032f578063162790551461033e57806318160ddd1461036b57806319af6f481461038a57806323b872dd146103a9578063313ce567146103cd57806341fbb050146103ec57806342966c681461041557806344acb8da1461043957806344b49958146104585780634783c35b1461047757806347dd5172146104a057806348cd4cb1146104bf578063575d462a146104de5780635d6cb67e146104fd5780635ed7ca5b1461051c5780636649dfd51461052b5780636aa68a151461054c5780636c8381f81461056b57806370a08231146105945780637c2ffbb3146105bf578063812ba50c146105de57806384b35fbb146105fd578063899ecf2b1461061857806394d773631461063757806395d89b4114610656578063a6f2ae3a146106e3578063a9059cbb146106ed578063b9b8af0b1461070b578063be45fd621461072c578063c0ee0b8a146107a0578063c24fe21b146107cb578063cb3e64fd146107ea578063dd62ed3e146107f9578063e876bdef1461082a578063f2a6941714610849578063f3283fba14610858578063fb70f76514610873575b61020d5b61020a610892565b5b565b005b346100005761021c61089e565b604080519115158252519081900360200190f35b346100005761023d6108ba565b604080516020808252835181830152835191928392908301918501908083838215610283575b80518252602083111561028357601f199092019160209182019101610263565b505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576102ca6108f1565b60408051918252519081900360200190f35b346100005761020d600160a060020a03600435166024356108f7565b005b61020d600160a060020a0360043516610996565b005b34610000576102ca610ba8565b60408051918252519081900360200190f35b346100005761020d610bae565b005b346100005761021c600160a060020a0360043516610bf1565b604080519115158252519081900360200190f35b34610000576102ca610c12565b60408051918252519081900360200190f35b34610000576102ca610c18565b60408051918252519081900360200190f35b346100005761020d600160a060020a0360043581169060243516604435610c1e565b005b34610000576102ca610c50565b60408051918252519081900360200190f35b34610000576103f9610c55565b60408051600160a060020a039092168252519081900360200190f35b346100005761021c600435610c64565b604080519115158252519081900360200190f35b34610000576102ca610d14565b60408051918252519081900360200190f35b34610000576102ca610d1a565b60408051918252519081900360200190f35b34610000576103f9610d20565b60408051600160a060020a039092168252519081900360200190f35b34610000576102ca610d2f565b60408051918252519081900360200190f35b34610000576102ca610d69565b60408051918252519081900360200190f35b34610000576102ca610d6f565b60408051918252519081900360200190f35b34610000576102ca610d75565b60408051918252519081900360200190f35b346100005761020d610d7b565b005b346100005761021c610dd0565b604080519115158252519081900360200190f35b34610000576102ca610dec565b60408051918252519081900360200190f35b34610000576103f9610df2565b60408051600160a060020a039092168252519081900360200190f35b34610000576102ca600160a060020a0360043516610e01565b60408051918252519081900360200190f35b34610000576102ca610e20565b60408051918252519081900360200190f35b34610000576102ca610eac565b60408051918252519081900360200190f35b346100005761020d600160a060020a0360043516610eb2565b005b34610000576102ca610eed565b60408051918252519081900360200190f35b34610000576102ca610ef3565b60408051918252519081900360200190f35b346100005761023d610efa565b604080516020808252835181830152835191928392908301918501908083838215610283575b80518252602083111561028357601f199092019160209182019101610263565b505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020d610892565b005b346100005761020d600160a060020a0360043516602435610f31565b005b346100005761021c610f61565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f810184900484028501840190955284845261021c948235600160a060020a0316946024803595606494929391909201918190840183828082843750949650610f6a95505050505050565b604080519115158252519081900360200190f35b346100005761020d60048035600160a060020a0316906024803591604435918201910135610fa4565b005b34610000576102ca610faf565b60408051918252519081900360200190f35b346100005761020d610fb5565b005b34610000576102ca600160a060020a0360043581169060243516611007565b60408051918252519081900360200190f35b34610000576102ca611034565b60408051918252519081900360200190f35b346100005761020d61103b565b005b346100005761020d600160a060020a036004351661106a565b005b34610000576102ca6110ba565b60408051918252519081900360200190f35b61020a33610996565b5b565b600060095443101580156108b45750600d544311155b90505b90565b60408051808201909152600a81527f4f70757320546f6b656e00000000000000000000000000000000000000000000602082015281565b600d5481565b801580159061092a5750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b1561093457610000565b600160a060020a03338116600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60145460009060ff16156109a957610000565b3415156109b557610000565b6109bd610dd0565b806109cb57506109cb61089e565b5b15156109d757610000565b6109df610d2f565b600160a060020a038316600090815260066020526040902054610a08903463ffffffff6110c016565b1115610a1357610000565b610a2b610a1e610e20565b349063ffffffff6110dd16565b9050600e54610a45826011546110c090919063ffffffff16565b1115610a5057610000565b600160a060020a038216600090815260016020526040902054610a79908263ffffffff6110c016565b600160a060020a03831660009081526001602052604081209190915554610aa6908263ffffffff6110c016565b600055601254610abc903463ffffffff6110c016565b601255600160a060020a038216600090815260066020526040902054610ae8903463ffffffff6110c016565b600160a060020a038316600090815260066020526040902055601154610b14908263ffffffff6110c016565b6011819055600e541415610b3657600854431015610b3157436008555b43600d555b600354604051600160a060020a03909116903480156108fc02916000818181858888f193505050501515610b6957610000565b81600160a060020a031630600160a060020a03166000805160206114fb833981519152836040518082815260200191505060405180910390a35b5b5050565b60095481565b60055433600160a060020a03908116911614610bc957610000565b6005805460048054600160a060020a0319908116600160a060020a038416179091551690555b565b6000813b81811115610c065760019150610c0b565b600091505b5b50919050565b60005481565b60115481565b601354600d54610c339163ffffffff6110c016565b4311610c3e57610000565b610c4983838361110c565b5b5b505050565b601281565b600454600160a060020a031681565b60045460009033600160a060020a03908116911614610c8257610000565b600160a060020a033316600090815260016020526040902054610cab908363ffffffff61120616565b600160a060020a03331660009081526001602052604081209190915554610cd8908363ffffffff61120616565b600090815560408051848152905133600160a060020a0316916000805160206114fb833981519152919081900360200190a35060015b5b919050565b600e5481565b60125481565b600354600160a060020a031681565b601254600090683635c9adc5dea0000090610d6290610d5590606463ffffffff61122016565b829063ffffffff6110c016565b91505b5090565b60075481565b600a5481565b600f5481565b60045433600160a060020a03908116911614610d9657610000565b6014805460ff191660011790556040517fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5690600090a15b5b565b600060075443101580156108b457506008544311155b90505b90565b600b5481565b600554600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b60006007544310158015610e3657506008544311155b15610e4457506122b86108b7565b6009544310158015610e585750600a544311155b15610e665750611f406108b7565b600a5443118015610e795750600b544311155b15610e875750611d4c6108b7565b600b5443118015610e9a5750600c544311155b156108b75750611b586108b7565b5b90565b60085481565b60045433600160a060020a03908116911614610ecd57610000565b60058054600160a060020a031916600160a060020a0383161790555b5b50565b600c5481565b6011545b90565b60408051808201909152600381527f4f50540000000000000000000000000000000000000000000000000000000000602082015281565b601354600d54610f469163ffffffff6110c016565b4311610f5157610000565b610992828261123a565b5b5b5050565b60145460ff1681565b6000610f83601354600d546110c090919063ffffffff16565b4311610f8e57610000565b610f99848484611279565b90505b5b9392505050565b610000565b50505050565b60135481565b60045433600160a060020a03908116911614610fd057610000565b6014805460ff191690556040517f6426a220e8910820230d4f2e29cc2bee7c13058ff2524cbcc4d823ba49aa2f6690600090a15b5b565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b6012545b90565b60045433600160a060020a0390811691161461105657610000565b60058054600160a060020a03191690555b5b565b60045433600160a060020a0390811691161461108557610000565b600160a060020a038116151561109a57610000565b60038054600160a060020a031916600160a060020a0383161790555b5b50565b60105481565b6000828201838110156110d257610000565b8091505b5092915050565b60008282028315806110f6575082848281156100005704145b15156110d257610000565b8091505b5092915050565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152902054611150908363ffffffff6110c016565b600160a060020a038085166000908152600160205260408082209390935590861681522054611185908363ffffffff61120616565b600160a060020a0385166000908152600160205260409020556111ae818363ffffffff61120616565b600160a060020a038086166000818152600260209081526040808320338616845282529182902094909455805186815290519287169391926000805160206114fb833981519152929181900390910190a35b50505050565b60008282111561121557610000565b508082035b92915050565b6000600082848115610000570490508091505b5092915050565b60408051602081019091526000815261125283610bf1565b15611267576112628383836112b0565b610c49565b610c49838383611450565b5b5b505050565b600061128484610bf1565b15611299576112948484846112b0565b6112a4565b6112a4848484611450565b5b5060015b9392505050565b600160a060020a0333166000908152600160205260408120546112d9908463ffffffff61120616565b600160a060020a03338116600090815260016020526040808220939093559086168152205461130e908463ffffffff6110c016565b600160a060020a0380861660008181526001602090815260409182902094909455517fc0ee0b8a0000000000000000000000000000000000000000000000000000000081523392831660048201908152602482018890526060604483019081528751606484015287518a9750939563c0ee0b8a95948a948a9493926084909101919085019080838382156113bd575b8051825260208311156113bd57601f19909201916020918201910161139d565b505050905090810190601f1680156113e95780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b156100005760325a03f1156100005750505083600160a060020a031633600160a060020a03166000805160206114fb833981519152856040518082815260200191505060405180910390a35b50505050565b600160a060020a033316600090815260016020526040902054611479908363ffffffff61120616565b600160a060020a0333811660009081526001602052604080822093909355908516815220546114ae908363ffffffff6110c016565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316926000805160206114fb83398151915292918290030190a35b5050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820be2438a2c5e28c2f291e5de0431c85e1051363d4bbf7da1f0b10f176e5d9be650029

Swarm Source

bzzr://be2438a2c5e28c2f291e5de0431c85e1051363d4bbf7da1f0b10f176e5d9be65

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.