ERC-20
Energy Sector
Overview
Max Total Supply
1,124,463,120.866261648297659123 CST
Holders
2,733 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,002,775.112414740330465528 CSTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CrowdsaleToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 0 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-06-27 */ pragma solidity ^0.4.19; /** * Originally from https://github.com/TokenMarketNet/ico * Modified by https://www.coinfabrik.com/ */ pragma solidity ^0.4.19; /** * Originally from https://github.com/TokenMarketNet/ico * Modified by https://www.coinfabrik.com/ */ pragma solidity ^0.4.19; /** * Originally from https://github.com/OpenZeppelin/zeppelin-solidity * Modified by https://www.coinfabrik.com/ */ pragma solidity ^0.4.19; /** * Interface for the standard token. * Based on https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md */ contract EIP20Token { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool success); function transferFrom(address from, address to, uint256 value) public returns (bool success); function approve(address spender, uint256 value) public returns (bool success); function allowance(address owner, address spender) public view returns (uint256 remaining); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /** ** Optional functions * function name() public view returns (string name); function symbol() public view returns (string symbol); function decimals() public view returns (uint8 decimals); * **/ } pragma solidity ^0.4.19; /** * Originally from https://github.com/OpenZeppelin/zeppelin-solidity * Modified by https://www.coinfabrik.com/ */ /** * Math operations with safety checks */ library SafeMath { function mul(uint a, uint b) internal pure returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint a, uint b) internal pure returns (uint) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint a, uint b) internal pure returns (uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; assert(c >= a); return c; } function max64(uint64 a, uint64 b) internal pure returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal pure returns (uint64) { return a < b ? a : b; } function max256(uint a, uint b) internal pure returns (uint) { return a >= b ? a : b; } function min256(uint a, uint b) internal pure returns (uint) { return a < b ? a : b; } } pragma solidity ^0.4.19; // Interface for burning tokens contract Burnable { // @dev Destroys tokens for an account // @param account Account whose tokens are destroyed // @param value Amount of tokens to destroy function burnTokens(address account, uint value) internal; event Burned(address account, uint value); } pragma solidity ^0.4.19; /** * Authored by https://www.coinfabrik.com/ */ /** * Internal interface for the minting of tokens. */ contract Mintable { /** * @dev Mints tokens for an account * This function should the Minted event. */ function mintInternal(address receiver, uint amount) internal; /** Token supply got increased and a new owner received these tokens */ event Minted(address receiver, uint amount); } /** * @title Standard token * @dev Basic implementation of the EIP20 standard token (also known as ERC20 token). */ contract StandardToken is EIP20Token, Burnable, Mintable { using SafeMath for uint; uint private total_supply; mapping(address => uint) private balances; mapping(address => mapping (address => uint)) private allowed; function totalSupply() public view returns (uint) { return total_supply; } /** * @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, uint value) public returns (bool success) { balances[msg.sender] = balances[msg.sender].sub(value); balances[to] = balances[to].add(value); Transfer(msg.sender, to, value); return true; } /** * @dev Gets the balance of the specified address. * @param account The address whose balance is to be queried. * @return An uint representing the amount owned by the passed address. */ function balanceOf(address account) public view returns (uint balance) { return balances[account]; } /** * @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 uint the amout of tokens to be transfered */ function transferFrom(address from, address to, uint value) public returns (bool success) { uint allowance = allowed[from][msg.sender]; // Check is not needed because sub(allowance, value) will already throw if this condition is not met // require(value <= allowance); // SafeMath uses assert instead of require though, beware when using an analysis tool balances[from] = balances[from].sub(value); balances[to] = balances[to].add(value); allowed[from][msg.sender] = allowance.sub(value); Transfer(from, to, value); return true; } /** * @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, uint value) public returns (bool success) { // 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 require (value == 0 || allowed[msg.sender][spender] == 0); allowed[msg.sender][spender] = value; Approval(msg.sender, spender, value); return true; } /** * @dev Function to check the amount of tokens than an owner allowed to a spender. * @param account address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint specifing the amount of tokens still avaible for the spender. */ function allowance(address account, address spender) public view returns (uint remaining) { return allowed[account][spender]; } /** * Atomic increment of approved spending * * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * */ function addApproval(address spender, uint addedValue) public returns (bool success) { uint oldValue = allowed[msg.sender][spender]; allowed[msg.sender][spender] = oldValue.add(addedValue); Approval(msg.sender, spender, allowed[msg.sender][spender]); return true; } /** * Atomic decrement of approved spending. * * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 */ function subApproval(address spender, uint subtractedValue) public returns (bool success) { uint oldVal = allowed[msg.sender][spender]; if (subtractedValue > oldVal) { allowed[msg.sender][spender] = 0; } else { allowed[msg.sender][spender] = oldVal.sub(subtractedValue); } Approval(msg.sender, spender, allowed[msg.sender][spender]); return true; } /** * @dev Provides an internal function for destroying tokens. Useful for upgrades. */ function burnTokens(address account, uint value) internal { balances[account] = balances[account].sub(value); total_supply = total_supply.sub(value); Transfer(account, 0, value); Burned(account, value); } /** * @dev Provides an internal minting function. */ function mintInternal(address receiver, uint amount) internal { total_supply = total_supply.add(amount); balances[receiver] = balances[receiver].add(amount); Minted(receiver, amount); // Beware: Address zero may be used for special transactions in a future fork. // This will make the mint transaction appear in EtherScan.io // We can remove this after there is a standardized minting event Transfer(0, receiver, amount); } } pragma solidity ^0.4.19; /** * Originally from https://github.com/OpenZeppelin/zeppelin-solidity * Modified by https://www.coinfabrik.com/ */ /** * @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() internal { 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) onlyOwner public { require(newOwner != address(0)); owner = newOwner; } } /** * Define interface for releasing the token transfer after a successful crowdsale. */ contract ReleasableToken is StandardToken, Ownable { /* The finalizer contract that allows lifting the transfer limits on this token */ address public releaseAgent; /** A crowdsale contract can release us to the wild if ICO success. If false we are are in transfer lock up period.*/ bool public released = false; /** Map of agents that are allowed to transfer tokens regardless of the lock down period. These are crowdsale contracts and possible the team multisig itself. */ mapping (address => bool) public transferAgents; /** * Set the contract that can call release and make the token transferable. * * Since the owner of this contract is (or should be) the crowdsale, * it can only be called by a corresponding exposed API in the crowdsale contract in case of input error. */ function setReleaseAgent(address addr) onlyOwner inReleaseState(false) public { // We don't do interface check here as we might want to have a normal wallet address to act as a release agent. releaseAgent = addr; } /** * Owner can allow a particular address (e.g. a crowdsale contract) to transfer tokens despite the lock up period. */ function setTransferAgent(address addr, bool state) onlyOwner inReleaseState(false) public { transferAgents[addr] = state; } /** * One way function to release the tokens into the wild. * * Can be called only from the release agent that should typically be the finalize agent ICO contract. * In the scope of the crowdsale, it is only called if the crowdsale has been a success (first milestone reached). */ function releaseTokenTransfer() public onlyReleaseAgent { released = true; } /** * Limit token transfer until the crowdsale is over. */ modifier canTransfer(address sender) { require(released || transferAgents[sender]); _; } /** The function can be called only before or after the tokens have been released */ modifier inReleaseState(bool releaseState) { require(releaseState == released); _; } /** The function can be called only by a whitelisted release agent. */ modifier onlyReleaseAgent() { require(msg.sender == releaseAgent); _; } /** We restrict transfer by overriding it */ function transfer(address to, uint value) public canTransfer(msg.sender) returns (bool success) { // Call StandardToken.transfer() return super.transfer(to, value); } /** We restrict transferFrom by overriding it */ function transferFrom(address from, address to, uint value) public canTransfer(from) returns (bool success) { // Call StandardToken.transferForm() return super.transferFrom(from, to, value); } } pragma solidity ^0.4.19; /** * First envisioned by Golem and Lunyr projects. * Originally from https://github.com/TokenMarketNet/ico * Modified by https://www.coinfabrik.com/ */ pragma solidity ^0.4.19; /** * Inspired by Lunyr. * Originally from https://github.com/TokenMarketNet/ico */ /** * Upgrade agent transfers tokens to a new contract. * Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting. * * The Upgrade agent is the interface used to implement a token * migration in the case of an emergency. * The function upgradeFrom has to implement the part of the creation * of new tokens on behalf of the user doing the upgrade. * * The new token can implement this interface directly, or use. */ contract UpgradeAgent { /** This value should be the same as the original token's total supply */ uint public originalSupply; /** Interface to ensure the contract is correctly configured */ function isUpgradeAgent() public pure returns (bool) { return true; } /** Upgrade an account When the token contract is in the upgrade status the each user will have to call `upgrade(value)` function from UpgradeableToken. The upgrade function adjust the balance of the user and the supply of the previous token and then call `upgradeFrom(value)`. The UpgradeAgent is the responsible to create the tokens for the user in the new contract. * @param from Account to upgrade. * @param value Tokens to upgrade. */ function upgradeFrom(address from, uint value) public; } /** * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision. * */ contract UpgradeableToken is EIP20Token, Burnable { using SafeMath for uint; /** Contract / person who can set the upgrade path. This can be the same as team multisig wallet, as what it is with its default value. */ address public upgradeMaster; /** The next contract where the tokens will be migrated. */ UpgradeAgent public upgradeAgent; /** How many tokens we have upgraded by now. */ uint public totalUpgraded = 0; /** * Upgrade states. * * - NotAllowed: The child contract has not reached a condition where the upgrade can bgun * - WaitingForAgent: Token allows upgrade, but we don't have a new agent yet * - ReadyToUpgrade: The agent is set, but not a single token has been upgraded yet. This allows changing the upgrade agent while there is time. * - Upgrading: Upgrade agent is set and the balance holders can upgrade their tokens * */ enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading} /** * Somebody has upgraded some of his tokens. */ event Upgrade(address indexed from, address to, uint value); /** * New upgrade agent available. */ event UpgradeAgentSet(address agent); /** * Do not allow construction without upgrade master set. */ function UpgradeableToken(address master) internal { setUpgradeMaster(master); } /** * Allow the token holder to upgrade some of their tokens to a new contract. */ function upgrade(uint value) public { UpgradeState state = getUpgradeState(); // Ensure it's not called in a bad state require(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading); // Validate input value. require(value != 0); // Upgrade agent reissues the tokens upgradeAgent.upgradeFrom(msg.sender, value); // Take tokens out from circulation burnTokens(msg.sender, value); totalUpgraded = totalUpgraded.add(value); Upgrade(msg.sender, upgradeAgent, value); } /** * Set an upgrade agent that handles the upgrade process */ function setUpgradeAgent(address agent) onlyMaster external { // Check whether the token is in a state that we could think of upgrading require(canUpgrade()); require(agent != 0x0); // Upgrade has already begun for an agent require(getUpgradeState() != UpgradeState.Upgrading); upgradeAgent = UpgradeAgent(agent); // Bad interface require(upgradeAgent.isUpgradeAgent()); // Make sure that token supplies match in source and target require(upgradeAgent.originalSupply() == totalSupply()); UpgradeAgentSet(upgradeAgent); } /** * Get the state of the token upgrade. */ function getUpgradeState() public view returns(UpgradeState) { if (!canUpgrade()) return UpgradeState.NotAllowed; else if (address(upgradeAgent) == 0x00) return UpgradeState.WaitingForAgent; else if (totalUpgraded == 0) return UpgradeState.ReadyToUpgrade; else return UpgradeState.Upgrading; } /** * Change the upgrade master. * * This allows us to set a new owner for the upgrade mechanism. */ function changeUpgradeMaster(address new_master) onlyMaster public { setUpgradeMaster(new_master); } /** * Internal upgrade master setter. */ function setUpgradeMaster(address new_master) private { require(new_master != 0x0); upgradeMaster = new_master; } /** * Child contract can override to provide the condition in which the upgrade can begin. */ function canUpgrade() public view returns(bool) { return true; } modifier onlyMaster() { require(msg.sender == upgradeMaster); _; } } pragma solidity ^0.4.19; /** * Authored by https://www.coinfabrik.com/ */ // This contract aims to provide an inheritable way to recover tokens from a contract not meant to hold tokens // To use this contract, have your token-ignoring contract inherit this one and implement getLostAndFoundMaster to decide who can move lost tokens. // Of course, this contract imposes support costs upon whoever is the lost and found master. contract LostAndFoundToken { /** * @return Address of the account that handles movements. */ function getLostAndFoundMaster() internal view returns (address); /** * @param agent Address that will be able to move tokens with transferFrom * @param tokens Amount of tokens approved for transfer * @param token_contract Contract of the token */ function enableLostAndFound(address agent, uint tokens, EIP20Token token_contract) public { require(msg.sender == getLostAndFoundMaster()); // We use approve instead of transfer to minimize the possibility of the lost and found master // getting them stuck in another address by accident. token_contract.approve(agent, tokens); } } pragma solidity ^0.4.19; /** * Originally from https://github.com/TokenMarketNet/ico * Modified by https://www.coinfabrik.com/ */ /** * A public interface to increase the supply of a token. * * This allows uncapped crowdsale by dynamically increasing the supply when money pours in. * Only mint agents, usually contracts whitelisted by the owner, can mint new tokens. * */ contract MintableToken is Mintable, Ownable { using SafeMath for uint; bool public mintingFinished = false; /** List of agents that are allowed to create new tokens */ mapping (address => bool) public mintAgents; event MintingAgentChanged(address addr, bool state); function MintableToken(uint initialSupply, address multisig, bool mintable) internal { require(multisig != address(0)); // Cannot create a token without supply and no minting require(mintable || initialSupply != 0); // Create initially all balance on the team multisig if (initialSupply > 0) mintInternal(multisig, initialSupply); // No more new supply allowed after the token creation mintingFinished = !mintable; } /** * Create new tokens and allocate them to an address. * * Only callable by a mint agent (e.g. crowdsale contract). */ function mint(address receiver, uint amount) onlyMintAgent canMint public { mintInternal(receiver, amount); } /** * Owner can allow a crowdsale contract to mint new tokens. */ function setMintAgent(address addr, bool state) onlyOwner canMint public { mintAgents[addr] = state; MintingAgentChanged(addr, state); } modifier onlyMintAgent() { // Only mint agents are allowed to mint new tokens require(mintAgents[msg.sender]); _; } /** Make sure we are not done yet. */ modifier canMint() { require(!mintingFinished); _; } } /** * A crowdsale token. * * An ERC-20 token designed specifically for crowdsales with investor protection and further development path. * * - The token transfer() is disabled until the crowdsale is over * - The token contract gives an opt-in upgrade path to a new contract * - The same token can be part of several crowdsales through the approve() mechanism * - The token can be capped (supply set in the constructor) or uncapped (crowdsale contract can mint new tokens) * - ERC20 tokens transferred to this contract can be recovered by a lost and found master * */ contract CrowdsaleToken is ReleasableToken, MintableToken, UpgradeableToken, LostAndFoundToken { string public name = "Cryptosolartech"; string public symbol = "CST"; uint8 public decimals; address public lost_and_found_master; /** * Construct the token. * * This token must be created through a team multisig wallet, so that it is owned by that wallet. * * @param initial_supply How many tokens we start with. * @param token_decimals Number of decimal places. * @param team_multisig Address of the multisig that receives the initial supply and is set as the upgrade master. * @param token_retriever Address of the account that handles ERC20 tokens that were accidentally sent to this contract. */ function CrowdsaleToken(uint initial_supply, uint8 token_decimals, address team_multisig, address token_retriever) public UpgradeableToken(team_multisig) MintableToken(initial_supply, team_multisig, true) { require(token_retriever != address(0)); decimals = token_decimals; lost_and_found_master = token_retriever; } /** * When token is released to be transferable, prohibit new token creation. */ function releaseTokenTransfer() public onlyReleaseAgent { mintingFinished = true; super.releaseTokenTransfer(); } /** * Allow upgrade agent functionality to kick in only if the crowdsale was a success. */ function canUpgrade() public view returns(bool) { return released && super.canUpgrade(); } function burn(uint value) public { burnTokens(msg.sender, value); } function getLostAndFoundMaster() internal view returns(address) { return lost_and_found_master; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"state","type":"bool"}],"name":"setTransferAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"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":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setReleaseAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"mintAgents","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"state","type":"bool"}],"name":"setMintAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"},{"name":"tokens","type":"uint256"},{"name":"token_contract","type":"address"}],"name":"enableLostAndFound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradeState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"transferAgents","outputs":[{"name":"","type":"bool"}],"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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"released","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"canUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lost_and_found_master","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"addApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"}],"name":"setUpgradeAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"subApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_master","type":"address"}],"name":"changeUpgradeMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initial_supply","type":"uint256"},{"name":"token_decimals","type":"uint8"},{"name":"team_multisig","type":"address"},{"name":"token_retriever","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"agent","type":"address"}],"name":"UpgradeAgentSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"state","type":"bool"}],"name":"MintingAgentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burned","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
606060409081526004805460a060020a60ff02191690556006805460ff191690556000600a558051908101604052600f81527f43727970746f736f6c61727465636800000000000000000000000000000000006020820152600b9080516200006c9291602001906200032b565b5060408051908101604052600381527f43535400000000000000000000000000000000000000000000000000000000006020820152600c908051620000b69291602001906200032b565b503415620000c357600080fd5b604051608080620019148339810160405280805191906020018051919060200180519190602001805160038054600160a060020a03191633600160a060020a039081169190911790915590925083915085908290600190821615156200012857600080fd5b80806200013457508215155b15156200014057600080fd5b60008311156200016457620001648284640100000000620011d0620001e482021704565b6006805460ff19169115919091179055506200019090508164010000000062001491620002dc82021704565b50600160a060020a0381161515620001a757600080fd5b600d8054600160a060020a039092166101000261010060a860020a031960ff90951660ff1990931692909217939093161790915550620003d09050565b600054620002019082640100000000620013706200031482021704565b6000908155600160a060020a038316815260016020526040902054620002369082640100000000620013706200031482021704565b600160a060020a03831660009081526001602052604090819020919091557f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe908390839051600160a060020a03909216825260208201526040908101905180910390a181600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35050565b600160a060020a0381161515620002f257600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b6000828201838110156200032457fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200036e57805160ff19168380011785556200039e565b828001600101855582156200039e579182015b828111156200039e57825182559160200191906001019062000381565b50620003ac929150620003b0565b5090565b620003cd91905b80821115620003ac5760008155600101620003b7565b90565b61153480620003e06000396000f3006060604052600436106101925763ffffffff60e060020a60003504166302f652a3811461019757806305d2035b146101bd57806306fdde03146101e4578063095ea7b31461026e57806318160ddd1461029057806323b872dd146102b557806329ff4f53146102dd578063313ce567146102fc57806340c10f191461032557806342966c681461034757806342c1867b1461035d578063432146751461037c57806345977d03146103a05780634a52e506146103b65780635de4ccb0146103df5780635f412d4f1461040e578063600440cb1461042157806370a08231146104345780638444b39114610453578063867c28571461048a5780638da5cb5b146104a957806395d89b41146104bc57806396132521146104cf5780639738968c146104e2578063a64278ce146104f5578063a9059cbb14610508578063ac3cb72c1461052a578063c752ff621461054c578063d1f276d31461055f578063d7e7088a14610572578063dd62ed3e14610591578063e2301d02146105b6578063ea56a44d146105d8578063f2fde38b146105f7575b600080fd5b34156101a257600080fd5b6101bb600160a060020a03600435166024351515610616565b005b34156101c857600080fd5b6101d0610677565b604051901515815260200160405180910390f35b34156101ef57600080fd5b6101f7610680565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b6101d0600160a060020a036004351660243561071e565b341561029b57600080fd5b6102a36107b2565b60405190815260200160405180910390f35b34156102c057600080fd5b6101d0600160a060020a03600435811690602435166044356107b9565b34156102e857600080fd5b6101bb600160a060020a036004351661080d565b341561030757600080fd5b61030f610865565b60405160ff909116815260200160405180910390f35b341561033057600080fd5b6101bb600160a060020a036004351660243561086e565b341561035257600080fd5b6101bb6004356108b3565b341561036857600080fd5b6101d0600160a060020a03600435166108c0565b341561038757600080fd5b6101bb600160a060020a036004351660243515156108d5565b34156103ab57600080fd5b6101bb600435610971565b34156103c157600080fd5b6101bb600160a060020a036004358116906024359060443516610a9b565b34156103ea57600080fd5b6103f2610b3f565b604051600160a060020a03909116815260200160405180910390f35b341561041957600080fd5b6101bb610b4e565b341561042c57600080fd5b6103f2610b80565b341561043f57600080fd5b6102a3600160a060020a0360043516610b8f565b341561045e57600080fd5b610466610baa565b6040518082600481111561047657fe5b60ff16815260200191505060405180910390f35b341561049557600080fd5b6101d0600160a060020a0360043516610bf5565b34156104b457600080fd5b6103f2610c0a565b34156104c757600080fd5b6101f7610c19565b34156104da57600080fd5b6101d0610c84565b34156104ed57600080fd5b6101d0610c94565b341561050057600080fd5b6103f2610cb8565b341561051357600080fd5b6101d0600160a060020a0360043516602435610ccc565b341561053557600080fd5b6101d0600160a060020a0360043516602435610d1e565b341561055757600080fd5b6102a3610db1565b341561056a57600080fd5b6103f2610db7565b341561057d57600080fd5b6101bb600160a060020a0360043516610dc6565b341561059c57600080fd5b6102a3600160a060020a0360043581169060243516610f70565b34156105c157600080fd5b6101d0600160a060020a0360043516602435610f9b565b34156105e357600080fd5b6101bb600160a060020a036004351661105c565b341561060257600080fd5b6101bb600160a060020a0360043516611080565b60035433600160a060020a0390811691161461063157600080fd5b60045460009060a060020a900460ff161561064b57600080fd5b50600160a060020a03919091166000908152600560205260409020805460ff1916911515919091179055565b60065460ff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b820191906000526020600020905b8154815290600101906020018083116106f957829003601f168201915b505050505081565b60008115806107505750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561075b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590556000805160206114e98339815191529085905190815260200160405180910390a350600192915050565b6000545b90565b600454600090849060a060020a900460ff16806107ee5750600160a060020a03811660009081526005602052604090205460ff165b15156107f957600080fd5b6108048585856110d2565b95945050505050565b60035433600160a060020a0390811691161461082857600080fd5b60045460009060a060020a900460ff161561084257600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600d5460ff1681565b600160a060020a03331660009081526007602052604090205460ff16151561089557600080fd5b60065460ff16156108a557600080fd5b6108af82826111d0565b5050565b6108bd33826112a2565b50565b60076020526000908152604090205460ff1681565b60035433600160a060020a039081169116146108f057600080fd5b60065460ff161561090057600080fd5b600160a060020a03821660009081526007602052604090819020805460ff19168315151790557f4b0adf6c802794c7dde28a08a4e07131abcff3bf9603cd71f14f90bec7865efa908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b600061097b610baa565b9050600381600481111561098b57fe5b14806109a2575060048160048111156109a057fe5b145b15156109ad57600080fd5b8115156109b957600080fd5b600954600160a060020a031663753e88e5338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a0f57600080fd5b6102c65a03f11515610a2057600080fd5b505050610a2d33836112a2565b600a54610a40908363ffffffff61137016565b600a55600954600160a060020a03338116917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac911684604051600160a060020a03909216825260208201526040908101905180910390a25050565b610aa3611386565b600160a060020a031633600160a060020a0316141515610ac257600080fd5b80600160a060020a031663095ea7b3848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b1f57600080fd5b6102c65a03f11515610b3057600080fd5b50505060405180515050505050565b600954600160a060020a031681565b60045433600160a060020a03908116911614610b6957600080fd5b6006805460ff19166001179055610b7e61139a565b565b600854600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000610bb4610c94565b1515610bc2575060016107b6565b600954600160a060020a03161515610bdc575060026107b6565b600a541515610bed575060036107b6565b5060046107b6565b60056020526000908152604090205460ff1681565b600354600160a060020a031681565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b60045460a060020a900460ff1681565b60045460009060a060020a900460ff168015610cb35750610cb36113cd565b905090565b600d546101009004600160a060020a031681565b600454600090339060a060020a900460ff1680610d015750600160a060020a03811660009081526005602052604090205460ff165b1515610d0c57600080fd5b610d1684846113d2565b949350505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610d56818463ffffffff61137016565b600160a060020a033381166000818152600260209081526040808320948a168084529490915290819020849055919290916000805160206114e983398151915291905190815260200160405180910390a35060019392505050565b600a5481565b600454600160a060020a031681565b60085433600160a060020a03908116911614610de157600080fd5b610de9610c94565b1515610df457600080fd5b600160a060020a0381161515610e0957600080fd5b6004610e13610baa565b6004811115610e1e57fe5b1415610e2957600080fd5b60098054600160a060020a031916600160a060020a038381169190911791829055166361d3d7a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e8757600080fd5b6102c65a03f11515610e9857600080fd5b505050604051805190501515610ead57600080fd5b610eb56107b2565b600954600160a060020a0316634b2ba0dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610efd57600080fd5b6102c65a03f11515610f0e57600080fd5b50505060405180519050141515610f2457600080fd5b6009547f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc90600160a060020a0316604051600160a060020a03909116815260200160405180910390a150565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610ff857600160a060020a033381166000908152600260209081526040808320938816835292905290812055611008565b610d56818463ffffffff61147f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020546000805160206114e9833981519152915190815260200160405180910390a35060019392505050565b60085433600160a060020a0390811691161461107757600080fd5b6108bd81611491565b60035433600160a060020a0390811691161461109b57600080fd5b600160a060020a03811615156110b057600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038084166000818152600260209081526040808320339095168352938152838220549282526001905291822054611116908463ffffffff61147f16565b600160a060020a03808716600090815260016020526040808220939093559086168152205461114b908463ffffffff61137016565b600160a060020a038516600090815260016020526040902055611174818463ffffffff61147f16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616916000805160206114c98339815191529086905190815260200160405180910390a3506001949350505050565b6000546111e3908263ffffffff61137016565b6000908155600160a060020a03831681526001602052604090205461120e908263ffffffff61137016565b600160a060020a03831660009081526001602052604090819020919091557f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe908390839051600160a060020a03909216825260208201526040908101905180910390a181600160a060020a031660006000805160206114c98339815191528360405190815260200160405180910390a35050565b600160a060020a0382166000908152600160205260409020546112cb908263ffffffff61147f16565b600160a060020a038316600090815260016020526040812091909155546112f8908263ffffffff61147f16565b6000908155600160a060020a0383166000805160206114c98339815191528360405190815260200160405180910390a37f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df78282604051600160a060020a03909216825260208201526040908101905180910390a15050565b60008282018381101561137f57fe5b9392505050565b600d546101009004600160a060020a031690565b60045433600160a060020a039081169116146113b557600080fd5b6004805460a060020a60ff02191660a060020a179055565b600190565b600160a060020a0333166000908152600160205260408120546113fb908363ffffffff61147f16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611430908363ffffffff61137016565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206114c98339815191529085905190815260200160405180910390a350600192915050565b60008282111561148b57fe5b50900390565b600160a060020a03811615156114a657600080fd5b60088054600160a060020a031916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a723058203ee262f8b499031059f514a24cb0a8e6bcff0c8578d5cc51c6f81a2a963fa996002900000000000000000000000000000000000000000014d84ebcc1c5caa6000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000093c4a8ed12bab494bc3045380ee1cfc07507d23400000000000000000000000054d9249c776c56520a62faecb87a00e105e8c9dc
Deployed Bytecode
0x6060604052600436106101925763ffffffff60e060020a60003504166302f652a3811461019757806305d2035b146101bd57806306fdde03146101e4578063095ea7b31461026e57806318160ddd1461029057806323b872dd146102b557806329ff4f53146102dd578063313ce567146102fc57806340c10f191461032557806342966c681461034757806342c1867b1461035d578063432146751461037c57806345977d03146103a05780634a52e506146103b65780635de4ccb0146103df5780635f412d4f1461040e578063600440cb1461042157806370a08231146104345780638444b39114610453578063867c28571461048a5780638da5cb5b146104a957806395d89b41146104bc57806396132521146104cf5780639738968c146104e2578063a64278ce146104f5578063a9059cbb14610508578063ac3cb72c1461052a578063c752ff621461054c578063d1f276d31461055f578063d7e7088a14610572578063dd62ed3e14610591578063e2301d02146105b6578063ea56a44d146105d8578063f2fde38b146105f7575b600080fd5b34156101a257600080fd5b6101bb600160a060020a03600435166024351515610616565b005b34156101c857600080fd5b6101d0610677565b604051901515815260200160405180910390f35b34156101ef57600080fd5b6101f7610680565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b6101d0600160a060020a036004351660243561071e565b341561029b57600080fd5b6102a36107b2565b60405190815260200160405180910390f35b34156102c057600080fd5b6101d0600160a060020a03600435811690602435166044356107b9565b34156102e857600080fd5b6101bb600160a060020a036004351661080d565b341561030757600080fd5b61030f610865565b60405160ff909116815260200160405180910390f35b341561033057600080fd5b6101bb600160a060020a036004351660243561086e565b341561035257600080fd5b6101bb6004356108b3565b341561036857600080fd5b6101d0600160a060020a03600435166108c0565b341561038757600080fd5b6101bb600160a060020a036004351660243515156108d5565b34156103ab57600080fd5b6101bb600435610971565b34156103c157600080fd5b6101bb600160a060020a036004358116906024359060443516610a9b565b34156103ea57600080fd5b6103f2610b3f565b604051600160a060020a03909116815260200160405180910390f35b341561041957600080fd5b6101bb610b4e565b341561042c57600080fd5b6103f2610b80565b341561043f57600080fd5b6102a3600160a060020a0360043516610b8f565b341561045e57600080fd5b610466610baa565b6040518082600481111561047657fe5b60ff16815260200191505060405180910390f35b341561049557600080fd5b6101d0600160a060020a0360043516610bf5565b34156104b457600080fd5b6103f2610c0a565b34156104c757600080fd5b6101f7610c19565b34156104da57600080fd5b6101d0610c84565b34156104ed57600080fd5b6101d0610c94565b341561050057600080fd5b6103f2610cb8565b341561051357600080fd5b6101d0600160a060020a0360043516602435610ccc565b341561053557600080fd5b6101d0600160a060020a0360043516602435610d1e565b341561055757600080fd5b6102a3610db1565b341561056a57600080fd5b6103f2610db7565b341561057d57600080fd5b6101bb600160a060020a0360043516610dc6565b341561059c57600080fd5b6102a3600160a060020a0360043581169060243516610f70565b34156105c157600080fd5b6101d0600160a060020a0360043516602435610f9b565b34156105e357600080fd5b6101bb600160a060020a036004351661105c565b341561060257600080fd5b6101bb600160a060020a0360043516611080565b60035433600160a060020a0390811691161461063157600080fd5b60045460009060a060020a900460ff161561064b57600080fd5b50600160a060020a03919091166000908152600560205260409020805460ff1916911515919091179055565b60065460ff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b820191906000526020600020905b8154815290600101906020018083116106f957829003601f168201915b505050505081565b60008115806107505750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561075b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590556000805160206114e98339815191529085905190815260200160405180910390a350600192915050565b6000545b90565b600454600090849060a060020a900460ff16806107ee5750600160a060020a03811660009081526005602052604090205460ff165b15156107f957600080fd5b6108048585856110d2565b95945050505050565b60035433600160a060020a0390811691161461082857600080fd5b60045460009060a060020a900460ff161561084257600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600d5460ff1681565b600160a060020a03331660009081526007602052604090205460ff16151561089557600080fd5b60065460ff16156108a557600080fd5b6108af82826111d0565b5050565b6108bd33826112a2565b50565b60076020526000908152604090205460ff1681565b60035433600160a060020a039081169116146108f057600080fd5b60065460ff161561090057600080fd5b600160a060020a03821660009081526007602052604090819020805460ff19168315151790557f4b0adf6c802794c7dde28a08a4e07131abcff3bf9603cd71f14f90bec7865efa908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b600061097b610baa565b9050600381600481111561098b57fe5b14806109a2575060048160048111156109a057fe5b145b15156109ad57600080fd5b8115156109b957600080fd5b600954600160a060020a031663753e88e5338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a0f57600080fd5b6102c65a03f11515610a2057600080fd5b505050610a2d33836112a2565b600a54610a40908363ffffffff61137016565b600a55600954600160a060020a03338116917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac911684604051600160a060020a03909216825260208201526040908101905180910390a25050565b610aa3611386565b600160a060020a031633600160a060020a0316141515610ac257600080fd5b80600160a060020a031663095ea7b3848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b1f57600080fd5b6102c65a03f11515610b3057600080fd5b50505060405180515050505050565b600954600160a060020a031681565b60045433600160a060020a03908116911614610b6957600080fd5b6006805460ff19166001179055610b7e61139a565b565b600854600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000610bb4610c94565b1515610bc2575060016107b6565b600954600160a060020a03161515610bdc575060026107b6565b600a541515610bed575060036107b6565b5060046107b6565b60056020526000908152604090205460ff1681565b600354600160a060020a031681565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b60045460a060020a900460ff1681565b60045460009060a060020a900460ff168015610cb35750610cb36113cd565b905090565b600d546101009004600160a060020a031681565b600454600090339060a060020a900460ff1680610d015750600160a060020a03811660009081526005602052604090205460ff165b1515610d0c57600080fd5b610d1684846113d2565b949350505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610d56818463ffffffff61137016565b600160a060020a033381166000818152600260209081526040808320948a168084529490915290819020849055919290916000805160206114e983398151915291905190815260200160405180910390a35060019392505050565b600a5481565b600454600160a060020a031681565b60085433600160a060020a03908116911614610de157600080fd5b610de9610c94565b1515610df457600080fd5b600160a060020a0381161515610e0957600080fd5b6004610e13610baa565b6004811115610e1e57fe5b1415610e2957600080fd5b60098054600160a060020a031916600160a060020a038381169190911791829055166361d3d7a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e8757600080fd5b6102c65a03f11515610e9857600080fd5b505050604051805190501515610ead57600080fd5b610eb56107b2565b600954600160a060020a0316634b2ba0dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610efd57600080fd5b6102c65a03f11515610f0e57600080fd5b50505060405180519050141515610f2457600080fd5b6009547f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc90600160a060020a0316604051600160a060020a03909116815260200160405180910390a150565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610ff857600160a060020a033381166000908152600260209081526040808320938816835292905290812055611008565b610d56818463ffffffff61147f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020546000805160206114e9833981519152915190815260200160405180910390a35060019392505050565b60085433600160a060020a0390811691161461107757600080fd5b6108bd81611491565b60035433600160a060020a0390811691161461109b57600080fd5b600160a060020a03811615156110b057600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038084166000818152600260209081526040808320339095168352938152838220549282526001905291822054611116908463ffffffff61147f16565b600160a060020a03808716600090815260016020526040808220939093559086168152205461114b908463ffffffff61137016565b600160a060020a038516600090815260016020526040902055611174818463ffffffff61147f16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616916000805160206114c98339815191529086905190815260200160405180910390a3506001949350505050565b6000546111e3908263ffffffff61137016565b6000908155600160a060020a03831681526001602052604090205461120e908263ffffffff61137016565b600160a060020a03831660009081526001602052604090819020919091557f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe908390839051600160a060020a03909216825260208201526040908101905180910390a181600160a060020a031660006000805160206114c98339815191528360405190815260200160405180910390a35050565b600160a060020a0382166000908152600160205260409020546112cb908263ffffffff61147f16565b600160a060020a038316600090815260016020526040812091909155546112f8908263ffffffff61147f16565b6000908155600160a060020a0383166000805160206114c98339815191528360405190815260200160405180910390a37f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df78282604051600160a060020a03909216825260208201526040908101905180910390a15050565b60008282018381101561137f57fe5b9392505050565b600d546101009004600160a060020a031690565b60045433600160a060020a039081169116146113b557600080fd5b6004805460a060020a60ff02191660a060020a179055565b600190565b600160a060020a0333166000908152600160205260408120546113fb908363ffffffff61147f16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611430908363ffffffff61137016565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206114c98339815191529085905190815260200160405180910390a350600192915050565b60008282111561148b57fe5b50900390565b600160a060020a03811615156114a657600080fd5b60088054600160a060020a031916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a723058203ee262f8b499031059f514a24cb0a8e6bcff0c8578d5cc51c6f81a2a963fa9960029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000014d84ebcc1c5caa6000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000093c4a8ed12bab494bc3045380ee1cfc07507d23400000000000000000000000054d9249c776c56520a62faecb87a00e105e8c9dc
-----Decoded View---------------
Arg [0] : initial_supply (uint256): 25200000000000000000000000
Arg [1] : token_decimals (uint8): 18
Arg [2] : team_multisig (address): 0x93C4a8ed12BAb494bc3045380EE1CfC07507D234
Arg [3] : token_retriever (address): 0x54d9249C776C56520A62faeCB87A00E105E8c9Dc
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000014d84ebcc1c5caa6000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [2] : 00000000000000000000000093c4a8ed12bab494bc3045380ee1cfc07507d234
Arg [3] : 00000000000000000000000054d9249c776c56520a62faecb87a00e105e8c9dc
Swarm Source
bzzr://3ee262f8b499031059f514a24cb0a8e6bcff0c8578d5cc51c6f81a2a963fa996
Loading...
Loading
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.