More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 69,577 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18340105 | 320 days ago | IN | 0 ETH | 0.00013934 | ||||
Transfer | 14790217 | 834 days ago | IN | 0 ETH | 0.00243581 | ||||
Transfer | 11955661 | 1276 days ago | IN | 0 ETH | 0.00468679 | ||||
Approve | 11010792 | 1421 days ago | IN | 0 ETH | 0.00217776 | ||||
Approve | 11010383 | 1421 days ago | IN | 0 ETH | 0.00149721 | ||||
Transfer | 11010329 | 1421 days ago | IN | 0 ETH | 0.00383985 | ||||
Approve | 10957606 | 1429 days ago | IN | 0 ETH | 0.00857493 | ||||
Approve | 10915488 | 1436 days ago | IN | 0 ETH | 0.00322127 | ||||
Transfer | 10914045 | 1436 days ago | IN | 0 ETH | 0.00438744 | ||||
Transfer | 10896976 | 1438 days ago | IN | 0 ETH | 0.00394564 | ||||
Transfer | 10896810 | 1438 days ago | IN | 0 ETH | 0.00390579 | ||||
Transfer | 10893019 | 1439 days ago | IN | 0 ETH | 0.00585868 | ||||
Transfer | 10884976 | 1440 days ago | IN | 0 ETH | 0.02429013 | ||||
Approve | 10843038 | 1447 days ago | IN | 0 ETH | 0.00376571 | ||||
Transfer | 10611884 | 1482 days ago | IN | 0 ETH | 0.00166938 | ||||
Transfer | 10611850 | 1482 days ago | IN | 0 ETH | 0.00121907 | ||||
Transfer | 10611840 | 1482 days ago | IN | 0 ETH | 0.00243261 | ||||
Transfer | 10520313 | 1496 days ago | IN | 0 ETH | 0.0037754 | ||||
Approve | 10493744 | 1500 days ago | IN | 0 ETH | 0.00204165 | ||||
Transfer | 10454627 | 1506 days ago | IN | 0 ETH | 0.00137077 | ||||
Transfer | 10431157 | 1510 days ago | IN | 0 ETH | 0.00118065 | ||||
Transfer | 10286926 | 1532 days ago | IN | 0 ETH | 0.00096021 | ||||
Transfer | 10246402 | 1539 days ago | IN | 0 ETH | 0.00131517 | ||||
Transfer | 10246380 | 1539 days ago | IN | 0 ETH | 0.00081994 | ||||
Transfer | 10246340 | 1539 days ago | IN | 0 ETH | 0.00139492 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xA5e99ad2...261981af1 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
MyAdvancedToken
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-08-02 */ pragma solidity ^0.4.16; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract owned { address public owner; constructor() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address newOwner) onlyOwner public { owner = newOwner; } } contract TokenERC20 { using SafeMath for uint256; // Public variables of the token string public name; string public symbol; uint8 public decimals = 18; // 18 decimals is the strongly suggested default, avoid changing it uint256 public totalSupply; // This creates an array with all balances 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 Transfer(address indexed from, address indexed to, uint256 value); // event Approval(address indexed owner, address indexed spender, 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 */ constructor( uint256 initialSupply, string tokenName, string tokenSymbol ) public { totalSupply = initialSupply * 10 ** uint256(decimals); // Update total supply with the decimal amount balanceOf[msg.sender] = totalSupply; // Give the creator all initial tokens name = tokenName; // Set the name for display purposes symbol = tokenSymbol; // Set the symbol for display purposes } /** * Internal transfer, only can be called by this contract */ function _transfer(address _from, address _to, uint _value) internal { // Prevent transfer to 0x0 address. Use burn() instead 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; emit 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); } /** * Transfer tokens * * Send `_value` tokens to `_to` from your account * * @param _to The address of the recipient * @param _value the amount to send */ function transfer(address _to, uint256 _value) public returns (bool success) { _transfer(msg.sender, _to, _value); return true; } /** * Transfer tokens from other address * * Send `_value` tokens to `_to` in behalf of `_from` * * @param _from The address of the sender * @param _to The address of the recipient * @param _value the amount to send */ 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; } /** * Set allowance for other address * * Allows `_spender` to spend no more than `_value` tokens in your behalf * * @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) { require((_value == 0) || (allowance[msg.sender][_spender] == 0)); allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * Destroy tokens * * Remove `_value` tokens from the system irreversibly * * @param _value the amount of money to burn */ 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 totalSupply = totalSupply.sub(_value); emit Burn(msg.sender, _value); return true; } /** * Destroy tokens from other account * * 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 totalSupply = totalSupply.sub(_value); emit Burn(_from, _value); return true; } } /******************************************/ /* ADVANCED TOKEN STARTS HERE */ /******************************************/ contract MyAdvancedToken is owned, TokenERC20 { /* uint256 public sellPrice; uint256 public buyPrice; */ mapping (address => bool) public frozenAccount; /* This generates a public event on the blockchain that will notify clients */ event FrozenFunds(address target, bool frozen); /* Initializes contract with initial supply tokens to the creator of the contract */ constructor( uint256 initialSupply, string tokenName, string tokenSymbol ) TokenERC20(initialSupply, tokenName, tokenSymbol) public {} /* Internal transfer, only can be called by this contract */ function _transfer(address _from, address _to, uint _value) internal { require (_to != 0x0); // Prevent transfer to 0x0 address. Use burn() instead require (balanceOf[_from] >= _value); // Check if the sender has enough require (balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows require(!frozenAccount[_from]); // Check if sender is frozen require(!frozenAccount[_to]); // Check if recipient is frozen balanceOf[_from] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient emit Transfer(_from, _to, _value); } /// @notice `freeze? Prevent | Allow` `target` from sending & receiving tokens /// @param target Address to be frozen /// @param freeze either to freeze it or not function freezeAccount(address target, bool freeze) onlyOwner public { frozenAccount[target] = freeze; emit FrozenFunds(target, freeze); } }
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":"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":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":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","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":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}]
Deployed Bytecode
0x6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd146101a157806323b872dd146101c8578063313ce567146101f257806342966c681461021d57806370a082311461023557806379cc6790146102565780638da5cb5b1461027a57806395d89b41146102ab578063a9059cbb146102c0578063b414d4b6146102e4578063dd62ed3e14610305578063e724529c1461032c578063f2fde38b14610354575b600080fd5b3480156100eb57600080fd5b506100f4610375565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a0360043516602435610402565b604080519115158252519081900360200190f35b3480156101ad57600080fd5b506101b66104a4565b60408051918252519081900360200190f35b3480156101d457600080fd5b5061018d600160a060020a03600435811690602435166044356104aa565b3480156101fe57600080fd5b50610207610519565b6040805160ff9092168252519081900360200190f35b34801561022957600080fd5b5061018d600435610522565b34801561024157600080fd5b506101b6600160a060020a03600435166105a8565b34801561026257600080fd5b5061018d600160a060020a03600435166024356105ba565b34801561028657600080fd5b5061028f6106a5565b60408051600160a060020a039092168252519081900360200190f35b3480156102b757600080fd5b506100f46106b4565b3480156102cc57600080fd5b5061018d600160a060020a036004351660243561070c565b3480156102f057600080fd5b5061018d600160a060020a0360043516610722565b34801561031157600080fd5b506101b6600160a060020a0360043581169060243516610737565b34801561033857600080fd5b50610352600160a060020a03600435166024351515610754565b005b34801561036057600080fd5b50610352600160a060020a03600435166107cf565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103fa5780601f106103cf576101008083540402835291602001916103fa565b820191906000526020600020905b8154815290600101906020018083116103dd57829003601f168201915b505050505081565b60008115806104325750336000908152600660209081526040808320600160a060020a0387168452909152902054155b151561043d57600080fd5b336000818152600660209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60045481565b600160a060020a03831660009081526006602090815260408083203384529091528120548211156104da57600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290208054839003905561050f848484610815565b5060019392505050565b60035460ff1681565b3360009081526005602052604081205482111561053e57600080fd5b33600090815260056020526040902080548390039055600454610567908363ffffffff61092e16565b60045560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b60056020526000908152604090205481565b600160a060020a0382166000908152600560205260408120548211156105df57600080fd5b600160a060020a038316600090815260066020908152604080832033845290915290205482111561060f57600080fd5b600160a060020a0383166000908152600560209081526040808320805486900390556006825280832033845290915290208054839003905560045461065a908363ffffffff61092e16565b600455604080518381529051600160a060020a038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250600192915050565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156103fa5780601f106103cf576101008083540402835291602001916103fa565b6000610719338484610815565b50600192915050565b60076020526000908152604090205460ff1681565b600660209081526000928352604080842090915290825290205481565b600054600160a060020a0316331461076b57600080fd5b600160a060020a038216600081815260076020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600054600160a060020a031633146107e657600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038216151561082a57600080fd5b600160a060020a03831660009081526005602052604090205481111561084f57600080fd5b600160a060020a038216600090815260056020526040902054818101101561087657600080fd5b600160a060020a03831660009081526007602052604090205460ff161561089c57600080fd5b600160a060020a03821660009081526007602052604090205460ff16156108c257600080fd5b600160a060020a03808416600081815260056020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b60008282111561093a57fe5b509003905600a165627a7a72305820ca77735677ede803475ef9c870fdfe4d01e90c6394f344158c3fd2878af069020029
Swarm Source
bzzr://ca77735677ede803475ef9c870fdfe4d01e90c6394f344158c3fd2878af06902
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.