Contract Overview
ETH Balance: 0 Ether
No Of Transactions: 3 txns
  Latest 3 txns

TxHash Age From To Value [TxFee]
0xd346292095fe037c7ced7db6f4cd3b630ec6ff999ca09f32612a7894f748811711 days 4 hrs ago0x109965f814b580f2e014ad3e862a3ec42f3f6782  IN   0x4bc9e1ebca5f7a20567084f00cebc787afab69fe0 Ether0.0036595
0xfc2bc170f99e908c3ff67acf61f88186df1b16386db812bd2d13c5c4633c28cd11 days 4 hrs ago0x109965f814b580f2e014ad3e862a3ec42f3f6782  IN   0x4bc9e1ebca5f7a20567084f00cebc787afab69fe0 Ether0.0051595
0x9a2f0dba8ea47de82e55d7551c1ee1e3df805d3d17a1d0cd6965391fbf9673a711 days 4 hrs ago0x109965f814b580f2e014ad3e862a3ec42f3f6782  IN    Contract Creation0 Ether0.06468
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified
Contract Name: ConfigurableERC20
Compiler Version: v0.4.15-nightly.2017.8.8+commit.41e72436
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
// ERC: Token standard #20, https://github.com/ethereum/eips/issues/20
contract ERC20 {
	function totalSupply() constant returns (uint _totalSupply);
	function balanceOf(address _owner) constant returns (uint balance);
	function transfer(address _to, uint _value) returns (bool success);
	function transferFrom(address _from, address _to, uint _value) returns (bool success);
	function approve(address _spender, uint _value) returns (bool success);
	function allowance(address _owner, address _spender) constant returns (uint remaining);

	event Transfer(address indexed _from, address indexed _to, uint _value);
	event Approval(address indexed _owner, address indexed _spender, uint _value);
}
contract ERC20Token is ERC20 {

	// Balances for each account
	mapping(address => uint) balances;

	// Owner of account approves the transfer of an amount to another account
	mapping(address => mapping (address => uint)) allowed;


	/**
	* @dev Gets the balance of the specified address.
	* @param _owner The address to query the the balance of.
	* @return An uint representing the amount owned by the passed address.
	*/
	// What is the balance of a particular account?
	function balanceOf(address _owner) constant returns (uint balance) {
		return balances[_owner];
	}

	// Transfer the balance from owner's account to another account
	/**
	* @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) returns (bool) {
		// check input parameter(s)
		require(_value > 0); // non-zero transfer
		assert(balances[_to] + _value > balances[_to]); // overflow check
		require(_value <= balances[msg.sender]); // enough funds available

		// perform the operation
		balances[msg.sender] -= _value;
		balances[_to] += _value;

		// log the successful transfer
		Transfer(msg.sender, _to, _value);

		// operation successful, if case of an error we already failed fast
		return true;
	}


	/**
	 * @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 amount of tokens to be transfered
	 */
	// Send _value amount of tokens from address _from to address _to
	// The transferFrom method is used for a withdraw workflow, allowing contracts to send
	// tokens on your behalf, for example to "deposit" to a contract address and/or to charge
	// fees in sub-currencies; the command should fail unless the _from account has
	// deliberately authorized the sender of the message via some mechanism
	function transferFrom(address _from, address _to, uint _value) returns (bool) {
		// check input parameter(s)
		require(_value > 0); // non-zero transfer
		assert(balances[_to] + _value > balances[_to]); // overflow check
		require(_value <= balances[_from]); // enough funds available on account
		require(_value <= allowed[_from][msg.sender]); // enough funds allowed to transfer

		// perform the operation
		allowed[_from][msg.sender] -= - _value;
		balances[_from] -= _value;
		balances[_to] += _value;

		// log the successful transfer
		Transfer(_from, _to, _value);

		// operation successful, if case of an error we already failed fast
		return true;
	}

	/**
	 * @dev Approve 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.
	 */
	// Allow _spender to withdraw from your account, multiple times, up to the _value amount.
	// If this function is called again it overwrites the current allowance with _value.
	function approve(address _spender, uint _value) returns (bool) {

		// 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)); // bullshit: approve should be treated equal to transfer

		// perform the operation
		allowed[msg.sender][_spender] = _value;

		// log the successful approval
		Approval(msg.sender, _spender, _value);

		// operation successful, if case of an error we already failed fast
		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 uint specifying the amount of tokens still available for the spender.
	 */
	function allowance(address _owner, address _spender) constant returns (uint remaining) {
		return allowed[_owner][_spender];
	}

}

contract FixedERC20 is ERC20Token {
	// fixed token total supply, cannot be changed over time
	uint __totalSupply;

	function FixedERC20(uint _totalSupply) {
		// total supply must not be zero
		require(_totalSupply > 0);

		// set the __totalSupply
		__totalSupply = _totalSupply;

		// init token balance of the owner, all tokens go to him
		balances[msg.sender] = _totalSupply;
	}

	// total supply is constant
	function totalSupply() constant returns (uint _totalSupply) {
		return __totalSupply;
	}
}
contract ConfigurableERC20 is FixedERC20 {
	string public symbol;
	string public name;
	uint public decimals;

	function ConfigurableERC20(
		string _symbol,
		string _name,
		uint _decimals,
		uint _totalSupply
	) FixedERC20(_totalSupply) {
		// perform validations
		require(decimals <= 18);  // wei

		// assign constants
		symbol = _symbol;
		name = _name;
		decimals = _decimals;
	}

}

  Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_symbol","type":"string"},{"name":"_name","type":"string"},{"name":"_decimals","type":"uint256"},{"name":"_totalSupply","type":"uint256"}],"payable":false,"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"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b60405161088038038061088083398101604052808051820191906020018051820191906020018051919060200180519150505b805b6000811161005157600080fd5b6002819055600160a060020a03331660009081526020819052604090208190555b50600554601290111561008457600080fd5b60038480516100979291602001906100bb565b5060048380516100ab9291602001906100bb565b5060058290555b5050505061015b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fc57805160ff1916838001178555610129565b82800160010185558215610129579182015b8281111561012957825182559160200191906001019061010e565b5b5061013692915061013a565b5090565b61015891905b808211156101365760008155600101610140565b5090565b90565b6107168061016a6000396000f300606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461009b578063095ea7b31461012657806318160ddd1461015c57806323b872dd14610181578063313ce567146101bd57806370a08231146101e257806395d89b4114610213578063a9059cbb1461029e578063dd62ed3e146102d4575b600080fd5b34156100a657600080fd5b6100ae61030b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100eb5780820151818401525b6020016100d2565b50505050905090810190601f1680156101185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013157600080fd5b610148600160a060020a03600435166024356103a9565b604051901515815260200160405180910390f35b341561016757600080fd5b61016f610416565b60405190815260200160405180910390f35b341561018c57600080fd5b610148600160a060020a036004358116906024351660443561041d565b604051901515815260200160405180910390f35b34156101c857600080fd5b61016f610535565b60405190815260200160405180910390f35b34156101ed57600080fd5b61016f600160a060020a036004351661053b565b60405190815260200160405180910390f35b341561021e57600080fd5b6100ae61055a565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100eb5780820151818401525b6020016100d2565b50505050905090810190601f1680156101185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a957600080fd5b610148600160a060020a03600435166024356105f8565b604051901515815260200160405180910390f35b34156102df57600080fd5b61016f600160a060020a03600435811690602435166106bd565b60405190815260200160405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103a15780601f10610376576101008083540402835291602001916103a1565b820191906000526020600020905b81548152906001019060200180831161038457829003601f168201915b505050505081565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6002545b90565b600080821161042b57600080fd5b600160a060020a0383166000908152602081905260409020548281011161044e57fe5b600160a060020a03841660009081526020819052604090205482111561047357600080fd5b600160a060020a03808516600090815260016020908152604080832033909416835292905220548211156104a657600080fd5b600160a060020a03808516600081815260016020908152604080832033861684528252808320805488850390039055838352908290528082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b9392505050565b60055481565b600160a060020a0381166000908152602081905260409020545b919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103a15780601f10610376576101008083540402835291602001916103a1565b820191906000526020600020905b81548152906001019060200180831161038457829003601f168201915b505050505081565b600080821161060657600080fd5b600160a060020a0383166000908152602081905260409020548281011161062957fe5b600160a060020a03331660009081526020819052604090205482111561064e57600080fd5b600160a060020a033381166000818152602081905260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a723058209c17610da4d6bb6503641aff2c639582539e9f1824c4218b73b37b994df352ed0029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000000000000000000000000000000000000000000044147524100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41677261726120546f6b656e0000000000000000000000000000000000000000

    Constructor Arguments (ABI-encoded and appended to the ByteCode above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000000000000000000000000000000000000000000044147524100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41677261726120546f6b656e0000000000000000000000000000000000000000

-----Decoded View---------------
Found 8 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000fa0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 4147524100000000000000000000000000000000000000000000000000000000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [7] : 41677261726120546f6b656e0000000000000000000000000000000000000000


   Swarm Source:
bzzr://9c17610da4d6bb6503641aff2c639582539e9f1824c4218b73b37b994df352ed
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward