Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,558 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Pause | 5804080 | 2445 days ago | IN | 0 ETH | 0.00002836 | ||||
Transfer Ownersh... | 5787124 | 2448 days ago | IN | 0 ETH | 0.00126435 | ||||
Send Tokens To | 5747411 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747407 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747406 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747404 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747402 | 2455 days ago | IN | 0 ETH | 0.00168305 | ||||
Send Tokens To | 5747394 | 2455 days ago | IN | 0 ETH | 0.00168678 | ||||
Send Tokens To | 5747392 | 2455 days ago | IN | 0 ETH | 0.00168678 | ||||
Send Tokens To | 5747390 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747388 | 2455 days ago | IN | 0 ETH | 0.00168678 | ||||
Send Tokens To | 5747387 | 2455 days ago | IN | 0 ETH | 0.00168678 | ||||
Send Tokens To | 5747382 | 2455 days ago | IN | 0 ETH | 0.00168678 | ||||
Send Tokens To | 5747380 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747378 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747376 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747375 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747372 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747370 | 2455 days ago | IN | 0 ETH | 0.00168678 | ||||
Send Tokens To | 5747369 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747367 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5747365 | 2455 days ago | IN | 0 ETH | 0.0016894 | ||||
Send Tokens To | 5742051 | 2456 days ago | IN | 0 ETH | 0.01432851 | ||||
Send Tokens To | 5742048 | 2456 days ago | IN | 0 ETH | 0.01432851 | ||||
Send Tokens To | 5742042 | 2456 days ago | IN | 0 ETH | 0.01433114 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TokenManager
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-05-13 */ pragma solidity ^0.4.21; // File: zeppelin-solidity/contracts/math/SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } // File: contracts/BonusStrategy.sol contract BonusStrategy { using SafeMath for uint; uint public defaultAmount = 1*10**18; uint public limit = 300*1000*10**18; // 300.000 DCNT uint public currentAmount = 0; uint[] public startTimes; uint[] public endTimes; uint[] public amounts; constructor( uint[] _startTimes, uint[] _endTimes, uint[] _amounts ) public { require(_startTimes.length == _endTimes.length && _endTimes.length == _amounts.length); startTimes = _startTimes; endTimes = _endTimes; amounts = _amounts; } function isStrategy() external pure returns (bool) { return true; } function getCurrentBonus() public view returns (uint bonus) { if (currentAmount >= limit) { currentAmount = currentAmount.add(defaultAmount); return defaultAmount; } for (uint8 i = 0; i < amounts.length; i++) { if (now >= startTimes[i] && now <= endTimes[i]) { bonus = amounts[i]; currentAmount = currentAmount.add(bonus); return bonus; } } currentAmount = currentAmount.add(defaultAmount); return defaultAmount; } } // File: zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } // File: zeppelin-solidity/contracts/token/ERC20/BasicToken.sol /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @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) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @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) public view returns (uint256) { return balances[_owner]; } } // File: zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is BasicToken { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { _burn(msg.sender, _value); } function _burn(address _who, uint256 _value) internal { require(_value <= balances[_who]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure balances[_who] = balances[_who].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(_who, _value); emit Transfer(_who, address(0), _value); } } // File: zeppelin-solidity/contracts/token/ERC20/ERC20.sol /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } // File: zeppelin-solidity/contracts/token/ERC20/StandardToken.sol /** * @title Standard ERC20 token * * @dev Implementation of the basic standard 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 ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal 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 amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @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 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } // File: contracts/InfoBurnableToken.sol contract InfoBurnableToken is BurnableToken, StandardToken { string message = "No sufficient funds"; address public manager; event NoFunds(address _who, string _message); modifier onlyManager() { require(msg.sender == manager); _; } constructor(address _manager) public { require(address(_manager) != 0); manager = _manager; } function burn(uint256 _value) public { if (balances[msg.sender] < _value){ emit NoFunds(msg.sender, message); }else { _burn(msg.sender, _value); } } function burnPassportToken(address _from, uint256 _value) onlyManager public returns (bool) { if (_value <= balances[_from]){ _burn(_from, _value); return true; } emit NoFunds(_from, message); return false; } function transferManager(address _newManager) onlyManager public returns (bool) { require(address(_newManager) != 0); manager = _newManager; return true; } } // File: contracts/DecenturionToken.sol contract DecenturionToken is InfoBurnableToken { using SafeMath for uint; string constant public name = "Decenturion Token"; string constant public symbol = "DCNT"; uint constant public decimals = 18; uint constant public deployerAmount = 20 * (10 ** 6) * (10 ** decimals); // 20 000 000 DCNT uint constant public managerAmount = 10 * (10 ** 6) * (10 ** decimals); // 10 000 000 DCNT constructor(address _manager) InfoBurnableToken(_manager) public { totalSupply_ = 30 * (10 ** 6) * (10 ** decimals); // 30 000 000 DCNT balances[msg.sender] = deployerAmount; balances[manager] = managerAmount; } } // File: zeppelin-solidity/contracts/ownership/Ownable.sol /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } // File: zeppelin-solidity/contracts/lifecycle/Pausable.sol /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } // File: contracts/TokenManager.sol contract TokenManager is Ownable, Pausable { using SafeMath for uint; uint public totalRegistrationBonusAmount = 0; uint public emissionTime; uint public tokensForBurn = 1*10**18; string public alreadyRegisteredMessage = "user already registered"; string public nullBonusMessage = "registration bonus = 0"; mapping (address=>bool) isRegistered; mapping (address=>bool) isTokensDistributed; BonusStrategy public bonusStrategy; DecenturionToken public token; event UserAlreadyRegistered(address user, string message); event TokensAlreadyDistributed(address user); constructor(BonusStrategy _bonusStrategy, uint _emissionTime) public { require(_bonusStrategy.isStrategy()); require(_emissionTime > now); bonusStrategy = _bonusStrategy; emissionTime = _emissionTime; } function() public payable { } function setTokenAddress(DecenturionToken _token) onlyOwner public returns (bool){ require(address(_token) != 0); token = _token; return true; } function distributeRegistrationBonus(address _recepient) onlyOwner whenNotPaused public returns (bool) { if (!isRegistered[_recepient]) { _distributeRegistrationBonus(_recepient); isRegistered[_recepient] = true; }else { emit UserAlreadyRegistered(_recepient, alreadyRegisteredMessage); return false; } return true; } function _distributeRegistrationBonus(address _recepient) internal returns (bool) { uint registrationBonus = bonusStrategy.getCurrentBonus(); totalRegistrationBonusAmount = totalRegistrationBonusAmount.add(registrationBonus); token.transfer(_recepient, registrationBonus); return true; } function distributeTokens(address _address, uint _totalEthBalance) onlyOwner whenNotPaused public returns (bool) { require(now >= emissionTime); if (isTokensDistributed[_address]){ emit TokensAlreadyDistributed(_address); return false; } uint decimals = 10**18; uint precision = 10**3; uint balance = _address.balance; uint stake = balance.div(_totalEthBalance); uint total = token.managerAmount().sub(totalRegistrationBonusAmount); uint emission = stake.mul(total).div(decimals).mul(precision); token.transfer(_address, emission); isTokensDistributed[_address] = true; return true; } function setEmissionTime(uint _time) onlyOwner whenNotPaused public returns (bool) { require(now <= _time); emissionTime = _time; return true; } function register(address _who) onlyOwner whenNotPaused public returns (bool) { if (isRegistered[_who]) { emit UserAlreadyRegistered(_who, alreadyRegisteredMessage); return false; } _distributeRegistrationBonus(_who); bool isBurned = token.burnPassportToken(_who, tokensForBurn); if (isBurned) { isRegistered[_who] = true; return true; }else{ return false; } } function sendTokensTo(address[] _users, uint _amount) onlyOwner whenNotPaused public { uint maxLength = 10; if (_users.length < maxLength) { maxLength = _users.length; } for (uint i = 0; i < maxLength; i++){ token.transfer(_users[i], _amount); } } function substituteManagerContract(address _newManager) onlyOwner whenNotPaused public { token.transferManager(_newManager); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_totalEthBalance","type":"uint256"}],"name":"distributeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensForBurn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"setTokenAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"alreadyRegisteredMessage","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonusStrategy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"}],"name":"register","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nullBonusMessage","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recepient","type":"address"}],"name":"distributeRegistrationBonus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newManager","type":"address"}],"name":"substituteManagerContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_users","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"sendTokensTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"setEmissionTime","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalRegistrationBonusAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emissionTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_bonusStrategy","type":"address"},{"name":"_emissionTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"message","type":"string"}],"name":"UserAlreadyRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"}],"name":"TokensAlreadyDistributed","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
6000805460a060020a60ff0219168155600155670de0b6b3a764000060035560c0604052601760808190527f7573657220616c7265616479207265676973746572656400000000000000000060a09081526200005f9160049190620001b4565b506040805180820190915260168082527f726567697374726174696f6e20626f6e7573203d2030000000000000000000006020909201918252620000a691600591620001b4565b50348015620000b457600080fd5b5060405160408062001315833981016040818152825160209384015160008054600160a060020a03191633600160a060020a039081169190911782557f0af72ad000000000000000000000000000000000000000000000000000000000865293519295919493861693630af72ad0936004808301949391928390030190829087803b1580156200014357600080fd5b505af115801562000158573d6000803e3d6000fd5b505050506040513d60208110156200016f57600080fd5b505115156200017d57600080fd5b4281116200018a57600080fd5b60088054600160a060020a031916600160a060020a03939093169290921790915560025562000259565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f757805160ff191683800117855562000227565b8280016001018555821562000227579182015b82811115620002275782518255916020019190600101906200020a565b506200023592915062000239565b5090565b6200025691905b8082111562000235576000815560010162000240565b90565b6110ac80620002696000396000f3006080604052600436106100ed5763ffffffff60e060020a600035041663158a498881146100ef5780631d7778561461012757806326a4e8d21461014e5780632b81b8a41461016f578063331fef86146101f95780633f4ba83a1461022a5780634420e4861461023f57806349ee39ba146102605780635c975abb14610275578063746abc791461028a57806383664dd3146102ab5780638456cb59146102cc5780638da5cb5b146102e15780639360b138146102f6578063d0286ab21461034d578063dd09e13c14610365578063f2fde38b1461037a578063fc0c546a1461039b578063fc860e96146103b0575b005b3480156100fb57600080fd5b50610113600160a060020a03600435166024356103c5565b604080519115158252519081900360200190f35b34801561013357600080fd5b5061013c61063d565b60408051918252519081900360200190f35b34801561015a57600080fd5b50610113600160a060020a0360043516610643565b34801561017b57600080fd5b506101846106a5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101be5781810151838201526020016101a6565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020557600080fd5b5061020e610733565b60408051600160a060020a039092168252519081900360200190f35b34801561023657600080fd5b506100ed610742565b34801561024b57600080fd5b50610113600160a060020a03600435166107bc565b34801561026c57600080fd5b506101846109c2565b34801561028157600080fd5b50610113610a1d565b34801561029657600080fd5b50610113600160a060020a0360043516610a2d565b3480156102b757600080fd5b506100ed600160a060020a0360043516610b82565b3480156102d857600080fd5b506100ed610c4b565b3480156102ed57600080fd5b5061020e610cca565b34801561030257600080fd5b50604080516020600480358082013583810280860185019096528085526100ed953695939460249493850192918291850190849080828437509497505093359450610cd99350505050565b34801561035957600080fd5b50610113600435610de6565b34801561037157600080fd5b5061013c610e2f565b34801561038657600080fd5b506100ed600160a060020a0360043516610e35565b3480156103a757600080fd5b5061020e610ecd565b3480156103bc57600080fd5b5061013c610edc565b6000805481908190819081908190819033600160a060020a039081169116146103ed57600080fd5b60005460a060020a900460ff161561040457600080fd5b60025442101561041357600080fd5b600160a060020a03891660009081526007602052604090205460ff16156104795760408051600160a060020a038b16815290517f03638cc1db195e36576ef0cb0cc4deba9342bf1a49d9627c397d1abb3fba744d9181900360200190a160009650610631565b670de0b6b3a764000095506103e89450600160a060020a0389163193506104a6848963ffffffff610ee216565b9250610539600154600960009054906101000a9004600160a060020a0316600160a060020a0316633c0960056040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505050506040513d602081101561052b57600080fd5b50519063ffffffff610ef916565b915061056b8561055f88610553878763ffffffff610f0b16565b9063ffffffff610ee216565b9063ffffffff610f0b16565b600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038d8116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156105dc57600080fd5b505af11580156105f0573d6000803e3d6000fd5b505050506040513d602081101561060657600080fd5b5050600160a060020a0389166000908152600760205260409020805460ff1916600190811790915596505b50505050505092915050565b60035481565b6000805433600160a060020a0390811691161461065f57600080fd5b600160a060020a038216151561067457600080fd5b506009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831617905560015b919050565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561072b5780601f106107005761010080835404028352916020019161072b565b820191906000526020600020905b81548152906001019060200180831161070e57829003601f168201915b505050505081565b600854600160a060020a031681565b60005433600160a060020a0390811691161461075d57600080fd5b60005460a060020a900460ff16151561077557600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60008054819033600160a060020a039081169116146107da57600080fd5b60005460a060020a900460ff16156107f157600080fd5b600160a060020a03831660009081526006602052604090205460ff16156108d95760408051600160a060020a03851681526020810182815260048054600260001961010060018416150201909116049383018490527f7acfe5b554939597a5c3f67d2fdf43b839d19eba2b540056fcb1a8d91b278be69387939192906060830190849080156108c15780601f10610896576101008083540402835291602001916108c1565b820191906000526020600020905b8154815290600101906020018083116108a457829003601f168201915b5050935050505060405180910390a1600091506109bc565b6108e283610f34565b50600954600354604080517f17dbe4f1000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301526024820193909352905191909216916317dbe4f19160448083019260209291908290030181600087803b15801561095657600080fd5b505af115801561096a573d6000803e3d6000fd5b505050506040513d602081101561098057600080fd5b5051905080156109b757600160a060020a0383166000908152600660205260409020805460ff1916600190811790915591506109bc565b600091505b50919050565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561072b5780601f106107005761010080835404028352916020019161072b565b60005460a060020a900460ff1681565b6000805433600160a060020a03908116911614610a4957600080fd5b60005460a060020a900460ff1615610a6057600080fd5b600160a060020a03821660009081526006602052604090205460ff161515610ab457610a8b82610f34565b50600160a060020a0382166000908152600660205260409020805460ff19166001179055610b7a565b60408051600160a060020a03841681526020810182815260048054600260001961010060018416150201909116049383018490527f7acfe5b554939597a5c3f67d2fdf43b839d19eba2b540056fcb1a8d91b278be6938693919290606083019084908015610b635780601f10610b3857610100808354040283529160200191610b63565b820191906000526020600020905b815481529060010190602001808311610b4657829003601f168201915b5050935050505060405180910390a15060006106a0565b506001919050565b60005433600160a060020a03908116911614610b9d57600080fd5b60005460a060020a900460ff1615610bb457600080fd5b600954604080517fba0e930a000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163ba0e930a9160248083019260209291908290030181600087803b158015610c1c57600080fd5b505af1158015610c30573d6000803e3d6000fd5b505050506040513d6020811015610c4657600080fd5b505050565b60005433600160a060020a03908116911614610c6657600080fd5b60005460a060020a900460ff1615610c7d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b60008054819033600160a060020a03908116911614610cf757600080fd5b60005460a060020a900460ff1615610d0e57600080fd5b600a91508184511015610d2057835191505b5060005b81811015610de0576009548451600160a060020a039091169063a9059cbb90869084908110610d4f57fe5b90602001906020020151856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b505050506040513d6020811015610dd657600080fd5b5050600101610d24565b50505050565b6000805433600160a060020a03908116911614610e0257600080fd5b60005460a060020a900460ff1615610e1957600080fd5b42821015610e2657600080fd5b50600255600190565b60015481565b60005433600160a060020a03908116911614610e5057600080fd5b600160a060020a0381161515610e6557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b60025481565b60008183811515610eef57fe5b0490505b92915050565b600082821115610f0557fe5b50900390565b6000821515610f1c57506000610ef3565b50818102818382811515610f2c57fe5b0414610ef357fe5b600080600860009054906101000a9004600160a060020a0316600160a060020a03166357e5eea56040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f8a57600080fd5b505af1158015610f9e573d6000803e3d6000fd5b505050506040513d6020811015610fb457600080fd5b5051600154909150610fcc908263ffffffff61107316565b600155600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b505050506040513d602081101561106857600080fd5b506001949350505050565b81810182811015610ef357fe00a165627a7a72305820dddd57e0036df4fa2f9dacd647983f6ce99d6bdc90be9ffd15dba16199db1419002900000000000000000000000065a1ebe2ad2edf944cb166c1045055fdfdc3d786000000000000000000000000000000000000000000000000000000005b60f800
Deployed Bytecode
0x6080604052600436106100ed5763ffffffff60e060020a600035041663158a498881146100ef5780631d7778561461012757806326a4e8d21461014e5780632b81b8a41461016f578063331fef86146101f95780633f4ba83a1461022a5780634420e4861461023f57806349ee39ba146102605780635c975abb14610275578063746abc791461028a57806383664dd3146102ab5780638456cb59146102cc5780638da5cb5b146102e15780639360b138146102f6578063d0286ab21461034d578063dd09e13c14610365578063f2fde38b1461037a578063fc0c546a1461039b578063fc860e96146103b0575b005b3480156100fb57600080fd5b50610113600160a060020a03600435166024356103c5565b604080519115158252519081900360200190f35b34801561013357600080fd5b5061013c61063d565b60408051918252519081900360200190f35b34801561015a57600080fd5b50610113600160a060020a0360043516610643565b34801561017b57600080fd5b506101846106a5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101be5781810151838201526020016101a6565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020557600080fd5b5061020e610733565b60408051600160a060020a039092168252519081900360200190f35b34801561023657600080fd5b506100ed610742565b34801561024b57600080fd5b50610113600160a060020a03600435166107bc565b34801561026c57600080fd5b506101846109c2565b34801561028157600080fd5b50610113610a1d565b34801561029657600080fd5b50610113600160a060020a0360043516610a2d565b3480156102b757600080fd5b506100ed600160a060020a0360043516610b82565b3480156102d857600080fd5b506100ed610c4b565b3480156102ed57600080fd5b5061020e610cca565b34801561030257600080fd5b50604080516020600480358082013583810280860185019096528085526100ed953695939460249493850192918291850190849080828437509497505093359450610cd99350505050565b34801561035957600080fd5b50610113600435610de6565b34801561037157600080fd5b5061013c610e2f565b34801561038657600080fd5b506100ed600160a060020a0360043516610e35565b3480156103a757600080fd5b5061020e610ecd565b3480156103bc57600080fd5b5061013c610edc565b6000805481908190819081908190819033600160a060020a039081169116146103ed57600080fd5b60005460a060020a900460ff161561040457600080fd5b60025442101561041357600080fd5b600160a060020a03891660009081526007602052604090205460ff16156104795760408051600160a060020a038b16815290517f03638cc1db195e36576ef0cb0cc4deba9342bf1a49d9627c397d1abb3fba744d9181900360200190a160009650610631565b670de0b6b3a764000095506103e89450600160a060020a0389163193506104a6848963ffffffff610ee216565b9250610539600154600960009054906101000a9004600160a060020a0316600160a060020a0316633c0960056040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505050506040513d602081101561052b57600080fd5b50519063ffffffff610ef916565b915061056b8561055f88610553878763ffffffff610f0b16565b9063ffffffff610ee216565b9063ffffffff610f0b16565b600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038d8116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156105dc57600080fd5b505af11580156105f0573d6000803e3d6000fd5b505050506040513d602081101561060657600080fd5b5050600160a060020a0389166000908152600760205260409020805460ff1916600190811790915596505b50505050505092915050565b60035481565b6000805433600160a060020a0390811691161461065f57600080fd5b600160a060020a038216151561067457600080fd5b506009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831617905560015b919050565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561072b5780601f106107005761010080835404028352916020019161072b565b820191906000526020600020905b81548152906001019060200180831161070e57829003601f168201915b505050505081565b600854600160a060020a031681565b60005433600160a060020a0390811691161461075d57600080fd5b60005460a060020a900460ff16151561077557600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60008054819033600160a060020a039081169116146107da57600080fd5b60005460a060020a900460ff16156107f157600080fd5b600160a060020a03831660009081526006602052604090205460ff16156108d95760408051600160a060020a03851681526020810182815260048054600260001961010060018416150201909116049383018490527f7acfe5b554939597a5c3f67d2fdf43b839d19eba2b540056fcb1a8d91b278be69387939192906060830190849080156108c15780601f10610896576101008083540402835291602001916108c1565b820191906000526020600020905b8154815290600101906020018083116108a457829003601f168201915b5050935050505060405180910390a1600091506109bc565b6108e283610f34565b50600954600354604080517f17dbe4f1000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301526024820193909352905191909216916317dbe4f19160448083019260209291908290030181600087803b15801561095657600080fd5b505af115801561096a573d6000803e3d6000fd5b505050506040513d602081101561098057600080fd5b5051905080156109b757600160a060020a0383166000908152600660205260409020805460ff1916600190811790915591506109bc565b600091505b50919050565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561072b5780601f106107005761010080835404028352916020019161072b565b60005460a060020a900460ff1681565b6000805433600160a060020a03908116911614610a4957600080fd5b60005460a060020a900460ff1615610a6057600080fd5b600160a060020a03821660009081526006602052604090205460ff161515610ab457610a8b82610f34565b50600160a060020a0382166000908152600660205260409020805460ff19166001179055610b7a565b60408051600160a060020a03841681526020810182815260048054600260001961010060018416150201909116049383018490527f7acfe5b554939597a5c3f67d2fdf43b839d19eba2b540056fcb1a8d91b278be6938693919290606083019084908015610b635780601f10610b3857610100808354040283529160200191610b63565b820191906000526020600020905b815481529060010190602001808311610b4657829003601f168201915b5050935050505060405180910390a15060006106a0565b506001919050565b60005433600160a060020a03908116911614610b9d57600080fd5b60005460a060020a900460ff1615610bb457600080fd5b600954604080517fba0e930a000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163ba0e930a9160248083019260209291908290030181600087803b158015610c1c57600080fd5b505af1158015610c30573d6000803e3d6000fd5b505050506040513d6020811015610c4657600080fd5b505050565b60005433600160a060020a03908116911614610c6657600080fd5b60005460a060020a900460ff1615610c7d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b60008054819033600160a060020a03908116911614610cf757600080fd5b60005460a060020a900460ff1615610d0e57600080fd5b600a91508184511015610d2057835191505b5060005b81811015610de0576009548451600160a060020a039091169063a9059cbb90869084908110610d4f57fe5b90602001906020020151856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b505050506040513d6020811015610dd657600080fd5b5050600101610d24565b50505050565b6000805433600160a060020a03908116911614610e0257600080fd5b60005460a060020a900460ff1615610e1957600080fd5b42821015610e2657600080fd5b50600255600190565b60015481565b60005433600160a060020a03908116911614610e5057600080fd5b600160a060020a0381161515610e6557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b60025481565b60008183811515610eef57fe5b0490505b92915050565b600082821115610f0557fe5b50900390565b6000821515610f1c57506000610ef3565b50818102818382811515610f2c57fe5b0414610ef357fe5b600080600860009054906101000a9004600160a060020a0316600160a060020a03166357e5eea56040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f8a57600080fd5b505af1158015610f9e573d6000803e3d6000fd5b505050506040513d6020811015610fb457600080fd5b5051600154909150610fcc908263ffffffff61107316565b600155600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b505050506040513d602081101561106857600080fd5b506001949350505050565b81810182811015610ef357fe00a165627a7a72305820dddd57e0036df4fa2f9dacd647983f6ce99d6bdc90be9ffd15dba16199db14190029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000065a1ebe2ad2edf944cb166c1045055fdfdc3d786000000000000000000000000000000000000000000000000000000005b60f800
-----Decoded View---------------
Arg [0] : _bonusStrategy (address): 0x65A1ebE2AD2eDF944CB166C1045055FdFdc3d786
Arg [1] : _emissionTime (uint256): 1533081600
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000065a1ebe2ad2edf944cb166c1045055fdfdc3d786
Arg [1] : 000000000000000000000000000000000000000000000000000000005b60f800
Swarm Source
bzzr://dddd57e0036df4fa2f9dacd647983f6ce99d6bdc90be9ffd15dba16199db1419
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.