Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x582c3Abb...592ea257a 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.19+commit.c4cbbb05
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-12 */ /** *Submitted for verification at Etherscan.io on 2020-05-05 */ pragma solidity ^0.4.19; interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; } contract TokenERC20 { string public name; string public symbol; uint8 public decimals = 18; uint256 public totalSupply; // 用mapping保存每个地址对应的余额 mapping (address => uint256) public balanceOf; // 存储对账号的控制 mapping (address => mapping (address => uint256)) public allowance; // 事件,用来通知客户端交易发生 event Transfer(address indexed from, address indexed to, uint256 value); // 事件,用来通知客户端代币被消费 event Burn(address indexed from, uint256 value); /* *初始化构造 */ function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public { totalSupply = initialSupply * 10 ** uint256(decimals); // 供应的份额,份额跟最小的代币单位有关,份额 = 币 balanceOf[msg.sender] = totalSupply; // 创建者拥有所有的代币 name = tokenName; // 代币名称 symbol = tokenSymbol; // 代币符号 } //代币交易转移的内部实现 function _transfer(address _from, address _to, uint _value) internal { // 确保目标地址不为0x0,因为0x0地址代表销毁 require(_to != 0x0); // 检查发送者余额 require(balanceOf[_from] >= _value); // 确保转移为正数个 require(balanceOf[_to] + _value > balanceOf[_to]); // 以下用来检查交易, 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); // 用assert来检查代码逻辑。 assert(balanceOf[_from] + balanceOf[_to] == previousBalances); } /***** **代币交易转移 **从自己(创建交易者)账号发送`_value`个代币到 `_to`账号 **@param _to 接收者地址 **@param _value 转移数额 **/ function transfer(address _to, uint256 _value) public { _transfer(msg.sender, _to, _value); } /***** **账号之间代币交易转移 **@param _from 发送者地址 **@param _to 接收者地址 **@param _value 转移数额 **/ 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; } /***** **设置某个地址(合约)可以创建交易者名义花费的代币数 **允许发送者`_spender` 花费不多于 `_value` 个代币 **@param _spender The address authorized to spend **@param _value the max amount they can spend **/ function approve(address _spender, uint256 _value) public returns (bool success) { allowance[msg.sender][_spender] = _value; return true; } /***** **设置允许一个地址(合约)以我(创建交易者)的名义可最多花费的代币数 **@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; } } ///销毁我(创建交易者)账户中指定个代币 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; } /***** **销毁用户账户中指定个代币 **Remove `_value` tokens from the system irreversibly on behalf of `_from **@param _from the address of the sender **@param _value the amount of money to burn **/ 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; } } pragma solidity ^0.4.19; contract Token { /// token总量,默认会为public变量生成一个getter函数接口,名称为totalSupply(). uint256 public totalSupply; /// 获取账户_owner拥有token的数量 function balanceOf(address _owner) constant returns (uint256 balance); //从消息发送者账户中往_to账户转数量为_value的token function transfer(address _to, uint256 _value) returns (bool success); //从账户_from中往账户_to转数量为_value的token,与approve方法配合使用 function transferFrom(address _from, address _to, uint256 _value) returns (bool success); //消息发送账户设置账户_spender能从发送账户中转出数量为_value的token function approve(address _spender, uint256 _value) returns (bool success); //获取账户_spender可以从账户_owner中转出token的数量 function allowance(address _owner, address _spender) constant returns (uint256 remaining); //发生转账时必须要触发的事件 event Transfer(address indexed _from, address indexed _to, uint256 _value); //当函数approve(address _spender, uint256 _value)成功执行时必须触发的事件 event Approval(address indexed _owner, address indexed _spender, uint256 _value); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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
0x6060604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd1461017e57806323b872dd146101a3578063313ce567146101cb57806342966c68146101f457806370a082311461020a57806379cc67901461022957806395d89b411461024b578063a9059cbb1461025e578063cae9ca5114610282578063dd62ed3e146102e7575b600080fd5b34156100c957600080fd5b6100d161030c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561010d5780820151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015357600080fd5b61016a600160a060020a03600435166024356103aa565b604051901515815260200160405180910390f35b341561018957600080fd5b6101916103da565b60405190815260200160405180910390f35b34156101ae57600080fd5b61016a600160a060020a03600435811690602435166044356103e0565b34156101d657600080fd5b6101de610457565b60405160ff909116815260200160405180910390f35b34156101ff57600080fd5b61016a600435610460565b341561021557600080fd5b610191600160a060020a03600435166104eb565b341561023457600080fd5b61016a600160a060020a03600435166024356104fd565b341561025657600080fd5b6100d16105d9565b341561026957600080fd5b610280600160a060020a0360043516602435610644565b005b341561028d57600080fd5b61016a60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061065395505050505050565b34156102f257600080fd5b610191600160a060020a0360043581169060243516610785565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103a25780601f10610377576101008083540402835291602001916103a2565b820191906000526020600020905b81548152906001019060200180831161038557829003601f168201915b505050505081565b600160a060020a033381166000908152600560209081526040808320938616835292905220819055600192915050565b60035481565b600160a060020a0380841660009081526005602090815260408083203390941683529290529081205482111561041557600080fd5b600160a060020a038085166000908152600560209081526040808320339094168352929052208054839003905561044d8484846107a2565b5060019392505050565b60025460ff1681565b600160a060020a0333166000908152600460205260408120548290101561048657600080fd5b600160a060020a03331660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a2506001919050565b60046020526000908152604090205481565b600160a060020a0382166000908152600460205260408120548290101561052357600080fd5b600160a060020a038084166000908152600560209081526040808320339094168352929052205482111561055657600080fd5b600160a060020a038084166000818152600460209081526040808320805488900390556005825280832033909516835293905282902080548590039055600380548590039055907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a250600192915050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103a25780601f10610377576101008083540402835291602001916103a2565b61064f3383836107a2565b5050565b60008361066081856103aa565b1561077d5780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107165780820151838201526020016106fe565b50505050905090810190601f1680156107435780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561076457600080fd5b6102c65a03f1151561077557600080fd5b505050600191505b509392505050565b600560209081526000928352604080842090915290825290205481565b6000600160a060020a03831615156107b957600080fd5b600160a060020a038416600090815260046020526040902054829010156107df57600080fd5b600160a060020a0383166000908152600460205260409020548281011161080557600080fd5b50600160a060020a0380831660008181526004602052604080822080549488168084528284208054888103909155938590528154870190915591909301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600160a060020a038084166000908152600460205260408082205492871682529020540181146108a257fe5b505050505600a165627a7a72305820f1a591c493df2a4bc48024be845ac8a40e3062443c9476a633cddd3fd89320790029
Deployed Bytecode Sourcemap
225:4662:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;249:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2967:150:0;;;;;;;;;;-1:-1:-1;;;;;2967:150:0;;;;;;;;;;;;;;;;;;;;;;;;325:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2434:269;;;;;;;;;;-1:-1:-1;;;;;2434:269:0;;;;;;;;;;;;295:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3763:336;;;;;;;;;;;;;;406:45;;;;;;;;;;-1:-1:-1;;;;;406:45:0;;;;;4323:561;;;;;;;;;;-1:-1:-1;;;;;4323:561:0;;;;;;;271:20;;;;;;;;;;;;2182:99;;;;;;;;;;-1:-1:-1;;;;;2182:99:0;;;;;;;;;3386:314;;;;;;;;;;;;;-1:-1:-1;;;;;3386:314:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3386:314:0;;-1:-1:-1;3386:314:0;;-1:-1:-1;;;;;;3386:314:0;485:66;;;;;;;;;;-1:-1:-1;;;;;485:66:0;;;;;;;;;;249:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2967:150::-;-1:-1:-1;;;;;3066:10:0;3056:21;;3037:12;3056:21;;;:9;:21;;;;;;;;:31;;;;;;;;;:40;;;3108:4;2967:150;;;;:::o;325:26::-;;;;:::o;2434:269::-;-1:-1:-1;;;;;2553:16:0;;;2516:12;2553:16;;;:9;:16;;;;;;;;2570:10;2553:28;;;;;;;;;;;;2543:38;;;2535:47;;;;;;-1:-1:-1;;;;;2610:16:0;;;;;;;:9;:16;;;;;;;;2627:10;2610:28;;;;;;;;;:38;;;;;;;2653:29;2620:5;2670:3;2642:6;2653:9;:29::i;:::-;-1:-1:-1;2694:4:0;2434:269;;;;;:::o;295:26::-;;;;;;:::o;3763:336::-;-1:-1:-1;;;;;3846:10:0;3836:21;3809:12;3836:21;;;:9;:21;;;;;;:31;;;;3828:40;;;;;;-1:-1:-1;;;;;3919:10:0;3909:21;;;;;:9;:21;;;;;;;:31;;;;;;;3984:11;:21;;;;;;;4054:24;;3934:6;;4054:24;;;;;;;;;;;;;-1:-1:-1;4090:4:0;3763:336;;;:::o;406:45::-;;;;;;;;;;;;;:::o;4323:561::-;-1:-1:-1;;;;;4415:16:0;;4388:12;4415:16;;;:9;:16;;;;;;:26;;;;4407:35;;;;;;-1:-1:-1;;;;;4523:16:0;;;;;;;:9;:16;;;;;;;;4540:10;4523:28;;;;;;;;;;4513:38;;;4505:47;;;;;;-1:-1:-1;;;;;4579:16:0;;;;;;;:9;:16;;;;;;;;:26;;;;;;;4672:9;:16;;;;;4689:10;4672:28;;;;;;;;;;;:38;;;;;;;4767:11;:21;;;;;;;4579:16;4844:19;;4599:6;;4844:19;;;;;;;;;;;;;-1:-1:-1;4875:4:0;4323:561;;;;:::o;271:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2182:99;2241:34;2251:10;2263:3;2268:6;2241:9;:34::i;:::-;2182:99;;:::o;3386:314::-;3484:12;3543:8;3561:25;3543:8;3579:6;3561:7;:25::i;:::-;3557:138;;;3612:7;-1:-1:-1;;;;;3612:23:0;;3636:10;3648:6;3656:4;3662:10;3612:61;;;;;;;;;;;;;-1:-1:-1;;;;;3612:61:0;-1:-1:-1;;;;;3612:61:0;;;;;;;;;;;-1:-1:-1;;;;;3612:61:0;-1:-1:-1;;;;;3612:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3685:4:0;3678:11;;3557:138;3386:314;;;;;;:::o;485:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1310:688::-;1663:21;-1:-1:-1;;;;;1456:10:0;;;;1448:19;;;;;;-1:-1:-1;;;;;1508:16:0;;;;;;:9;:16;;;;;;:26;;;;1500:35;;;;;;-1:-1:-1;;;;;1605:14:0;;;;;;:9;:14;;;;;;1579:23;;;:40;1571:49;;;;;;-1:-1:-1;;;;;;1706:14:0;;;;;;;:9;:14;;;;;;;;1687:16;;;;;;;;;;;1756:26;;;;;;1827:14;;;;:24;;;;;;;1687:33;;;;;1856:28;;1776:6;;1856:28;;;;;;;;;;;;;-1:-1:-1;;;;;1959:14:0;;;;;;;:9;:14;;;;;;;1940:16;;;;;;;;:33;:53;;1933:61;;;;1310:688;;;;:::o
Swarm Source
bzzr://f1a591c493df2a4bc48024be845ac8a40e3062443c9476a633cddd3fd8932079
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.