ERC-20
Overview
Max Total Supply
668,907.57040367067473 MRV
Holders
40
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MRVToken
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
Yes with 0 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-07-09 */ pragma solidity ^0.4.11; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) constant returns (uint256); function transfer(address to, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) constant returns (uint256); function transferFrom(address from, address to, uint256 value); function approve(address spender, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * Math operations with safety checks */ library SafeMath { function mul(uint256 a, uint256 b) internal returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); 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) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal returns (uint256) { uint256 c = a + b; assert(c >= a); 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; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev Fix for the ERC20 short address attack. */ modifier onlyPayloadSize(uint256 size) { if(msg.data.length < size + 4) { throw; } _; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } } /** * @title Standard ERC20 token * * @dev Implemantation of the basic standart token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is BasicToken, ERC20 { mapping (address => mapping (address => uint256)) allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amout of tokens to be transfered */ function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) { 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); } /** * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender. * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ 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); } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifing the amount of tokens still avaible for the spender. */ function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { if (msg.sender != owner) { throw; } _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { if (newOwner != address(0)) { owner = newOwner; } } } /** * @title Contracts that should not own Tokens * @author Remco Bloemen <remco@2π.com> * @dev This blocks incoming ERC23 tokens to prevent accidental loss of tokens. * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the * owner to reclaim the tokens. */ contract HasNoTokens is Ownable { /** * @dev Reject all ERC23 compatible tokens * @param from_ address The address that is transferring the tokens * @param value_ uint256 the amount of the specified token * @param data_ Bytes The data passed from the caller. */ function tokenFallback(address from_, uint256 value_, bytes data_) external { throw; } /** * @dev Reclaim all ERC20Basic compatible tokens * @param tokenAddr address The address of the token contract */ function reclaimToken(address tokenAddr) external onlyOwner { ERC20Basic tokenInst = ERC20Basic(tokenAddr); uint256 balance = tokenInst.balanceOf(this); tokenInst.transfer(owner, balance); } } /** * @title Contracts that should not own Contracts * @author Remco Bloemen <remco@2π.com> * @dev Should contracts (anything Ownable) end up being owned by this contract, it allows the owner * of this contract to reclaim ownership of the contracts. */ contract HasNoContracts is Ownable { /** * @dev Reclaim ownership of Ownable contracts * @param contractAddr The address of the Ownable to be reclaimed. */ function reclaimContract(address contractAddr) external onlyOwner { Ownable contractInst = Ownable(contractAddr); contractInst.transferOwnership(owner); } } /** * MRV token, distributed by crowdsale. Token and crowdsale functionality are unified in a single * contract, to make clear and restrict the conditions under which tokens can be created or destroyed. * Derived from OpenZeppelin CrowdsaleToken template. * * Key Crowdsale Facts: * * * MRV tokens will be sold at a rate of 5,000 per ETH. * * * All MRV token sales are final. No refunds can be issued by the contract. * * * Unless adjusted later by the crowdsale operator, up to 100 million tokens will be available. * * * An additional 5,000 tokens are reserved. * * * Participate in the crowdsale by sending ETH to this contract, when the crowdsale is open. * * * Sending more ETH than required to purchase all the remaining tokens will fail. * * * Timers can be set to allow anyone to open/close the crowdsale at the proper time. The crowdsale * operator reserves the right to set, unset, and reset these timers at any time, for any reason, * and without notice. * * * The operator of the crowdsale has the ability to manually open it and close it, and reserves * the right to do so at any time, for any reason, and without notice. * * * The crowdsale cannot be reopened, and no tokens can be created, after the crowdsale closes. * * * The crowdsale operator reserves the right to adjust the decimal places of the MRV token at * any time after the crowdsale closes, for any reason, and without notice. MRV tokens are * initially divisible to 18 decimal places. * * * The crowdsale operator reserves the right to not open or close the crowdsale, not set the * open or close timer, and generally refrain from doing things that the contract would otherwise * authorize them to do. * * * The crowdsale operator reserves the right to claim and keep any ETH or tokens that end up in * the contract's account. During normal crowdsale operation, ETH is not stored in the contract's * account, and is instead sent directly to the beneficiary. */ contract MRVToken is StandardToken, Ownable, HasNoTokens, HasNoContracts { // Token Parameters // From StandardToken we inherit balances and totalSupply. // What is the full name of the token? string public constant name = "Macroverse Token"; // What is its suggested symbol? string public constant symbol = "MRV"; // How many of the low base-10 digits are to the right of the decimal point? // Note that this is not constant! After the crowdsale, the contract owner can // adjust the decimal places, allowing for 10-to-1 splits and merges. uint8 public decimals; // Crowdsale Parameters // Where will funds collected during the crowdsale be sent? address beneficiary; // How many MRV can be sold in the crowdsale? uint public maxCrowdsaleSupplyInWholeTokens; // How many whole tokens are reserved for the beneficiary? uint public constant wholeTokensReserved = 5000; // How many tokens per ETH during the crowdsale? uint public constant wholeTokensPerEth = 5000; // Set to true when the crowdsale starts // Internal flag. Use isCrowdsaleActive instead(). bool crowdsaleStarted; // Set to true when the crowdsale ends // Internal flag. Use isCrowdsaleActive instead(). bool crowdsaleEnded; // We can also set some timers to open and close the crowdsale. 0 = timer is not set. // After this time, the crowdsale will open with a call to checkOpenTimer(). uint public openTimer = 0; // After this time, no contributions will be accepted, and the crowdsale will close with a call to checkCloseTimer(). uint public closeTimer = 0; //////////// // Constructor //////////// /** * Deploy a new MRVToken contract, paying crowdsale proceeds to the given address, * and awarding reserved tokens to the other given address. */ function MRVToken(address sendProceedsTo, address sendTokensTo) { // Proceeds of the crowdsale go here. beneficiary = sendProceedsTo; // Start with 18 decimals, same as ETH decimals = 18; // Initially, the reserved tokens belong to the given address. totalSupply = wholeTokensReserved * 10 ** 18; balances[sendTokensTo] = totalSupply; // Initially the crowdsale has not yet started or ended. crowdsaleStarted = false; crowdsaleEnded = false; // Default to a max supply of 100 million tokens available. maxCrowdsaleSupplyInWholeTokens = 100000000; } //////////// // Fallback function //////////// /** * This is the MAIN CROWDSALE ENTRY POINT. You participate in the crowdsale by * sending ETH to this contract. That calls this function, which credits tokens * to the address or contract that sent the ETH. * * Since MRV tokens are sold at a rate of more than one per ether, and since * they, like ETH, have 18 decimal places (at the time of sale), any fractional * amount of ETH should be handled safely. * * Note that all orders are fill-or-kill. If you send in more ether than there are * tokens remaining to be bought, your transaction will be rolled back and you will * get no tokens and waste your gas. */ function() payable onlyDuringCrowdsale { createTokens(msg.sender); } //////////// // Events //////////// // Fired when the crowdsale is recorded as started. event CrowdsaleOpen(uint time); // Fired when someone contributes to the crowdsale and buys MRV event TokenPurchase(uint time, uint etherAmount, address from); // Fired when the crowdsale is recorded as ended. event CrowdsaleClose(uint time); // Fired when the decimal point moves event DecimalChange(uint8 newDecimals); //////////// // Modifiers (encoding important crowdsale logic) //////////// /** * Only allow some actions before the crowdsale closes, whether it's open or not. */ modifier onlyBeforeClosed { checkCloseTimer(); if (crowdsaleEnded) throw; _; } /** * Only allow some actions after the crowdsale is over. * Will set the crowdsale closed if it should be. */ modifier onlyAfterClosed { checkCloseTimer(); if (!crowdsaleEnded) throw; _; } /** * Only allow some actions before the crowdsale starts. */ modifier onlyBeforeOpened { checkOpenTimer(); if (crowdsaleStarted) throw; _; } /** * Only allow some actions while the crowdsale is active. * Will set the crowdsale open if it should be. */ modifier onlyDuringCrowdsale { checkOpenTimer(); checkCloseTimer(); if (crowdsaleEnded) throw; if (!crowdsaleStarted) throw; _; } //////////// // Status and utility functions //////////// /** * Determine if the crowdsale should open by timer. */ function openTimerElapsed() constant returns (bool) { return (openTimer != 0 && now > openTimer); } /** * Determine if the crowdsale should close by timer. */ function closeTimerElapsed() constant returns (bool) { return (closeTimer != 0 && now > closeTimer); } /** * If the open timer has elapsed, start the crowdsale. * Can be called by people, but also gets called when people try to contribute. */ function checkOpenTimer() { if (openTimerElapsed()) { crowdsaleStarted = true; openTimer = 0; CrowdsaleOpen(now); } } /** * If the close timer has elapsed, stop the crowdsale. */ function checkCloseTimer() { if (closeTimerElapsed()) { crowdsaleEnded = true; closeTimer = 0; CrowdsaleClose(now); } } /** * Determine if the crowdsale is currently happening. */ function isCrowdsaleActive() constant returns (bool) { // The crowdsale is happening if it is open or due to open, and it isn't closed or due to close. return ((crowdsaleStarted || openTimerElapsed()) && !(crowdsaleEnded || closeTimerElapsed())); } //////////// // Before the crowdsale: configuration //////////// /** * Before the crowdsale opens, the max token count can be configured. */ function setMaxSupply(uint newMaxInWholeTokens) onlyOwner onlyBeforeOpened { maxCrowdsaleSupplyInWholeTokens = newMaxInWholeTokens; } /** * Allow the owner to start the crowdsale manually. */ function openCrowdsale() onlyOwner onlyBeforeOpened { crowdsaleStarted = true; openTimer = 0; CrowdsaleOpen(now); } /** * Let the owner start the timer for the crowdsale start. Without further owner intervention, * anyone will be able to open the crowdsale when the timer expires. * Further calls will re-set the timer to count from the time the transaction is processed. * The timer can be re-set after it has tripped, unless someone has already opened the crowdsale. */ function setCrowdsaleOpenTimerFor(uint minutesFromNow) onlyOwner onlyBeforeOpened { openTimer = now + minutesFromNow * 1 minutes; } /** * Let the owner stop the crowdsale open timer, as long as the crowdsale has not yet opened. */ function clearCrowdsaleOpenTimer() onlyOwner onlyBeforeOpened { openTimer = 0; } /** * Let the owner start the timer for the crowdsale end. Counts from when the function is called, * *not* from the start of the crowdsale. * It is possible, but a bad idea, to set this before the open timer. */ function setCrowdsaleCloseTimerFor(uint minutesFromNow) onlyOwner onlyBeforeClosed { closeTimer = now + minutesFromNow * 1 minutes; } /** * Let the owner stop the crowdsale close timer, as long as it has not yet expired. */ function clearCrowdsaleCloseTimer() onlyOwner onlyBeforeClosed { closeTimer = 0; } //////////// // During the crowdsale //////////// /** * Create tokens for the given address, in response to a payment. * Cannot be called by outside callers; use the fallback function, which will create tokens for whoever pays it. */ function createTokens(address recipient) internal onlyDuringCrowdsale { if (msg.value == 0) { throw; } uint tokens = msg.value.mul(wholeTokensPerEth); // Exploits the fact that we have 18 decimals, like ETH. var newTotalSupply = totalSupply.add(tokens); if (newTotalSupply > (wholeTokensReserved + maxCrowdsaleSupplyInWholeTokens) * 10 ** 18) { // This would be too many tokens issued. // Don't mess around with partial order fills. throw; } // Otherwise, we can fill the order entirely, so make the tokens and put them in the specified account. totalSupply = newTotalSupply; balances[recipient] = balances[recipient].add(tokens); // Announce the purchase TokenPurchase(now, msg.value, recipient); // Lastly (after all state changes), send the money to the crowdsale beneficiary. // This allows the crowdsale contract itself not to hold any ETH. // It also means that ALL SALES ARE FINAL! if (!beneficiary.send(msg.value)) { throw; } } /** * Allow the owner to end the crowdsale manually. */ function closeCrowdsale() onlyOwner onlyDuringCrowdsale { crowdsaleEnded = true; closeTimer = 0; CrowdsaleClose(now); } //////////// // After the crowdsale: token maintainance //////////// /** * When the crowdsale is finished, the contract owner may adjust the decimal places for display purposes. * This should work like a 10-to-1 split or reverse-split. * The point of this mechanism is to keep the individual MRV tokens from getting inconveniently valuable or cheap. * However, it relies on the contract owner taking the time to update the decimal place value. * Note that this changes the decimals IMMEDIATELY with NO NOTICE to users. */ function setDecimals(uint8 newDecimals) onlyOwner onlyAfterClosed { decimals = newDecimals; // Announce the change DecimalChange(decimals); } /** * If Ether somehow manages to get into this contract, provide a way to get it out again. * During normal crowdsale operation, ETH is immediately forwarded to the beneficiary. */ function reclaimEther() external onlyOwner { // Send the ETH. Make sure it worked. assert(owner.send(this.balance)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"isCrowdsaleActive","outputs":[{"name":"","type":"bool"}],"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":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"clearCrowdsaleCloseTimer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"tokenAddr","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"checkCloseTimer","outputs":[],"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":false,"inputs":[],"name":"openCrowdsale","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"contractAddr","type":"address"}],"name":"reclaimContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxCrowdsaleSupplyInWholeTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"wholeTokensPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"closeTimer","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"clearCrowdsaleOpenTimer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newMaxInWholeTokens","type":"uint256"}],"name":"setMaxSupply","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"minutesFromNow","type":"uint256"}],"name":"setCrowdsaleOpenTimerFor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newDecimals","type":"uint8"}],"name":"setDecimals","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"closeTimerElapsed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"wholeTokensReserved","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":"openTimer","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":"closeCrowdsale","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"reclaimEther","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"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":false,"inputs":[],"name":"checkOpenTimer","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":false,"inputs":[{"name":"minutesFromNow","type":"uint256"}],"name":"setCrowdsaleCloseTimerFor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"openTimerElapsed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"sendProceedsTo","type":"address"},{"name":"sendTokensTo","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"time","type":"uint256"}],"name":"CrowdsaleOpen","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"time","type":"uint256"},{"indexed":false,"name":"etherAmount","type":"uint256"},{"indexed":false,"name":"from","type":"address"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"time","type":"uint256"}],"name":"CrowdsaleClose","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newDecimals","type":"uint8"}],"name":"DecimalChange","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"}]
Contract Creation Code
606060405260006007556000600855341561001657fe5b6040516040806113258339810160405280516020909101515b5b60038054600160a060020a03191633600160a060020a03161790555b60048054600160a060020a031916600160a060020a03848116919091179091556003805460a060020a60ff0219167412000000000000000000000000000000000000000017905569010f0cf064dd592000006000818155918316825260016020526040909120556006805461ffff191690556305f5e1006005555b50505b61124c806100d96000396000f300606060405236156101855763ffffffff60e060020a6000350416630118e68681146101d057806306fdde03146101f4578063095ea7b3146102845780630d051c52146102a557806317ffc320146102b757806318160ddd146102d55780631f4425f3146102f757806323b872dd1461030957806328ef6f40146103305780632aed7f3f14610342578063313ce56714610360578063346fc0dd146103865780634e15dfe9146103a85780635da24f90146103ca5780636d6e2710146103ec5780636f8b44b0146103fe57806370a082311461041357806379d220ae146104415780637a1395aa1461045657806380f4531f1461046e5780638490d598146103a85780638da5cb5b146104b457806392f351f9146104e057806395d89b4114610502578063983c0a01146105925780639f727c27146105a4578063a9059cbb146105b6578063c0ee0b8a146105d7578063dd3260fc14610605578063dd62ed3e14610617578063e330a7371461064b578063ea66363114610660578063f2fde38b14610684575b6101ce5b6101916106a2565b6101996106e6565b600654610100900460ff16156101af5760006000fd5b60065460ff1615156101c15760006000fd5b6101ca3361072c565b5b5b565b005b34156101d857fe5b6101e0610882565b604080519115158252519081900360200190f35b34156101fc57fe5b6102046108c3565b60408051602080825283518183015283519192839290830191850190808383821561024a575b80518252602083111561024a57601f19909201916020918201910161022a565b505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028c57fe5b6101ce600160a060020a03600435166024356108f0565b005b34156102ad57fe5b6101ce610990565b005b34156102bf57fe5b6101ce600160a060020a03600435166109d4565b005b34156102dd57fe5b6102e5610ad9565b60408051918252519081900360200190f35b34156102ff57fe5b6101ce6106e6565b005b341561031157fe5b6101ce600160a060020a0360043581169060243516604435610adf565b005b341561033857fe5b6101ce610bf1565b005b341561034a57fe5b6101ce600160a060020a0360043516610c5e565b005b341561036857fe5b610370610ce2565b6040805160ff9092168252519081900360200190f35b341561038e57fe5b6102e5610cf2565b60408051918252519081900360200190f35b34156103b057fe5b6102e5610cf8565b60408051918252519081900360200190f35b34156103d257fe5b6102e5610cfe565b60408051918252519081900360200190f35b34156103f457fe5b6101ce610d04565b005b341561040657fe5b6101ce600435610d43565b005b341561041b57fe5b6102e5600160a060020a0360043516610d83565b60408051918252519081900360200190f35b341561044957fe5b6101ce600435610da2565b005b341561045e57fe5b6101ce60ff60043516610de6565b005b341561047657fe5b6101e0610e83565b604080519115158252519081900360200190f35b34156103b057fe5b6102e5610cf8565b60408051918252519081900360200190f35b34156104bc57fe5b6104c4610ea5565b60408051600160a060020a039092168252519081900360200190f35b34156104e857fe5b6102e5610eb4565b60408051918252519081900360200190f35b341561050a57fe5b610204610eba565b60408051602080825283518183015283519192839290830191850190808383821561024a575b80518252602083111561024a57601f19909201916020918201910161022a565b505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561059a57fe5b6101ce610eda565b005b34156105ac57fe5b6101ce610f68565b005b34156105be57fe5b6101ce600160a060020a0360043516602435610fba565b005b34156105df57fe5b6101ce60048035600160a060020a0316906024803591604435918201910135611076565b005b341561060d57fe5b6101ce6106a2565b005b341561061f57fe5b6102e5600160a060020a0360043581169060243516611082565b60408051918252519081900360200190f35b341561065357fe5b6101ce6004356110af565b005b341561066857fe5b6101e06110f8565b604080519115158252519081900360200190f35b341561068c57fe5b6101ce600160a060020a0360043516611114565b005b6106aa6110f8565b156101ca576006805460ff1916600117905560006007556040805142815290516000805160206111e18339815191529181900360200190a15b5b565b6106ee610e83565b156101ca576006805461ff00191661010017905560006008556040805142815290516000805160206112018339815191529181900360200190a15b5b565b600060006107386106a2565b6107406106e6565b600654610100900460ff16156107565760006000fd5b60065460ff1615156107685760006000fd5b3415156107755760006000fd5b6107873461138863ffffffff61116016565b60005490925061079d908363ffffffff61118f16565b905060055461138801670de0b6b3a7640000028111156107bd5760006000fd5b6000818155600160a060020a0384168152600160205260409020546107e8908363ffffffff61118f16565b600160a060020a038416600081815260016020908152604091829020939093558051428152349381019390935282810191909152517fd240e127ddfc99c27bdd1c45b264d1954a1e2bdb17a4c37e81586fd1412882619181900360600190a1600454604051600160a060020a03909116903480156108fc02916000818181858888f19350505050151561087b5760006000fd5b5b5b505050565b60065460009060ff168061089957506108996110f8565b5b80156108bd5750600654610100900460ff16806108ba57506108ba610e83565b5b155b90505b90565b6040805180820190915260108152608160020a6f26b0b1b937bb32b939b2902a37b5b2b702602082015281565b80158015906109235750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b1561092e5760006000fd5b600160a060020a03338116600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60035433600160a060020a039081169116146109ac5760006000fd5b6109b46106e6565b600654610100900460ff16156109ca5760006000fd5b60006008555b5b5b565b600354600090819033600160a060020a039081169116146109f55760006000fd5b82915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1515610a5857fe5b6102c65a03f11515610a6657fe5b505060408051805160035460e060020a63a9059cbb028352600160a060020a039081166004840152602483018290529251909450918516925063a9059cbb91604480830192600092919082900301818387803b1515610ac157fe5b6102c65a03f11515610acf57fe5b5050505b5b505050565b60005481565b600060606064361015610af25760006000fd5b600160a060020a038086166000908152600260209081526040808320338516845282528083205493881683526001909152902054909250610b39908463ffffffff61118f16565b600160a060020a038086166000908152600160205260408082209390935590871681522054610b6e908463ffffffff6111a916565b600160a060020a038616600090815260016020526040902055610b97828463ffffffff6111a916565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391926000805160206111c1833981519152929181900390910190a35b5b5050505050565b60035433600160a060020a03908116911614610c0d5760006000fd5b610c156106a2565b60065460ff1615610c265760006000fd5b6006805460ff1916600117905560006007556040805142815290516000805160206111e18339815191529181900360200190a15b5b5b565b60035460009033600160a060020a03908116911614610c7d5760006000fd5b506003546040805160e060020a63f2fde38b028152600160a060020a0392831660048201529051839283169163f2fde38b91602480830192600092919082900301818387803b1515610ccb57fe5b6102c65a03f11515610be957fe5b5050505b5b5050565b60035460a060020a900460ff1681565b60055481565b61138881565b60085481565b60035433600160a060020a03908116911614610d205760006000fd5b610d286106a2565b60065460ff1615610d395760006000fd5b60006007555b5b5b565b60035433600160a060020a03908116911614610d5f5760006000fd5b610d676106a2565b60065460ff1615610d785760006000fd5b60058190555b5b5b50565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a03908116911614610dbe5760006000fd5b610dc66106a2565b60065460ff1615610dd75760006000fd5b42603c8202016007555b5b5b50565b60035433600160a060020a03908116911614610e025760006000fd5b610e0a6106e6565b600654610100900460ff161515610e215760006000fd5b6003805460ff80841660a060020a90810260a060020a60ff02199093169290921792839055604080519290930416815290517fed6150ec960548590c920ded6ef554ec9e451dd7b4c85f62fb3760812cd72cf19181900360200190a15b5b5b50565b60006008546000141580156108bd575060085442115b90505b90565b61138881565b600354600160a060020a031681565b60075481565b604080518082019091526003815260e960020a6226a92b02602082015281565b60035433600160a060020a03908116911614610ef65760006000fd5b610efe6106a2565b610f066106e6565b600654610100900460ff1615610f1c5760006000fd5b60065460ff161515610f2e5760006000fd5b6006805461ff00191661010017905560006008556040805142815290516000805160206112018339815191529181900360200190a15b5b5b565b60035433600160a060020a03908116911614610f845760006000fd5b600354604051600160a060020a039182169130163180156108fc02916000818181858888f1935050505015156101ca57fe5b5b5b565b60406044361015610fcb5760006000fd5b600160a060020a033316600090815260016020526040902054610ff4908363ffffffff6111a916565b600160a060020a033381166000908152600160205260408082209390935590851681522054611029908363ffffffff61118f16565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316926000805160206111c183398151915292918290030190a35b5b505050565b60006000fd5b50505050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a039081169116146110cb5760006000fd5b6110d36106e6565b600654610100900460ff16156110e95760006000fd5b42603c8202016008555b5b5b50565b60006007546000141580156108bd575060075442115b90505b90565b60035433600160a060020a039081169116146111305760006000fd5b600160a060020a03811615610d7e5760038054600160a060020a031916600160a060020a0383161790555b5b5b50565b600082820283158061117c575082848281151561117957fe5b04145b151561118457fe5b8091505b5092915050565b60008282018381101561118457fe5b8091505b5092915050565b6000828211156111b557fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff82aa3c8d92a1044b702b0c9718bd99d353a4a85a215bdb4fe6c6a04b5f541e099424d4740b41446c45fa894e3dda8489b8ef8df8a37f8035f83053ed26485c1a165627a7a72305820a1d08cff3a53f7480b65b490dddab528eb3bafbfea76c8a1e26aa85bd6b3655100290000000000000000000000002fe5bdc68d73b1f570b97422021a0c9cdccae79f000000000000000000000000368651f6c2b3a7174ac30a5a062b65f2342fb6f1
Deployed Bytecode
0x606060405236156101855763ffffffff60e060020a6000350416630118e68681146101d057806306fdde03146101f4578063095ea7b3146102845780630d051c52146102a557806317ffc320146102b757806318160ddd146102d55780631f4425f3146102f757806323b872dd1461030957806328ef6f40146103305780632aed7f3f14610342578063313ce56714610360578063346fc0dd146103865780634e15dfe9146103a85780635da24f90146103ca5780636d6e2710146103ec5780636f8b44b0146103fe57806370a082311461041357806379d220ae146104415780637a1395aa1461045657806380f4531f1461046e5780638490d598146103a85780638da5cb5b146104b457806392f351f9146104e057806395d89b4114610502578063983c0a01146105925780639f727c27146105a4578063a9059cbb146105b6578063c0ee0b8a146105d7578063dd3260fc14610605578063dd62ed3e14610617578063e330a7371461064b578063ea66363114610660578063f2fde38b14610684575b6101ce5b6101916106a2565b6101996106e6565b600654610100900460ff16156101af5760006000fd5b60065460ff1615156101c15760006000fd5b6101ca3361072c565b5b5b565b005b34156101d857fe5b6101e0610882565b604080519115158252519081900360200190f35b34156101fc57fe5b6102046108c3565b60408051602080825283518183015283519192839290830191850190808383821561024a575b80518252602083111561024a57601f19909201916020918201910161022a565b505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028c57fe5b6101ce600160a060020a03600435166024356108f0565b005b34156102ad57fe5b6101ce610990565b005b34156102bf57fe5b6101ce600160a060020a03600435166109d4565b005b34156102dd57fe5b6102e5610ad9565b60408051918252519081900360200190f35b34156102ff57fe5b6101ce6106e6565b005b341561031157fe5b6101ce600160a060020a0360043581169060243516604435610adf565b005b341561033857fe5b6101ce610bf1565b005b341561034a57fe5b6101ce600160a060020a0360043516610c5e565b005b341561036857fe5b610370610ce2565b6040805160ff9092168252519081900360200190f35b341561038e57fe5b6102e5610cf2565b60408051918252519081900360200190f35b34156103b057fe5b6102e5610cf8565b60408051918252519081900360200190f35b34156103d257fe5b6102e5610cfe565b60408051918252519081900360200190f35b34156103f457fe5b6101ce610d04565b005b341561040657fe5b6101ce600435610d43565b005b341561041b57fe5b6102e5600160a060020a0360043516610d83565b60408051918252519081900360200190f35b341561044957fe5b6101ce600435610da2565b005b341561045e57fe5b6101ce60ff60043516610de6565b005b341561047657fe5b6101e0610e83565b604080519115158252519081900360200190f35b34156103b057fe5b6102e5610cf8565b60408051918252519081900360200190f35b34156104bc57fe5b6104c4610ea5565b60408051600160a060020a039092168252519081900360200190f35b34156104e857fe5b6102e5610eb4565b60408051918252519081900360200190f35b341561050a57fe5b610204610eba565b60408051602080825283518183015283519192839290830191850190808383821561024a575b80518252602083111561024a57601f19909201916020918201910161022a565b505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561059a57fe5b6101ce610eda565b005b34156105ac57fe5b6101ce610f68565b005b34156105be57fe5b6101ce600160a060020a0360043516602435610fba565b005b34156105df57fe5b6101ce60048035600160a060020a0316906024803591604435918201910135611076565b005b341561060d57fe5b6101ce6106a2565b005b341561061f57fe5b6102e5600160a060020a0360043581169060243516611082565b60408051918252519081900360200190f35b341561065357fe5b6101ce6004356110af565b005b341561066857fe5b6101e06110f8565b604080519115158252519081900360200190f35b341561068c57fe5b6101ce600160a060020a0360043516611114565b005b6106aa6110f8565b156101ca576006805460ff1916600117905560006007556040805142815290516000805160206111e18339815191529181900360200190a15b5b565b6106ee610e83565b156101ca576006805461ff00191661010017905560006008556040805142815290516000805160206112018339815191529181900360200190a15b5b565b600060006107386106a2565b6107406106e6565b600654610100900460ff16156107565760006000fd5b60065460ff1615156107685760006000fd5b3415156107755760006000fd5b6107873461138863ffffffff61116016565b60005490925061079d908363ffffffff61118f16565b905060055461138801670de0b6b3a7640000028111156107bd5760006000fd5b6000818155600160a060020a0384168152600160205260409020546107e8908363ffffffff61118f16565b600160a060020a038416600081815260016020908152604091829020939093558051428152349381019390935282810191909152517fd240e127ddfc99c27bdd1c45b264d1954a1e2bdb17a4c37e81586fd1412882619181900360600190a1600454604051600160a060020a03909116903480156108fc02916000818181858888f19350505050151561087b5760006000fd5b5b5b505050565b60065460009060ff168061089957506108996110f8565b5b80156108bd5750600654610100900460ff16806108ba57506108ba610e83565b5b155b90505b90565b6040805180820190915260108152608160020a6f26b0b1b937bb32b939b2902a37b5b2b702602082015281565b80158015906109235750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b1561092e5760006000fd5b600160a060020a03338116600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60035433600160a060020a039081169116146109ac5760006000fd5b6109b46106e6565b600654610100900460ff16156109ca5760006000fd5b60006008555b5b5b565b600354600090819033600160a060020a039081169116146109f55760006000fd5b82915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1515610a5857fe5b6102c65a03f11515610a6657fe5b505060408051805160035460e060020a63a9059cbb028352600160a060020a039081166004840152602483018290529251909450918516925063a9059cbb91604480830192600092919082900301818387803b1515610ac157fe5b6102c65a03f11515610acf57fe5b5050505b5b505050565b60005481565b600060606064361015610af25760006000fd5b600160a060020a038086166000908152600260209081526040808320338516845282528083205493881683526001909152902054909250610b39908463ffffffff61118f16565b600160a060020a038086166000908152600160205260408082209390935590871681522054610b6e908463ffffffff6111a916565b600160a060020a038616600090815260016020526040902055610b97828463ffffffff6111a916565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391926000805160206111c1833981519152929181900390910190a35b5b5050505050565b60035433600160a060020a03908116911614610c0d5760006000fd5b610c156106a2565b60065460ff1615610c265760006000fd5b6006805460ff1916600117905560006007556040805142815290516000805160206111e18339815191529181900360200190a15b5b5b565b60035460009033600160a060020a03908116911614610c7d5760006000fd5b506003546040805160e060020a63f2fde38b028152600160a060020a0392831660048201529051839283169163f2fde38b91602480830192600092919082900301818387803b1515610ccb57fe5b6102c65a03f11515610be957fe5b5050505b5b5050565b60035460a060020a900460ff1681565b60055481565b61138881565b60085481565b60035433600160a060020a03908116911614610d205760006000fd5b610d286106a2565b60065460ff1615610d395760006000fd5b60006007555b5b5b565b60035433600160a060020a03908116911614610d5f5760006000fd5b610d676106a2565b60065460ff1615610d785760006000fd5b60058190555b5b5b50565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a03908116911614610dbe5760006000fd5b610dc66106a2565b60065460ff1615610dd75760006000fd5b42603c8202016007555b5b5b50565b60035433600160a060020a03908116911614610e025760006000fd5b610e0a6106e6565b600654610100900460ff161515610e215760006000fd5b6003805460ff80841660a060020a90810260a060020a60ff02199093169290921792839055604080519290930416815290517fed6150ec960548590c920ded6ef554ec9e451dd7b4c85f62fb3760812cd72cf19181900360200190a15b5b5b50565b60006008546000141580156108bd575060085442115b90505b90565b61138881565b600354600160a060020a031681565b60075481565b604080518082019091526003815260e960020a6226a92b02602082015281565b60035433600160a060020a03908116911614610ef65760006000fd5b610efe6106a2565b610f066106e6565b600654610100900460ff1615610f1c5760006000fd5b60065460ff161515610f2e5760006000fd5b6006805461ff00191661010017905560006008556040805142815290516000805160206112018339815191529181900360200190a15b5b5b565b60035433600160a060020a03908116911614610f845760006000fd5b600354604051600160a060020a039182169130163180156108fc02916000818181858888f1935050505015156101ca57fe5b5b5b565b60406044361015610fcb5760006000fd5b600160a060020a033316600090815260016020526040902054610ff4908363ffffffff6111a916565b600160a060020a033381166000908152600160205260408082209390935590851681522054611029908363ffffffff61118f16565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316926000805160206111c183398151915292918290030190a35b5b505050565b60006000fd5b50505050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a039081169116146110cb5760006000fd5b6110d36106e6565b600654610100900460ff16156110e95760006000fd5b42603c8202016008555b5b5b50565b60006007546000141580156108bd575060075442115b90505b90565b60035433600160a060020a039081169116146111305760006000fd5b600160a060020a03811615610d7e5760038054600160a060020a031916600160a060020a0383161790555b5b5b50565b600082820283158061117c575082848281151561117957fe5b04145b151561118457fe5b8091505b5092915050565b60008282018381101561118457fe5b8091505b5092915050565b6000828211156111b557fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff82aa3c8d92a1044b702b0c9718bd99d353a4a85a215bdb4fe6c6a04b5f541e099424d4740b41446c45fa894e3dda8489b8ef8df8a37f8035f83053ed26485c1a165627a7a72305820a1d08cff3a53f7480b65b490dddab528eb3bafbfea76c8a1e26aa85bd6b365510029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002fe5bdc68d73b1f570b97422021a0c9cdccae79f000000000000000000000000368651f6c2b3a7174ac30a5a062b65f2342fb6f1
-----Decoded View---------------
Arg [0] : sendProceedsTo (address): 0x2FE5BdC68D73B1f570b97422021A0c9CdCCae79f
Arg [1] : sendTokensTo (address): 0x368651F6c2b3a7174ac30A5A062b65F2342Fb6F1
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002fe5bdc68d73b1f570b97422021a0c9cdccae79f
Arg [1] : 000000000000000000000000368651f6c2b3a7174ac30a5a062b65f2342fb6f1
Swarm Source
bzzr://a1d08cff3a53f7480b65b490dddab528eb3bafbfea76c8a1e26aa85bd6b36551
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.