ETH Price: $3,110.54 (-4.80%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer92978272020-01-17 9:07:551842 days ago1579252075IN
0x8b25669b...f5FdE353e
0 ETH0.000194264.8
Transfer61649152018-08-17 17:24:462360 days ago1534526686IN
0x8b25669b...f5FdE353e
0 ETH0.000126673.34375
Transfer61037802018-08-07 9:29:142370 days ago1533634154IN
0x8b25669b...f5FdE353e
0 ETH0.000189425
Transfer57869142018-06-14 10:22:292424 days ago1528971749IN
0x8b25669b...f5FdE353e
0 ETH0.0004039310.6625
Transfer57678622018-06-11 2:26:302428 days ago1528683990IN
0x8b25669b...f5FdE353e
0 ETH0.0013257825.1
Transfer56164942018-05-15 6:45:392455 days ago1526366739IN
0x8b25669b...f5FdE353e
0 ETH0.000269437.1
Transfer56066412018-05-13 13:08:432456 days ago1526216923IN
0x8b25669b...f5FdE353e
0 ETH0.000185368.1
Transfer56066052018-05-13 12:59:552456 days ago1526216395IN
0x8b25669b...f5FdE353e
0 ETH0.000306868.1
Transfer55807762018-05-09 0:47:052461 days ago1525826825IN
0x8b25669b...f5FdE353e
0 ETH0.000194995.14705612
Transfer55789432018-05-08 17:03:092461 days ago1525798989IN
0x8b25669b...f5FdE353e
0 ETH0.000189425
Transfer55784652018-05-08 15:06:192461 days ago1525791979IN
0x8b25669b...f5FdE353e
0 ETH0.000094191.78125
Transfer55773582018-05-08 10:29:192461 days ago1525775359IN
0x8b25669b...f5FdE353e
0 ETH0.00031736
Transfer55202112018-04-28 10:58:272471 days ago1524913107IN
0x8b25669b...f5FdE353e
0 ETH0.0008958523.60746188
Transfer54620862018-04-18 10:22:322481 days ago1524046952IN
0x8b25669b...f5FdE353e
0 ETH0.000037881
Transfer54186402018-04-11 1:44:132489 days ago1523411053IN
0x8b25669b...f5FdE353e
0 ETH0.000113463
Transfer54186352018-04-11 1:42:442489 days ago1523410964IN
0x8b25669b...f5FdE353e
0 ETH0.000113463
Transfer54186132018-04-11 1:37:452489 days ago1523410665IN
0x8b25669b...f5FdE353e
0 ETH0.000113843
Transfer53761492018-04-04 0:55:272496 days ago1522803327IN
0x8b25669b...f5FdE353e
0 ETH0.000105762
Transfer53723862018-04-03 9:54:382496 days ago1522749278IN
0x8b25669b...f5FdE353e
0 ETH0.000211533.99999872
Transfer53344042018-03-28 1:40:562503 days ago1522201256IN
0x8b25669b...f5FdE353e
0 ETH0.000211794
Transfer53302642018-03-27 8:59:132503 days ago1522141153IN
0x8b25669b...f5FdE353e
0 ETH0.000211534
Transfer52984552018-03-22 1:52:022509 days ago1521683522IN
0x8b25669b...f5FdE353e
0 ETH0.000264745
Transfer52930072018-03-21 3:45:082510 days ago1521603908IN
0x8b25669b...f5FdE353e
0 ETH0.000211794
Transfer52710702018-03-17 11:19:272513 days ago1521285567IN
0x8b25669b...f5FdE353e
0 ETH0.000211534
Transfer52710432018-03-17 11:11:022513 days ago1521285062IN
0x8b25669b...f5FdE353e
0 ETH0.000022881
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xc54083e7...ff03c9D17
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TokenERC20

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-06-06
*/

pragma solidity ^0.4.16;

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

contract TokenERC20 {
    // Public variables of the token
    string public name;							/* name 代币名称 */
    string public symbol;						/* symbol 代币图标 */
    uint8  public decimals = 18;			/* decimals 代币小数点位数 */ 
    uint256 public totalSupply;			//代币总量

    
    /* 设置一个数组存储每个账户的代币信息,创建所有账户余额数组 */
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    // This generates a public event on the blockchain that will notify clients
    /* event事件,它的作用是提醒客户端发生了这个事件,你会注意到钱包有时候会在右下角弹出信息 */
    event Transfer(address indexed from, address indexed to, uint256 value);

    // This notifies clients about the amount burnt
    event Burn(address indexed from, uint256 value);

    /**
     * Constrctor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
     /*初始化合约,将最初的令牌打入创建者的账户中*/
    function TokenERC20(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public {
        totalSupply = initialSupply * 10 ** uint256(decimals);  //以太币是10^18,后面18个0,所以默认decimals是18,给令牌设置18位小数的长度
        balanceOf[msg.sender] = totalSupply;                		// 给创建者所有初始令牌
        name = tokenName;                                   		// 设置代币(token)名称
        symbol = tokenSymbol;                               		// 设置代币(token)符号
    }

    /**
     * Internal transfer, only can be called by this contract
     */
     /**
     * 私有方法从一个帐户发送给另一个帐户代币
     * @param  _from address 发送代币的地址
     * @param  _to address 接受代币的地址
     * @param  _value uint256 接受代币的数量
     */
    function _transfer(address _from, address _to, uint _value) internal {
    
        // Prevent transfer to 0x0 address. Use burn() instead
        //避免转帐的地址是0x0
        require(_to != 0x0);
        
        // Check if the sender has enough
        //检查发送者是否拥有足够余额
        require(balanceOf[_from] >= _value);
        
        // Check for overflows
        //检查是否溢出
        require(balanceOf[_to] + _value > balanceOf[_to]);
        
        // Save this for an assertion in the future
        //保存数据用于后面的判断
        uint previousBalances = balanceOf[_from] + balanceOf[_to];
        
        // Subtract from the sender
        //从发送者减掉发送额
        balanceOf[_from] -= _value;
        
        // Add the same to the recipient
        //给接收者加上相同的量
        balanceOf[_to] += _value;
        
        //通知任何监听该交易的客户端
        Transfer(_from, _to, _value);
        
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        
        //判断买、卖双方的数据是否和转换前一致
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
    }

    
     /**
     * 从主帐户合约调用者发送给别人代币
     * @param  _to address 接受代币的地址
     * @param  _value uint256 接受代币的数量
     */
    function transfer(address _to, uint256 _value) public {
        _transfer(msg.sender, _to, _value);
    }

     /**
     * 从某个指定的帐户中,向另一个帐户发送代币
     *
     * 调用过程,会检查设置的允许最大交易额
     *
     * @param  _from address 发送者地址
     * @param  _to address 接受者地址
     * @param  _value uint256 要转移的代币数量
     * @return success        是否交易成功
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

 		/**
     * 设置帐户允许支付的最大金额
     * 一般在智能合约的时候,避免支付过多,造成风险
     * @param _spender 帐户地址
     * @param _value 金额
     */
    function approve(address _spender, uint256 _value) public
        returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        return true;
    }

		/**
     * 设置帐户允许支付的最大金额
     * 一般在智能合约的时候,避免支付过多,造成风险,加入时间参数,可以在 tokenRecipient 中做其他操作
     * @param _spender 帐户地址
     * @param _value 金额
     * @param _extraData 操作的时间
     */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData)
        public
        returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, this, _extraData);
            return true;
        }
    }

    /**
     * 减少代币调用者的余额
     * 操作以后是不可逆的
     * @param _value 要删除的数量
     */
    function burn(uint256 _value) public returns (bool success) {
        require(balanceOf[msg.sender] >= _value);   // Check if the sender has enough
        balanceOf[msg.sender] -= _value;            // Subtract from the sender
        totalSupply -= _value;                      // Updates totalSupply
        Burn(msg.sender, _value);
        return true;
    }

    /**
     * 删除帐户的余额(含其他帐户)
     * 删除以后是不可逆的
     * @param _from 要操作的帐户地址
     * @param _value 要减去的数量
     */
    function burnFrom(address _from, uint256 _value) public returns (bool success) {
        require(balanceOf[_from] >= _value);                // Check if the targeted balance is enough
        require(_value <= allowance[_from][msg.sender]);    // Check allowance
        balanceOf[_from] -= _value;                         // Subtract from the targeted balance
        allowance[_from][msg.sender] -= _value;             // Subtract from the sender's allowance
        totalSupply -= _value;                              // Update totalSupply
        Burn(_from, _value);
        return true;
    }
}

Contract Security Audit

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":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"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":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}]

Deployed Bytecode

0x6060604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd1461017e57806323b872dd146101a3578063313ce567146101cb57806342966c68146101f457806370a082311461020a57806379cc67901461022957806395d89b411461024b578063a9059cbb1461025e578063cae9ca5114610282578063dd62ed3e146102e7575b600080fd5b34156100c957600080fd5b6100d161030c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561010d5780820151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015357600080fd5b61016a600160a060020a03600435166024356103aa565b604051901515815260200160405180910390f35b341561018957600080fd5b6101916103da565b60405190815260200160405180910390f35b34156101ae57600080fd5b61016a600160a060020a03600435811690602435166044356103e0565b34156101d657600080fd5b6101de610457565b60405160ff909116815260200160405180910390f35b34156101ff57600080fd5b61016a600435610460565b341561021557600080fd5b610191600160a060020a03600435166104eb565b341561023457600080fd5b61016a600160a060020a03600435166024356104fd565b341561025657600080fd5b6100d16105d9565b341561026957600080fd5b610280600160a060020a0360043516602435610644565b005b341561028d57600080fd5b61016a60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061065395505050505050565b34156102f257600080fd5b610191600160a060020a0360043581169060243516610785565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103a25780601f10610377576101008083540402835291602001916103a2565b820191906000526020600020905b81548152906001019060200180831161038557829003601f168201915b505050505081565b600160a060020a033381166000908152600560209081526040808320938616835292905220819055600192915050565b60035481565b600160a060020a0380841660009081526005602090815260408083203390941683529290529081205482111561041557600080fd5b600160a060020a038085166000908152600560209081526040808320339094168352929052208054839003905561044d8484846107a2565b5060019392505050565b60025460ff1681565b600160a060020a0333166000908152600460205260408120548290101561048657600080fd5b600160a060020a03331660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a2506001919050565b60046020526000908152604090205481565b600160a060020a0382166000908152600460205260408120548290101561052357600080fd5b600160a060020a038084166000908152600560209081526040808320339094168352929052205482111561055657600080fd5b600160a060020a038084166000818152600460209081526040808320805488900390556005825280832033909516835293905282902080548590039055600380548590039055907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a250600192915050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103a25780601f10610377576101008083540402835291602001916103a2565b61064f3383836107a2565b5050565b60008361066081856103aa565b1561077d5780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107165780820151838201526020016106fe565b50505050905090810190601f1680156107435780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561076457600080fd5b6102c65a03f1151561077557600080fd5b505050600191505b509392505050565b600560209081526000928352604080842090915290825290205481565b6000600160a060020a03831615156107b957600080fd5b600160a060020a038416600090815260046020526040902054829010156107df57600080fd5b600160a060020a0383166000908152600460205260409020548281011161080557600080fd5b50600160a060020a0380831660008181526004602052604080822080549488168084528284208054888103909155938590528154870190915591909301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600160a060020a038084166000908152600460205260408082205492871682529020540181146108a257fe5b505050505600a165627a7a723058203268fea39cb944bcb82493ce6d87e0760de2d6594d9ed944efef8715d6ca51160029

Swarm Source

bzzr://3268fea39cb944bcb82493ce6d87e0760de2d6594d9ed944efef8715d6ca5116

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.