[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: TTO
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.21;

/**
 * @title Description: This code is for creating a token contract
 * This contract is mintable, pausable, burnable, administered, admin-transferrable and 
 * has safety Maths and security operations checks done and yet have been kept short and simple
 * It has got 3 contracts
 * 1. Manager Contract - This contract gives a user the power to manage the token functions
 * 2. ERC20 Standard Contract - It implements ERC20 pre requisites
 * 3. WIMT Token Contract - It is a custom contract that inherits from the above two contracts
 * This source code was tested with Remix and solidity compiler version 0.4.21
 * The source code was adapted and modified by wims.io
 * source : https://github.com/tintinweb/smart-contract-sanctuary/blob/master/contracts/ropsten/46/46b8357a9a9361258358308d3668e2072d6732a9_AxelToken.sol
 */

 /**
 * @notice Manager contract
 */
 
contract Manager
{
    address public contractManager; //address to manage the token contract
    
    bool public paused = false; // Indicates whether the token contract is paused or not.
	
	event NewContractManager(address newManagerAddress); //Will display change of token manager

    /**
    * @notice Function constructor for contract Manager with no parameters
    * 
    */
    function Manager() public
	{
        contractManager = msg.sender; //address that creates contracts will manage it
    }

	/**
	* @notice onlyManager restrict management operations to the Manager of contract
	*/
    modifier onlyManager()
	{
        require(msg.sender == contractManager); 
        _;
    }
    
	/**
	* @notice Manager set a new manager
	*/
    function newManager(address newManagerAddress) public onlyManager 
	{
		require(newManagerAddress != 0);
		
        contractManager = newManagerAddress;
		
		emit NewContractManager(newManagerAddress);

    }
    
    /**
     * @dev Event fired when the token contracts gets paused.
     */
    event Pause();

    /**
     * @notice Event fired when the token contracts gets unpaused.
     */
    event Unpause();

    /**
     * @notice Allows a function to be called only when the token contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Pauses the token contract.
     */
    function pause() public onlyManager whenNotPaused {
        paused = true;
        emit Pause();
    }

    /**
     * @notice Unpauses the token contract.
     */
    function unpause() public onlyManager {
        require(paused);

        paused = false;
        emit Unpause();
    }


}

/**
 *@notice ERC20 This is the traditional ERC20 contract
 */
contract ERC20 is Manager
{

    mapping(address => uint256) public balanceOf; //this variable displays users balances
    
    string public name;//this variable displays token contract name
	
    string public symbol;//this variable displays token contract ticker symbol
	
    uint256 public decimal; //this variable displays the number of decimals for the token
	
    uint256 public totalSupply;//this variable displays the total supply of tokens
    
    mapping(address => mapping(address => uint256)) public allowance;//this will list of addresses a user will allow to Transfer his/her tokens
    
    event Transfer(address indexed from, address indexed to, uint256 value); //this event will notifies Transfers
	
    event Approval(address indexed owner, address indexed spender, uint256 value);//this event will notifies Approval
    
    /**
    * @notice Function constructor for ERC20 contract
    */
    function ERC20(uint256 initialSupply, string _name, string _symbol, uint256 _decimal)  public
	{
		require(initialSupply >= 0);//prevent negative numbers

		require(_decimal >= 0);//no negative decimals allowed
		
        balanceOf[msg.sender] = initialSupply;//give the contract creator address the total created tokens
		
        name = _name; //When the contract is being created give it a name
		
        symbol = _symbol;//When the contract is being created give it a symbol
		
        decimal = _decimal;//When the contract is being created give it decimals standard is  18
		
        totalSupply = initialSupply; //When the contract is being created set the token total supply
    }
    
    /**
    * @notice function transfer which will move tokens from user account to an address specified at to parameter
    *
    */
    function transfer(address _to, uint256 _value)public whenNotPaused returns (bool success)
	{
		require(_value > 0);//prevent transferring nothing
		
		require(balanceOf[msg.sender] >= _value);//the token sender must have tokens to transfer
		
		require(balanceOf[_to] + _value >= balanceOf[_to]);//the token receiver balance must change and be bigger

        balanceOf[msg.sender] -= _value;//the balance of the token sender must decrease accordingly
		
        balanceOf[_to] += _value;//effect the actual transfer of tokens
		
        emit Transfer(msg.sender, _to, _value);//publish addresses and amount Transferred

        return true;
    }
    
    /**
    * @notice function approve gives an address power to spend specified amount
    *
    */
    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool success) 
	{
		require(_value > 0); //approved amount must be greater than zero
		
		allowance[msg.sender][_spender] = _value;//_spender will be approved to spend _value from as user's address that called this function

        emit Approval(msg.sender, _spender, _value);//broadcast the activity
		
        return true;
    }
    
    /**
    * @notice function allowance : displays address allow to transfer tokens from owner
    * 
    */    
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) 
	{
      return allowance[_owner][_spender];
    }

	/**
    * @notice function transferFrom : moves tokens from one address to another
    * 
    */
    function transferFrom(address _from, address _to, uint256 _value)public whenNotPaused returns (bool success)
	{
		require(_value > 0); //move at least 1 token
		
        require(balanceOf[_from] >= _value);//check that there tokens to move
		
        require(balanceOf[_to] + _value >= balanceOf[_to]);//after the move the new value must be greater
        
        require(_value <= allowance[_from][msg.sender]); //only authorized addresses can transferFrom

        balanceOf[_from] -= _value;//remove tokens from _from address
		
        balanceOf[_to] += _value;//add these tokens to _to address
        
        allowance[_from][msg.sender] -= _value; //change the base token balance

        emit Transfer(_from, _to, _value);//publish transferFrom activity to network

        return true;
    }
    
    /**
    * @notice function balanceOf will display balance of given address
    * 
    */
    function balanceOf(address _owner)public constant returns (uint256 balance) 
	{
        return balanceOf[_owner];
    }
}

/**
 *@notice  TestTokenOnly Token implements Manager and ERC contracts
 */
contract TTO is Manager, ERC20
{
    /**
     * @notice function constructor for the WIMT contract
     */
     
    function TTO(uint256 _totalSupply, string _name, string _symbol, uint8 _decimal ) public  ERC20(_totalSupply, _name, _symbol, _decimal)
	{

        contractManager = msg.sender;

        balanceOf[contractManager] = _totalSupply;
		
        totalSupply = _totalSupply;
		
		decimal = _decimal;

    }
    
    /**
    * @notice function mint to be executed by Manager of token
    * 
    */
    function mint(address target, uint256 mintedAmount)public onlyManager whenNotPaused
	{
		require(target != 0);//check executor is supplied 
		
		require(mintedAmount > 0);//disallow negative minting
		
	    require(balanceOf[target] + mintedAmount >= balanceOf[target]);//after the move the new value must be greater
        
        require(totalSupply + mintedAmount >= totalSupply);//after the move the new value must be greater
        
        balanceOf[target] += mintedAmount;//add tokens to address target
		
        totalSupply += mintedAmount;//increase totalSupply
		
        emit Transfer(0, this, mintedAmount);//publish transfer
		
        emit Transfer(this, target, mintedAmount);//publish transfer
    }
    
	/**
    * @notice function burn decrease total Supply of tokens
    * 
    */
	function burn(uint256 mintedAmount) public onlyManager whenNotPaused
	{
		
		require(mintedAmount > 0);//at least 1 token must be destroyed
		
		require(totalSupply - mintedAmount <= totalSupply);//after the move the new value must be greater
        
	    require(balanceOf[msg.sender] - mintedAmount <= balanceOf[msg.sender]);//after the move the new value must be greater

        balanceOf[msg.sender] -= mintedAmount;//decrease balance of destroyer
		
        totalSupply -= mintedAmount;//decrease totalSupply by destroyed tokens
		
        emit Transfer(0, msg.sender, mintedAmount);//publish burn activity
		
        

    }

}

    Contract ABI  
[{"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":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"mintedAmount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newManagerAddress","type":"address"}],"name":"newManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"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":true,"inputs":[],"name":"contractManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_totalSupply","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimal","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newManagerAddress","type":"address"}],"name":"NewContractManager","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000805460a060020a60ff0219169055341561001f57600080fd5b604051610cbf380380610cbf833981016040528080519190602001805182019190602001805182019190602001805160008054600160a060020a03191633600160a060020a03161781559092508591508490849060ff85169084101561008457600080fd5b600081101561009257600080fd5b600160a060020a033316600090815260016020526040902084905560028380516100c092916020019061011c565b5060038280516100d492916020019061011c565b505060008054600160a060020a03191633600160a060020a0390811691909117808355168152600160205260409020879055505050600593909355505060ff166004556101b7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061015d57805160ff191683800117855561018a565b8280016001018555821561018a579182015b8281111561018a57825182559160200191906001019061016f565b5061019692915061019a565b5090565b6101b491905b8082111561019657600081556001016101a0565b90565b610af9806101c66000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b31461017457806318160ddd146101aa57806323b872dd146101cf5780633f4ba83a146101f757806340c10f191461020c57806342966c681461022e5780635c975abb1461024457806370a082311461025757806376809ce3146102765780638456cb5914610289578063906e94001461029c57806395d89b41146102bb578063a9059cbb146102ce578063b39e12cf146102f0578063dd62ed3e1461031f575b600080fd5b34156100f557600080fd5b6100fd610344565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610139578082015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017f57600080fd5b610196600160a060020a03600435166024356103e2565b604051901515815260200160405180910390f35b34156101b557600080fd5b6101bd610470565b60405190815260200160405180910390f35b34156101da57600080fd5b610196600160a060020a0360043581169060243516604435610476565b341561020257600080fd5b61020a610597565b005b341561021757600080fd5b61020a600160a060020a0360043516602435610616565b341561023957600080fd5b61020a600435610729565b341561024f57600080fd5b6101966107ed565b341561026257600080fd5b6101bd600160a060020a03600435166107fd565b341561028157600080fd5b6101bd610818565b341561029457600080fd5b61020a61081e565b34156102a757600080fd5b61020a600160a060020a03600435166108a2565b34156102c657600080fd5b6100fd61093a565b34156102d957600080fd5b610196600160a060020a03600435166024356109a5565b34156102fb57600080fd5b610303610a73565b604051600160a060020a03909116815260200160405180910390f35b341561032a57600080fd5b6101bd600160a060020a0360043581169060243516610a82565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103da5780601f106103af576101008083540402835291602001916103da565b820191906000526020600020905b8154815290600101906020018083116103bd57829003601f168201915b505050505081565b6000805460a060020a900460ff16156103fa57600080fd5b6000821161040757600080fd5b600160a060020a03338116600081815260066020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60055481565b6000805460a060020a900460ff161561048e57600080fd5b6000821161049b57600080fd5b600160a060020a038416600090815260016020526040902054829010156104c157600080fd5b600160a060020a03831660009081526001602052604090205482810110156104e857600080fd5b600160a060020a038085166000908152600660209081526040808320339094168352929052205482111561051b57600080fd5b600160a060020a0380851660008181526001602090815260408083208054889003905587851680845281842080548901905584845260068352818420339096168452949091529081902080548690039055600080516020610aae8339815191529085905190815260200160405180910390a35060019392505050565b60005433600160a060020a039081169116146105b257600080fd5b60005460a060020a900460ff1615156105ca57600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60005433600160a060020a0390811691161461063157600080fd5b60005460a060020a900460ff161561064857600080fd5b600160a060020a038216151561065d57600080fd5b6000811161066a57600080fd5b600160a060020a038216600090815260016020526040902054818101101561069157600080fd5b60055481810110156106a257600080fd5b600160a060020a0380831660009081526001602052604080822080548501905560058054850190553090921691600080516020610aae8339815191529084905190815260200160405180910390a381600160a060020a031630600160a060020a0316600080516020610aae8339815191528360405190815260200160405180910390a35050565b60005433600160a060020a0390811691161461074457600080fd5b60005460a060020a900460ff161561075b57600080fd5b6000811161076857600080fd5b600554818103111561077957600080fd5b600160a060020a03331660009081526001602052604090205481810311156107a057600080fd5b600160a060020a03331660008181526001602052604080822080548590039055600580548590039055600080516020610aae8339815191529084905190815260200160405180910390a350565b60005460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60045481565b60005433600160a060020a0390811691161461083957600080fd5b60005460a060020a900460ff161561085057600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60005433600160a060020a039081169116146108bd57600080fd5b600160a060020a03811615156108d257600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557f5909e23c57dd8baa9c226dbc1d6fda67b9dd31dc56cd6f347e275923800e8b4e81604051600160a060020a03909116815260200160405180910390a150565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103da5780601f106103af576101008083540402835291602001916103da565b6000805460a060020a900460ff16156109bd57600080fd5b600082116109ca57600080fd5b600160a060020a033316600090815260016020526040902054829010156109f057600080fd5b600160a060020a0383166000908152600160205260409020548281011015610a1757600080fd5b600160a060020a03338116600081815260016020526040808220805487900390559286168082529083902080548601905591600080516020610aae8339815191529085905190815260200160405180910390a350600192915050565b600054600160a060020a031681565b600160a060020a039182166000908152600660209081526040808320939094168252919091522054905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206e2b0ac69906ce658c7567bfb85be5ec7967a19d0cdd4cc29e363995f3f1516500290000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f5465737420546f6b656e2057494d530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354544d0000000000000000000000000000000000000000000000000000000000

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f5465737420546f6b656e2057494d530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354544d0000000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 5465737420546f6b656e2057494d530000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 54544d0000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://6e2b0ac69906ce658c7567bfb85be5ec7967a19d0cdd4cc29e363995f3f15165

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward