ETH Price: $3,914.27 (+2.30%)

Contract

0x2e071D2966Aa7D8dECB1005885bA1977D6038A65
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer212548852024-11-24 3:21:3511 days ago1732418495IN
Etheroll Token
0 ETH0.0005078110.25051327
Approve211023732024-11-02 20:34:3532 days ago1730579675IN
Etheroll Token
0 ETH0.000110494.56651978
Approve203218422024-07-16 21:44:23141 days ago1721166263IN
Etheroll Token
0 ETH0.000178297.36858719
Approve202566152024-07-07 19:06:47150 days ago1720379207IN
Etheroll Token
0 ETH0.000062661.35
Approve202036592024-06-30 9:38:59158 days ago1719740339IN
Etheroll Token
0 ETH0.000116372.52323278
Transfer200510692024-06-09 1:44:47179 days ago1717897487IN
Etheroll Token
0 ETH0.000220044.44175155
Approve200324592024-06-06 11:22:35182 days ago1717672955IN
Etheroll Token
0 ETH0.0004575715.72169261
Approve200310852024-06-06 6:45:59182 days ago1717656359IN
Etheroll Token
0 ETH0.000276729.50791131
Approve200310282024-06-06 6:34:23182 days ago1717655663IN
Etheroll Token
0 ETH0.0002999210.30500778
Approve200310172024-06-06 6:32:11182 days ago1717655531IN
Etheroll Token
0 ETH0.0005197811.2494929
Approve200308612024-06-06 6:00:47182 days ago1717653647IN
Etheroll Token
0 ETH0.0005835312.57050846
Approve200028552024-06-02 8:10:47186 days ago1717315847IN
Etheroll Token
0 ETH0.000230474.96490541
Approve199358722024-05-23 23:30:35195 days ago1716507035IN
Etheroll Token
0 ETH0.000248519.37049562
Approve199358722024-05-23 23:30:35195 days ago1716507035IN
Etheroll Token
0 ETH0.000434989.37052472
Approve199277322024-05-22 20:13:35196 days ago1716408815IN
Etheroll Token
0 ETH0.0002963612.24788832
Approve199270302024-05-22 17:51:59196 days ago1716400319IN
Etheroll Token
0 ETH0.0006186613.38957709
Approve198403122024-05-10 14:44:11209 days ago1715352251IN
Etheroll Token
0 ETH0.000204728.46067965
Approve197851042024-05-02 21:25:47216 days ago1714685147IN
Etheroll Token
0 ETH0.00026935.82849099
Approve197849642024-05-02 20:57:47216 days ago1714683467IN
Etheroll Token
0 ETH0.000357597.73937335
Approve197849082024-05-02 20:46:35216 days ago1714682795IN
Etheroll Token
0 ETH0.000271965.85859403
Approve195476942024-03-30 15:35:59249 days ago1711812959IN
Etheroll Token
0 ETH0.0014330831.0641386
Approve190785782024-01-24 19:27:59315 days ago1706124479IN
Etheroll Token
0 ETH0.0002833311.70962236
Approve189695472024-01-09 12:56:59331 days ago1704805019IN
Etheroll Token
0 ETH0.0011162224.01472589
Approve185242902023-11-08 2:34:35393 days ago1699410875IN
Etheroll Token
0 ETH0.0012005925.83639962
Approve184233292023-10-24 23:15:59407 days ago1698189359IN
Etheroll Token
0 ETH0.0007529931.11937474
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Contract Name:
EtherollToken

Compiler Version
v0.4.8+commit.60cc1668

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-02-13
*/

pragma solidity ^0.4.2;

/* 
`* is owned
*/
contract owned {

    address public owner;

    function owned() {
        owner = msg.sender;
    }

    modifier onlyOwner {
        if (msg.sender != owner) throw;
        _;
    }

    function ownerTransferOwnership(address newOwner)
        onlyOwner
    {
        owner = newOwner;
    }

}

/* 
* safe math
*/
contract DSSafeAddSub {

    function safeToAdd(uint a, uint b) internal returns (bool) {
        return (a + b >= a);
    }
    
    function safeAdd(uint a, uint b) internal returns (uint) {
        if (!safeToAdd(a, b)) throw;
        return a + b;
    }

    function safeToSubtract(uint a, uint b) internal returns (bool) {
        return (b <= a);
    }

    function safeSub(uint a, uint b) internal returns (uint) {
        if (!safeToSubtract(a, b)) throw;
        return a - b;
    } 

}


/**
 *
 * @title  EtherollToken
 * 
 * The official token powering etheroll.
 * EtherollToken is a ERC.20 standard token with some custom functionality
 *
 */ 


contract EtherollToken is owned, DSSafeAddSub {

    /* check address */
    modifier onlyBy(address _account) {
        if (msg.sender != _account) throw;
        _;
    }    

    /* vars */
    string public standard = 'Token 1.0';
    string public name = "DICE";
    string public symbol = "ROL";
    uint8 public decimals = 16;
    uint public totalSupply = 250000000000000000000000; 

    address public priviledgedAddress;  
    bool public tokensFrozen;
    uint public crowdfundDeadline = now + 2 * 1 weeks;       
    uint public nextFreeze = now + 12 * 1 weeks;
    uint public nextThaw = now + 13 * 1 weeks;
   

    /* map balances */
    mapping (address => uint) public balanceOf;
    mapping (address => mapping (address => uint)) public allowance;  

    /* events */
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event LogTokensFrozen(bool indexed Frozen);    

    /*
    *  @notice sends all tokens to msg.sender on init    
    */  
    function EtherollToken(){
        /* send creator all initial tokens 25,000,000 */
        balanceOf[msg.sender] = 250000000000000000000000;
        /* tokens are not frozen */  
        tokensFrozen = false;                                      

    }  

    /*
    *  @notice public function    
    *  @param _to address to send tokens to   
    *  @param _value number of tokens to transfer 
    *  @returns boolean success         
    */     
    function transfer(address _to, uint _value) public
        returns (bool success)    
    {
        if(tokensFrozen && msg.sender != priviledgedAddress) return false;  /* transfer only by priviledgedAddress during crowdfund or reward phases */
        if (balanceOf[msg.sender] < _value) return false;                   /* check if the sender has enough */
        if (balanceOf[_to] + _value < balanceOf[_to]) return false;         /* check for overflows */              
        balanceOf[msg.sender] -=  _value;                                   /* subtract from the sender */
        balanceOf[_to] += _value;                                           /* add the same to the recipient */
        Transfer(msg.sender, _to, _value);                                  /* notify anyone listening that this transfer took place */
        return true;
    }      

    /*
    *  @notice public function    
    *  @param _from address to send tokens from 
    *  @param _to address to send tokens to   
    *  @param _value number of tokens to transfer     
    *  @returns boolean success      
    *  another contract attempts to spend tokens on your behalf
    */       
    function transferFrom(address _from, address _to, uint _value) public
        returns (bool success) 
    {                
        if(tokensFrozen && msg.sender != priviledgedAddress) return false;  /* transfer only by priviledgedAddress during crowdfund or reward phases */
        if (balanceOf[_from] < _value) return false;                        /* check if the sender has enough */
        if (balanceOf[_to] + _value < balanceOf[_to]) return false;         /* check for overflows */                
        if (_value > allowance[_from][msg.sender]) return false;            /* check allowance */
        balanceOf[_from] -= _value;                                         /* subtract from the sender */
        balanceOf[_to] += _value;                                           /* add the same to the recipient */
        allowance[_from][msg.sender] -= _value;                             /* reduce allowance */
        Transfer(_from, _to, _value);                                       /* notify anyone listening that this transfer took place */
        return true;
    }        
 
    /*
    *  @notice public function    
    *  @param _spender address being granted approval to spend on behalf of msg.sender
    *  @param _value number of tokens granted approval for _spender to spend on behalf of msg.sender    
    *  @returns boolean success      
    *  approves another contract to spend some tokens on your behalf
    */      
    function approve(address _spender, uint _value) public
        returns (bool success)
    {
        /* set allowance for _spender on behalf of msg.sender */
        allowance[msg.sender][_spender] = _value;

        /* log event about transaction */
        Approval(msg.sender, _spender, _value);        
        return true;
    } 
  
    /*
    *  @notice address restricted function 
    *  crowdfund contract calls this to burn its unsold coins 
    */     
    function priviledgedAddressBurnUnsoldCoins() public
        /* only crowdfund contract can call this */
        onlyBy(priviledgedAddress)
    {
        /* totalSupply should equal total tokens in circulation */
        totalSupply = safeSub(totalSupply, balanceOf[priviledgedAddress]); 
        /* burns unsold tokens from crowdfund address */
        balanceOf[priviledgedAddress] = 0;
    }

    /*
    *  @notice public function 
    *  locks/unlocks tokens on a recurring cycle
    */         
    function updateTokenStatus() public
    {
        
        /* locks tokens during initial crowdfund period */
        if(now < crowdfundDeadline){                       
            tokensFrozen = true;         
            LogTokensFrozen(tokensFrozen);  
        }  

        /* locks tokens */
        if(now >= nextFreeze){          
            tokensFrozen = true;
            LogTokensFrozen(tokensFrozen);  
        }

        /* unlocks tokens */
        if(now >= nextThaw){         
            tokensFrozen = false;
            nextFreeze = now + 12 * 1 weeks;
            nextThaw = now + 13 * 1 weeks;              
            LogTokensFrozen(tokensFrozen);  
        }        
      
    }                              

    /*
    *  @notice owner restricted function
    *  @param _newPriviledgedAddress the address
    *  only this address can burn unsold tokens
    *  transfer tokens only by priviledgedAddress during crowdfund or reward phases
    */      
    function ownerSetPriviledgedAddress(address _newPriviledgedAddress) public 
        onlyOwner
    {
        priviledgedAddress = _newPriviledgedAddress;
    }   
                    
    
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_newPriviledgedAddress","type":"address"}],"name":"ownerSetPriviledgedAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","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":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"updateTokenStatus","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensFrozen","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"nextThaw","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"priviledgedAddressBurnUnsoldCoins","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdfundDeadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"nextFreeze","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"priviledgedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"ownerTransferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"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"},{"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":"Frozen","type":"bool"}],"name":"LogTokensFrozen","type":"event"}]

Deployed Bytecode

0x606060405236156100f65763ffffffff60e060020a600035041663040ea2f481146100fb57806306fdde0314610116578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101f257806325ffba04146102285780632efa79d314610237578063313ce5671461025857806358e879f31461027b5780635a3b7e421461029a5780636410c41a1461032757806370a08231146103365780638480021c146103615780638b64574b146103805780638da5cb5b1461039f578063937c0cdf146103c857806395d89b41146103f1578063a09cca931461047e578063a9059cbb14610499578063dd62ed3e146104c9575b610000565b3461000057610114600160a060020a03600435166104fa565b005b3461000057610123610542565b604080516020808252835181830152835191928392908301918501908083838215610169575b80518252602083111561016957601f199092019160209182019101610149565b505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576101bf600160a060020a03600435166024356105cd565b604080519115158252519081900360200190f35b34610000576101e0610638565b60408051918252519081900360200190f35b34610000576101bf600160a060020a036004358116906024351660443561063e565b604080519115158252519081900360200190f35b346100005761011461078b565b005b34610000576101bf61089f565b604080519115158252519081900360200190f35b34610000576102656108af565b6040805160ff9092168252519081900360200190f35b34610000576101e06108b8565b60408051918252519081900360200190f35b34610000576101236108be565b604080516020808252835181830152835191928392908301918501908083838215610169575b80518252602083111561016957601f199092019160209182019101610149565b505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761011461094b565b005b34610000576101e0600160a060020a03600435166109b2565b60408051918252519081900360200190f35b34610000576101e06109c4565b60408051918252519081900360200190f35b34610000576101e06109ca565b60408051918252519081900360200190f35b34610000576103ac6109d0565b60408051600160a060020a039092168252519081900360200190f35b34610000576103ac6109df565b60408051600160a060020a039092168252519081900360200190f35b34610000576101236109ee565b604080516020808252835181830152835191928392908301918501908083838215610169575b80518252602083111561016957601f199092019160209182019101610149565b505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610114600160a060020a0360043516610a7c565b005b34610000576101bf600160a060020a0360043516602435610ac4565b604080519115158252519081900360200190f35b34610000576101e0600160a060020a0360043581169060243516610bc0565b60408051918252519081900360200190f35b60005433600160a060020a0390811691161461051557610000565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60055481565b60065460009060a060020a900460ff168015610669575060065433600160a060020a03908116911614155b1561067657506000610784565b600160a060020a0384166000908152600a60205260409020548290101561069f57506000610784565b600160a060020a0383166000908152600a602052604090205482810110156106c957506000610784565b600160a060020a038085166000908152600b6020908152604080832033909416835292905220548211156106ff57506000610784565b600160a060020a038085166000818152600a6020908152604080832080548890039055878516808452818420805489019055848452600b83528184203390961684529482529182902080548790039055815186815291517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060015b9392505050565b6007544210156107e1576006805460a060020a60ff02191660a060020a90811791829055604051910460ff161515907fd3ae281451496b0a8d978ad222f5465aa683499b2ca2698ec1686a413e717f0790600090a25b6008544210610836576006805460a060020a60ff02191660a060020a90811791829055604051910460ff161515907fd3ae281451496b0a8d978ad222f5465aa683499b2ca2698ec1686a413e717f0790600090a25b600954421061089c576006805460a060020a60ff02191690819055626ebe00429081016008556277f8800160095560405160a060020a90910460ff161515907fd3ae281451496b0a8d978ad222f5465aa683499b2ca2698ec1686a413e717f0790600090a25b5b565b60065460a060020a900460ff1681565b60045460ff1681565b60095481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b505050505081565b600654600160a060020a03908116903316811461096757610000565b600554600654600160a060020a03166000908152600a602052604090205461098f9190610bdd565b600555600654600160a060020a03166000908152600a60205260408120555b5b50565b600a6020526000908152604090205481565b60075481565b60085481565b600054600160a060020a031681565b600654600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b505050505081565b60005433600160a060020a03908116911614610a9757610000565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60065460009060a060020a900460ff168015610aef575060065433600160a060020a03908116911614155b15610afc57506000610632565b600160a060020a0333166000908152600a602052604090205482901015610b2557506000610632565b600160a060020a0383166000908152600a60205260409020548281011015610b4f57506000610632565b600160a060020a033381166000818152600a6020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060015b92915050565b600b60209081526000928352604080842090915290825290205481565b6000610be98383610bff565b1515610bf457610000565b508082035b92915050565b818111155b929150505600a165627a7a72305820437a367cded753a84cfeb998ad796a71a581398d9fd01bb0a80cf8d809f6ea0e0029

Swarm Source

bzzr://437a367cded753a84cfeb998ad796a71a581398d9fd01bb0a80cf8d809f6ea0e

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  ]

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.