More Info
Private Name Tags
ContractCreator
TokenTracker
Multi Chain
Multichain Addresses
0 address found via
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Set Token Contro... | 5633450 | 1847 days 16 hrs ago | IN | 0 ETH | 0.00029081 | ||||
Set Staking Requ... | 5550889 | 1862 days 2 hrs ago | IN | 0 ETH | 0.00016521 | ||||
Set Token Contro... | 5509765 | 1869 days 7 hrs ago | IN | 0 ETH | 0.00017448 | ||||
Set Token Contro... | 5507533 | 1869 days 16 hrs ago | IN | 0 ETH | 0.00119232 | ||||
Mint | 5507504 | 1869 days 16 hrs ago | IN | 0.01 ETH | 0.00391791 | ||||
Mint | 5507499 | 1869 days 16 hrs ago | IN | 1 ETH | 0.0042968 | ||||
Set Token Contro... | 5507488 | 1869 days 16 hrs ago | IN | 0 ETH | 0.00180732 | ||||
Set Donations Re... | 5507483 | 1869 days 16 hrs ago | IN | 0 ETH | 0.00180281 | ||||
0x60606040 | 5507447 | 1869 days 16 hrs ago | IN | Create: CryptoTorchToken | 0 ETH | 0.00835463 |
Latest 25 internal transactions (View All)
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
6008257 | 1782 days 16 hrs ago | 0.02463327 ETH | ||||
5964908 | 1790 days 1 hr ago | 0.03114065 ETH | ||||
5807304 | 1817 days 33 mins ago | 0.01669544 ETH | ||||
5807283 | 1817 days 39 mins ago | 0.70780941 ETH | ||||
5807282 | 1817 days 39 mins ago | 0.01413535 ETH | ||||
5807282 | 1817 days 39 mins ago | 0.00207748 ETH | ||||
5807282 | 1817 days 39 mins ago | 0.00629344 ETH | ||||
5807255 | 1817 days 47 mins ago | 0.00001334 ETH | ||||
5807255 | 1817 days 47 mins ago | 0.00009128 ETH | ||||
5807244 | 1817 days 50 mins ago | 0.00003338 ETH | ||||
5807184 | 1817 days 1 hr ago | 0.00003977 ETH | ||||
5807180 | 1817 days 1 hr ago | 0.00707501 ETH | ||||
5807174 | 1817 days 1 hr ago | 0.0016527 ETH | ||||
5667665 | 1841 days 14 hrs ago | 0.009 ETH | ||||
5633558 | 1847 days 15 hrs ago | 0.0009 ETH | ||||
5614792 | 1850 days 23 hrs ago | 0.01165868 ETH | ||||
5614758 | 1850 days 23 hrs ago | 0.0013079 ETH | ||||
5614740 | 1850 days 23 hrs ago | 0.00034115 ETH | ||||
5614740 | 1850 days 23 hrs ago | 0.00112094 ETH | ||||
5614737 | 1850 days 23 hrs ago | 0.00010838 ETH | ||||
5614394 | 1851 days 54 mins ago | 0.07377746 ETH | ||||
5606021 | 1852 days 12 hrs ago | 0.0525955 ETH | ||||
5597572 | 1853 days 23 hrs ago | 0.1168947 ETH | ||||
5593231 | 1854 days 17 hrs ago | 0.00868215 ETH | ||||
5569458 | 1858 days 21 hrs ago | 0.00529877 ETH |
Loading...
Loading
Contract Name:
CryptoTorchToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-26 */ // CryptoTorch-Token Source code // copyright 2018 CryptoTorch <https://cryptotorch.io> pragma solidity 0.4.19; /** * @title SafeMath * Math operations with safety checks that throw on error */ library SafeMath { /** * Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Ownable * * Owner rights: * - change the name of the contract * - change the name of the token * - change the Proof of Stake difficulty * - transfer ownership * * Owner CANNOT: * - withdrawal funds * - disable withdrawals * - kill the contract * - change the price of tokens */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function Ownable() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title ERC20 interface (Good parts only) * see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); } /** * @title CryptoTorchToken * * Token + Dividends System for the Cryptolympic-Torch * * Token: KMS - Kilometers (Distance of Torch Run) */ contract CryptoTorchToken is ERC20, Ownable { using SafeMath for uint256; // // Events // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // event onWithdraw( address indexed to, uint256 amount ); event onMint( address indexed to, uint256 pricePaid, uint256 tokensMinted, address indexed referredBy ); event onBurn( address indexed from, uint256 tokensBurned, uint256 amountEarned ); // // Token Configurations // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // string internal name_ = "Cryptolympic Torch-Run Kilometers"; string internal symbol_ = "KMS"; uint256 constant internal dividendFee_ = 5; uint256 constant internal tokenPriceInitial_ = 0.0000001 ether; uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether; uint256 constant internal magnitude = 2**64; uint256 public stakingRequirement = 50e18; // // Token Internals // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // uint256 internal tokenSupply_ = 0; uint256 internal profitPerShare_; address internal tokenController_; address internal donationsReceiver_; mapping (address => uint256) internal tokenBalanceLedger_; // scaled by 1e18 mapping (address => uint256) internal referralBalance_; mapping (address => uint256) internal profitsReceived_; mapping (address => int256) internal payoutsTo_; // // Modifiers // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // No buying tokens directly through this contract, only through the // CryptoTorch Controller Contract via the CryptoTorch Dapp // modifier onlyTokenController() { require(tokenController_ != address(0) && msg.sender == tokenController_); _; } // Token Holders Only modifier onlyTokenHolders() { require(myTokens() > 0); _; } // Dividend Holders Only modifier onlyProfitHolders() { require(myDividends(true) > 0); _; } // // Public Functions // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // /** * Contract Constructor */ function CryptoTorchToken() public {} /** * Sets the Token Controller Contract (CryptoTorch) */ function setTokenController(address _controller) public onlyOwner { tokenController_ = _controller; } /** * Sets the Contract Donations Receiver address */ function setDonationsReceiver(address _receiver) public onlyOwner { donationsReceiver_ = _receiver; } /** * Do not make payments directly to this contract (unless it is a donation! :) * - payments made directly to the contract do not receive tokens. Tokens * are only available through the CryptoTorch Controller Contract, which * is managed by the Dapp at https://cryptotorch.io */ function() payable public { if (msg.value > 0 && donationsReceiver_ != 0x0) { donationsReceiver_.transfer(msg.value); // donations? Thank you! :) } } /** * Liquifies tokens to ether. */ function sell(uint256 _amountOfTokens) public onlyTokenHolders { sell_(msg.sender, _amountOfTokens); } /** * Liquifies tokens to ether. */ function sellFor(address _for, uint256 _amountOfTokens) public onlyTokenController { sell_(_for, _amountOfTokens); } /** * Liquifies tokens to ether. */ function withdraw() public onlyProfitHolders { withdraw_(msg.sender); } /** * Liquifies tokens to ether. */ function withdrawFor(address _for) public onlyTokenController { withdraw_(_for); } /** * Liquifies tokens to ether. */ function mint(address _to, uint256 _amountPaid, address _referredBy) public onlyTokenController payable returns(uint256) { require(_amountPaid == msg.value); return mintTokens_(_to, _amountPaid, _referredBy); } /** * Transfer tokens from the caller to a new holder. * There's a small fee here that is redistributed to all token holders */ function transfer(address _to, uint256 _value) public onlyTokenHolders returns(bool) { return transferFor_(msg.sender, _to, _value); } // // Owner Functions // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // /** * If we want to rebrand, we can. */ function setName(string _name) public onlyOwner { name_ = _name; } /** * If we want to rebrand, we can. */ function setSymbol(string _symbol) public onlyOwner { symbol_ = _symbol; } /** * Precautionary measures in case we need to adjust the masternode rate. */ function setStakingRequirement(uint256 _amountOfTokens) public onlyOwner { stakingRequirement = _amountOfTokens; } // // Helper Functions // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // /** * View the total balance of the contract */ function contractBalance() public view returns (uint256) { return this.balance; } /** * Retrieve the total token supply. */ function totalSupply() public view returns(uint256) { return tokenSupply_; } /** * ERC20 Token Name */ function name() public view returns (string) { return name_; } /** * ERC20 Token Symbol */ function symbol() public view returns (string) { return symbol_; } /** * ERC20 Token Decimals */ function decimals() public pure returns (uint256) { return 18; } /** * Retrieve the tokens owned by the caller. */ function myTokens() public view returns(uint256) { address _playerAddress = msg.sender; return balanceOf(_playerAddress); } /** * Retrieve the dividends owned by the caller. * If `_includeBonus` is to to true, the referral bonus will be included in the calculations. * The reason for this, is that in the frontend, we will want to get the total divs (global + ref) * But in the internal calculations, we want them separate. */ function myDividends(bool _includeBonus) public view returns(uint256) { address _playerAddress = msg.sender; return _includeBonus ? dividendsOf(_playerAddress) + referralBalance_[_playerAddress] : dividendsOf(_playerAddress); } /** * Retreive the Total Profits previously paid out to the Caller */ function myProfitsReceived() public view returns (uint256) { address _playerAddress = msg.sender; return profitsOf(_playerAddress); } /** * Retrieve the token balance of any single address. */ function balanceOf(address _playerAddress) public view returns(uint256) { return tokenBalanceLedger_[_playerAddress]; } /** * Retrieve the dividend balance of any single address. */ function dividendsOf(address _playerAddress) public view returns(uint256) { return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_playerAddress]) - payoutsTo_[_playerAddress]) / magnitude; } /** * Retrieve the paid-profits balance of any single address. */ function profitsOf(address _playerAddress) public view returns(uint256) { return profitsReceived_[_playerAddress]; } /** * Retrieve the referral dividends balance of any single address. */ function referralBalanceOf(address _playerAddress) public view returns(uint256) { return referralBalance_[_playerAddress]; } /** * Return the sell price of 1 individual token. */ function sellPrice() public view returns(uint256) { // our calculation relies on the token supply, so we need supply. Doh. if (tokenSupply_ == 0) { return tokenPriceInitial_ - tokenPriceIncremental_; } else { uint256 _ether = tokensToEther_(1e18); uint256 _dividends = SafeMath.div(_ether, dividendFee_); uint256 _taxedEther = SafeMath.sub(_ether, _dividends); return _taxedEther; } } /** * Return the buy price of 1 individual token. */ function buyPrice() public view returns(uint256) { // our calculation relies on the token supply, so we need supply. Doh. if (tokenSupply_ == 0) { return tokenPriceInitial_ + tokenPriceIncremental_; } else { uint256 _ether = tokensToEther_(1e18); uint256 _dividends = SafeMath.div(_ether, dividendFee_); uint256 _taxedEther = SafeMath.add(_ether, _dividends); return _taxedEther; } } /** * Function for the frontend to dynamically retrieve the price scaling of buy orders. */ function calculateTokensReceived(uint256 _etherToSpend) public view returns(uint256) { uint256 _dividends = _etherToSpend.div(dividendFee_); uint256 _taxedEther = _etherToSpend.sub(_dividends); uint256 _amountOfTokens = etherToTokens_(_taxedEther); return _amountOfTokens; } /** * Function for the frontend to dynamically retrieve the price scaling of sell orders. */ function calculateEtherReceived(uint256 _tokensToSell) public view returns(uint256) { require(_tokensToSell <= tokenSupply_); uint256 _ether = tokensToEther_(_tokensToSell); uint256 _dividends = _ether.div(dividendFee_); uint256 _taxedEther = _ether.sub(_dividends); return _taxedEther; } // // Internal Functions // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // /** * Liquifies tokens to ether. */ function sell_(address _recipient, uint256 _amountOfTokens) internal { require(_amountOfTokens <= tokenBalanceLedger_[_recipient]); uint256 _tokens = _amountOfTokens; uint256 _ether = tokensToEther_(_tokens); uint256 _dividends = SafeMath.div(_ether, dividendFee_); uint256 _taxedEther = SafeMath.sub(_ether, _dividends); // burn the sold tokens tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens); tokenBalanceLedger_[_recipient] = SafeMath.sub(tokenBalanceLedger_[_recipient], _tokens); // update dividends tracker int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEther * magnitude)); payoutsTo_[_recipient] -= _updatedPayouts; // update the amount of dividends per token if (tokenSupply_ > 0) { profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_); } // fire event onBurn(_recipient, _tokens, _taxedEther); } /** * Withdraws all of the callers earnings. */ function withdraw_(address _recipient) internal { require(_recipient != address(0)); // setup data uint256 _dividends = getDividendsOf_(_recipient, false); // update dividend tracker payoutsTo_[_recipient] += (int256)(_dividends * magnitude); // add ref. bonus _dividends += referralBalance_[_recipient]; referralBalance_[_recipient] = 0; // fire event onWithdraw(_recipient, _dividends); // transfer funds profitsReceived_[_recipient] = profitsReceived_[_recipient].add(_dividends); _recipient.transfer(_dividends); // Keep contract clean if (tokenSupply_ == 0 && this.balance > 0) { owner.transfer(this.balance); } } /** * Assign tokens to player */ function mintTokens_(address _to, uint256 _amountPaid, address _referredBy) internal returns(uint256) { require(_to != address(this) && _to != tokenController_); uint256 _undividedDividends = SafeMath.div(_amountPaid, dividendFee_); uint256 _referralBonus = SafeMath.div(_undividedDividends, 10); uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus); uint256 _taxedEther = SafeMath.sub(_amountPaid, _undividedDividends); uint256 _amountOfTokens = etherToTokens_(_taxedEther); uint256 _fee = _dividends * magnitude; // prevents overflow in the case that the pyramid somehow magically starts being used by everyone in the world // (or hackers) require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_)); // is the user referred by a masternode? if (_referredBy != address(0) && _referredBy != _to && tokenBalanceLedger_[_referredBy] >= stakingRequirement) { // wealth redistribution referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus); } else { // no ref purchase // add the referral bonus back to the global dividends cake _dividends = SafeMath.add(_dividends, _referralBonus); _fee = _dividends * magnitude; } if (tokenSupply_ > 0) { // add tokens to the pool tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens); // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder profitPerShare_ += (_dividends * magnitude / (tokenSupply_)); // calculate the amount of tokens the customer receives over his purchase _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_)))); } else { // add tokens to the pool tokenSupply_ = _amountOfTokens; } // update circulating supply & the ledger address for the customer tokenBalanceLedger_[_to] = SafeMath.add(tokenBalanceLedger_[_to], _amountOfTokens); // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them int256 _updatedPayouts = (int256)((profitPerShare_ * _amountOfTokens) - _fee); payoutsTo_[_to] += _updatedPayouts; // fire event onMint(_to, _amountPaid, _amountOfTokens, _referredBy); return _amountOfTokens; } /** * Transfer tokens from the caller to a new holder. * There's a small fee here that is redistributed to all token holders */ function transferFor_(address _from, address _to, uint256 _amountOfTokens) internal returns(bool) { require(_to != address(0)); require(tokenBalanceLedger_[_from] >= _amountOfTokens && tokenBalanceLedger_[_to] + _amountOfTokens >= tokenBalanceLedger_[_to]); // make sure we have the requested tokens require(_amountOfTokens <= tokenBalanceLedger_[_from]); // withdraw all outstanding dividends first if (getDividendsOf_(_from, true) > 0) { withdraw_(_from); } // liquify 10% of the tokens that are transferred // these are dispersed to shareholders uint256 _tokenFee = SafeMath.div(_amountOfTokens, dividendFee_); uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee); uint256 _dividends = tokensToEther_(_tokenFee); // burn the fee tokens tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee); // exchange tokens tokenBalanceLedger_[_from] = SafeMath.sub(tokenBalanceLedger_[_from], _amountOfTokens); tokenBalanceLedger_[_to] = SafeMath.add(tokenBalanceLedger_[_to], _taxedTokens); // update dividend trackers payoutsTo_[_from] -= (int256)(profitPerShare_ * _amountOfTokens); payoutsTo_[_to] += (int256)(profitPerShare_ * _taxedTokens); // disperse dividends among holders profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_); // fire event Transfer(_from, _to, _taxedTokens); // ERC20 return true; } /** * Retrieve the dividends of the owner. */ function getDividendsOf_(address _recipient, bool _includeBonus) internal view returns(uint256) { return _includeBonus ? dividendsOf(_recipient) + referralBalance_[_recipient] : dividendsOf(_recipient); } /** * Calculate Token price based on an amount of incoming ether; * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code. */ function etherToTokens_(uint256 _ether) internal view returns(uint256) { uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18; uint256 _tokensReceived = ( ( // underflow attempts BTFO SafeMath.sub( (sqrt ( (_tokenPriceInitial**2) + (2*(tokenPriceIncremental_ * 1e18)*(_ether * 1e18)) + (((tokenPriceIncremental_)**2)*(tokenSupply_**2)) + (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_) ) ), _tokenPriceInitial ) )/(tokenPriceIncremental_) )-(tokenSupply_); return _tokensReceived; } /** * Calculate token sell value. * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code. */ function tokensToEther_(uint256 _tokens) internal view returns(uint256) { uint256 tokens_ = (_tokens + 1e18); uint256 _tokenSupply = (tokenSupply_ + 1e18); uint256 _etherReceived = ( // underflow attempts BTFO SafeMath.sub( ( ( ( tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18)) )-tokenPriceIncremental_ )*(tokens_ - 1e18) ),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2 ) /1e18); return _etherReceived; } /** * Squirts gas! ;) */ function sqrt(uint x) internal pure returns (uint y) { uint z = (x + 1) / 2; y = x; while (z < y) { y = z; z = (x / z + z) / 2; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_playerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_playerAddress","type":"address"}],"name":"profitsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amountPaid","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"mint","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_etherToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_playerAddress","type":"address"}],"name":"referralBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_playerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_for","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"sellFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_for","type":"address"}],"name":"withdrawFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"setDonationsReceiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEtherReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"setTokenController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myProfitsReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"pricePaid","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"amountEarned","type":"uint256"}],"name":"onBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"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"}]
Contract Creation Code
6060604052606060405190810160405280602181526020017f43727970746f6c796d70696320546f7263682d52756e204b696c6f6d6574657281526020017f730000000000000000000000000000000000000000000000000000000000000081525060019080516200007692916020019062000100565b5060408051908101604052600381527f4b4d53000000000000000000000000000000000000000000000000000000000060208201526002908051620000c092916020019062000100565b506802b5e3af16b188000060035560006004553415620000df57600080fd5b60008054600160a060020a03191633600160a060020a0316179055620001a5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014357805160ff191683800117855562000173565b8280016001018555821562000173579182015b828111156200017357825182559160200191906001019062000156565b506200018192915062000185565b5090565b620001a291905b808211156200018157600081556001016200018c565b90565b6115a280620001b56000396000f30060606040526004361061017e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b81146101d357806301ec07931461020457806306fdde03146102235780630d4d1513146102ad57806310d0ffdd146102cb57806318160ddd146102e1578063313ce567146102f45780633ccfd60b14610307578063465346491461031a5780634b7503341461033957806356d399e81461034c578063688abbf71461035f57806370a08231146103775780637f2438cb146103965780638328b610146103b85780638620410b146103ce5780638b7afe2e146103e15780638da5cb5b146103f4578063949e8acd1461042357806395d89b41146104365780639eca672c14610449578063a625664414610468578063a9059cbb14610487578063b84c8246146104bd578063c257c8511461050e578063c47f002714610524578063e102baab14610575578063e4849b3214610594578063f2fde38b146105aa578063fb3bc400146105c9575b6000341180156101985750600754600160a060020a031615155b156101d157600754600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156101d157600080fd5b005b34156101de57600080fd5b6101f2600160a060020a03600435166105dc565b60405190815260200160405180910390f35b341561020f57600080fd5b6101f2600160a060020a0360043516610617565b341561022e57600080fd5b610236610632565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561027257808201518382015260200161025a565b50505050905090810190601f16801561029f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f2600160a060020a0360043581169060243590604435166106db565b34156102d657600080fd5b6101f2600435610730565b34156102ec57600080fd5b6101f261076c565b34156102ff57600080fd5b6101f2610772565b341561031257600080fd5b6101d1610777565b341561032557600080fd5b6101f2600160a060020a0360043516610798565b341561034457600080fd5b6101f26107b3565b341561035757600080fd5b6101f2610807565b341561036a57600080fd5b6101f2600435151561080d565b341561038257600080fd5b6101f2600160a060020a0360043516610850565b34156103a157600080fd5b6101d1600160a060020a036004351660243561086b565b34156103c357600080fd5b6101d16004356108ac565b34156103d957600080fd5b6101f26108cc565b34156103ec57600080fd5b6101f2610914565b34156103ff57600080fd5b610407610922565b604051600160a060020a03909116815260200160405180910390f35b341561042e57600080fd5b6101f2610931565b341561044157600080fd5b610236610944565b341561045457600080fd5b6101d1600160a060020a03600435166109b7565b341561047357600080fd5b6101d1600160a060020a03600435166109f6565b341561049257600080fd5b6104a9600160a060020a0360043516602435610a40565b604051901515815260200160405180910390f35b34156104c857600080fd5b6101d160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a6795505050505050565b341561051957600080fd5b6101f2600435610a95565b341561052f57600080fd5b6101d160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ada95505050505050565b341561058057600080fd5b6101d1600160a060020a0360043516610b08565b341561059f57600080fd5b6101d1600435610b52565b34156105b557600080fd5b6101d1600160a060020a0360043516610b70565b34156105d457600080fd5b6101f2610c0b565b600160a060020a03166000908152600b6020908152604080832054600890925290912054600554680100000000000000009102919091030490565b600160a060020a03166000908152600a602052604090205490565b61063a6114d6565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106d05780601f106106a5576101008083540402835291602001916106d0565b820191906000526020600020905b8154815290600101906020018083116106b357829003601f168201915b505050505090505b90565b600654600090600160a060020a031615801590610706575060065433600160a060020a039081169116145b151561071157600080fd5b34831461071d57600080fd5b610728848484610c17565b949350505050565b600080808061074685600563ffffffff610e9516565b9250610758858463ffffffff610eac16565b915061076382610ebe565b95945050505050565b60045490565b601290565b6000610783600161080d565b1161078d57600080fd5b61079633610f56565b565b600160a060020a031660009081526009602052604090205490565b600080600080600454600014156107d1576414f46b04009350610801565b6107e2670de0b6b3a76400006110b0565b92506107ef836005610e95565b91506107fb8383610eac565b90508093505b50505090565b60035481565b600033826108235761081e816105dc565b610847565b600160a060020a038116600090815260096020526040902054610845826105dc565b015b91505b50919050565b600160a060020a031660009081526008602052604090205490565b600654600160a060020a031615801590610893575060065433600160a060020a039081169116145b151561089e57600080fd5b6108a8828261111c565b5050565b60005433600160a060020a039081169116146108c757600080fd5b600355565b600080600080600454600014156108ea5764199c82cc009350610801565b6108fb670de0b6b3a76400006110b0565b9250610908836005610e95565b91506107fb8383611266565b600160a060020a0330163190565b600054600160a060020a031681565b60003361093d81610850565b91505b5090565b61094c6114d6565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106d05780601f106106a5576101008083540402835291602001916106d0565b600654600160a060020a0316158015906109df575060065433600160a060020a039081169116145b15156109ea57600080fd5b6109f381610f56565b50565b60005433600160a060020a03908116911614610a1157600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080610a4b610931565b11610a5557600080fd5b610a60338484611275565b9392505050565b60005433600160a060020a03908116911614610a8257600080fd5b60028180516108a89291602001906114e8565b6000806000806004548511151515610aac57600080fd5b610ab5856110b0565b9250610ac883600563ffffffff610e9516565b9150610763838363ffffffff610eac16565b60005433600160a060020a03908116911614610af557600080fd5b60018180516108a89291602001906114e8565b60005433600160a060020a03908116911614610b2357600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610b5c610931565b11610b6657600080fd5b6109f3338261111c565b60005433600160a060020a03908116911614610b8b57600080fd5b600160a060020a0381161515610ba057600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60003361093d81610617565b60008060008060008060008030600160a060020a03168b600160a060020a031614158015610c535750600654600160a060020a038c8116911614155b1515610c5e57600080fd5b610c698a6005610e95565b9650610c7687600a610e95565b9550610c828787610eac565b9450610c8e8a88610eac565b9350610c9984610ebe565b92506801000000000000000085029150600083118015610cc35750600454610cc18482611266565b115b1515610cce57600080fd5b600160a060020a03891615801590610cf857508a600160a060020a031689600160a060020a031614155b8015610d1e5750600354600160a060020a038a1660009081526008602052604090205410155b15610d6457600160a060020a038916600090815260096020526040902054610d469087611266565b600160a060020a038a16600090815260096020526040902055610d7f565b610d6e8587611266565b945068010000000000000000850291505b60006004541115610de357610d9660045484611266565b6004819055680100000000000000008602811515610db057fe5b60058054929091049091019055600454680100000000000000008602811515610dd557fe5b048302820382039150610de9565b60048390555b600160a060020a038b16600090815260086020526040902054610e0c9084611266565b600160a060020a03808d16600081815260086020908152604080832095909555600554600b90915290849020805491880287900391820190559350908b16917f4eca39a8b143e3338bfb6514069564a64d657ccc0413d67e250f65f5a9c37f16908d9087905191825260208201526040908101905180910390a350909998505050505050505050565b6000808284811515610ea357fe5b04949350505050565b600082821115610eb857fe5b50900390565b6004546000906c01431e0fae6d7217caa00000009082906402540be400610f43610f3d730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001611462565b85610eac565b811515610f4c57fe5b0403949350505050565b6000600160a060020a0382161515610f6d57600080fd5b610f78826000611497565b600160a060020a0383166000818152600b6020908152604080832080546801000000000000000087020190556009909152808220805492905592019250907fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc9083905190815260200160405180910390a2600160a060020a0382166000908152600a6020526040902054611012908263ffffffff61126616565b600160a060020a0383166000818152600a602052604090819020929092559082156108fc0290839051600060405180830381858888f19350505050151561105857600080fd5b6004541580156110725750600030600160a060020a031631115b156108a857600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108a857600080fd5b600454600090670de0b6b3a76400008381019181019083906111096414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be4000281151561110357fe5b04610eac565b81151561111257fe5b0495945050505050565b600160a060020a038216600090815260086020526040812054819081908190819086111561114957600080fd5b859450611155856110b0565b9350611162846005610e95565b925061116e8484610eac565b915061117c60045486610eac565b600455600160a060020a0387166000908152600860205260409020546111a29086610eac565b600160a060020a038816600090815260086020908152604080832093909355600554600b9091529181208054928802680100000000000000008602019283900390556004549192509011156112195761121560055460045468010000000000000000860281151561120f57fe5b04611266565b6005555b86600160a060020a03167ffdc3ec2b461920643ca94d52f94edc644fb20b5b3ba5ffb8b0c82734015f1009868460405191825260208201526040908101905180910390a250505050505050565b600082820183811015610a6057fe5b6000808080600160a060020a038616151561128f57600080fd5b600160a060020a0387166000908152600860205260409020548590108015906112d25750600160a060020a03861660009081526008602052604090205485810110155b15156112dd57600080fd5b600160a060020a03871660009081526008602052604090205485111561130257600080fd5b600061130f886001611497565b111561131e5761131e87610f56565b611329856005610e95565b92506113358584610eac565b9150611340836110b0565b905061134e60045484610eac565b600455600160a060020a0387166000908152600860205260409020546113749086610eac565b600160a060020a0380891660009081526008602052604080822093909355908816815220546113a39083611266565b600160a060020a0387811660008181526008602090815260408083209590955560058054948d168352600b9091528482208054948b02909403909355825491815292909220805492850290920190915554600454611411919068010000000000000000840281151561120f57fe5b600555600160a060020a038087169088167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060019695505050505050565b80600260018201045b8181101561084a57809150600281828581151561148457fe5b040181151561148f57fe5b04905061146b565b6000816114ac576114a7836105dc565b610a60565b600160a060020a0383166000908152600960205260409020546114ce846105dc565b019392505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061152957805160ff1916838001178555611556565b82800160010185558215611556579182015b8281111561155657825182559160200191906001019061153b565b50610940926106d89250905b8082111561094057600081556001016115625600a165627a7a723058208adcaf2fa26e4797573d4496350dcc1de66ea7cd8106c9a701534d919ee332ab0029
Swarm Source
bzzr://8adcaf2fa26e4797573d4496350dcc1de66ea7cd8106c9a701534d919ee332ab
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.