Latest 25 from a total of 3,099 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 20586367 | 22 hrs ago | IN | 0 ETH | 0.00003806 | ||||
Transfer | 20584785 | 27 hrs ago | IN | 0 ETH | 0.0000808 | ||||
Transfer | 20581173 | 39 hrs ago | IN | 0 ETH | 0.00007719 | ||||
Transfer | 20580704 | 41 hrs ago | IN | 0 ETH | 0.00017874 | ||||
Approve | 20580634 | 41 hrs ago | IN | 0 ETH | 0.0000434 | ||||
Transfer | 20578779 | 2 days ago | IN | 0 ETH | 0.00015481 | ||||
Transfer | 20577437 | 2 days ago | IN | 0 ETH | 0.00039501 | ||||
Transfer | 20577415 | 2 days ago | IN | 0 ETH | 0.00028315 | ||||
Transfer | 20576148 | 2 days ago | IN | 0 ETH | 0.00005077 | ||||
Approve | 20573773 | 2 days ago | IN | 0 ETH | 0.00004044 | ||||
Transfer | 20572454 | 2 days ago | IN | 0 ETH | 0.00017874 | ||||
Transfer | 20572387 | 2 days ago | IN | 0 ETH | 0.00020763 | ||||
Approve | 20572316 | 2 days ago | IN | 0 ETH | 0.00002749 | ||||
Approve | 20571117 | 3 days ago | IN | 0 ETH | 0.00008491 | ||||
Transfer | 20565500 | 3 days ago | IN | 0 ETH | 0.00015026 | ||||
Approve | 20553166 | 5 days ago | IN | 0 ETH | 0.00015547 | ||||
Transfer | 20547538 | 6 days ago | IN | 0 ETH | 0.0001786 | ||||
Approve | 20547412 | 6 days ago | IN | 0 ETH | 0.00004773 | ||||
Transfer | 20547369 | 6 days ago | IN | 0 ETH | 0.0001786 | ||||
Transfer | 20538770 | 7 days ago | IN | 0 ETH | 0.0001786 | ||||
Transfer | 20536578 | 7 days ago | IN | 0 ETH | 0.0001786 | ||||
Transfer | 20536534 | 7 days ago | IN | 0 ETH | 0.00020763 | ||||
Transfer | 20531323 | 8 days ago | IN | 0 ETH | 0.0001786 | ||||
Approve | 20531179 | 8 days ago | IN | 0 ETH | 0.00010795 | ||||
Approve | 20531174 | 8 days ago | IN | 0 ETH | 0.00015958 |
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 0x2C4dDAEE...f8c36719f The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Token
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.10; import "erc20.sol"; /** * Token * * ERC-20 implementation, with mint & burn */ contract Token is IERC20 { address internal owner; address internal pendingOwner; address internal issuer; uint8 public decimals; uint256 public totalSupply; uint256 internal maxSupply; mapping (address => uint256) public override balanceOf; mapping (address => mapping (address => uint256)) public override allowance; string public name; string public symbol; event NewIssuer(address indexed issuer); event TransferOwnership(address indexed owner, bool indexed confirmed); modifier only(address role) { require(msg.sender == role); // dev: missing role _; } /** * Sets the token fields: name, symbol and decimals * * @param tokenName Name of the token * @param tokenSymbol Token Symbol * @param tokenDecimals Decimal places * @param tokenOwner Token Owner * @param tokenIssuer Token Issuer * @param tokenMaxSupply Max total supply */ constructor(string memory tokenName, string memory tokenSymbol, uint8 tokenDecimals, address tokenOwner, address tokenIssuer, uint256 tokenMaxSupply) { require(tokenOwner != address(0)); // dev: invalid owner require(tokenIssuer != address(0)); // dev: invalid issuer require(tokenMaxSupply > 0); // dev: invalid max supply name = tokenName; symbol = tokenSymbol; decimals = tokenDecimals; owner = tokenOwner; issuer = tokenIssuer; maxSupply = tokenMaxSupply; } /** * Sets the owner * * @param newOwner Address of the new owner (must be confirmed by the new owner) */ function transferOwnership(address newOwner) external only(owner) { pendingOwner = newOwner; emit TransferOwnership(pendingOwner, false); } /** * Confirms the new owner */ function confirmOwnership() external only(pendingOwner) { owner = pendingOwner; pendingOwner = address(0); emit TransferOwnership(owner, true); } /** * Sets the issuer * * @param newIssuer Address of the issuer */ function setIssuer(address newIssuer) external only(owner) { issuer = newIssuer; emit NewIssuer(issuer); } /** * Mints {value} tokens to the {to} wallet. * * @param to The address receiving the newly minted tokens * @param value The number of tokens to mint */ function mint(address to, uint256 value) external only(issuer) { require(to != address(0)); // dev: requires non-zero address require(totalSupply + value <= maxSupply); // dev: exceeds max supply unchecked { totalSupply += value; balanceOf[to] += value; } emit Transfer(address(0), to, value); } /** * Approves the {spender} to transfer {value} tokens of the caller. * * @param spender The address which will spend the funds * @param value The value approved to be spent by the spender * @return A boolean that indicates if the operation was successful */ function approve(address spender, uint256 value) external override returns(bool) { allowance[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /** * Transfers {value} tokens from the caller, to {to} * * @param to The address to transfer tokens to * @param value The number of tokens to be transferred * @return A boolean that indicates if the operation was successful */ function transfer(address to, uint256 value) external override returns (bool) { updateBalance(msg.sender, to, value); return true; } /** * Transfers {value} tokens of {from} to {to}, on behalf of the caller. * * @param from The address to transfer tokens from * @param to The address to transfer tokens to * @param value The number of tokens to be transferred * @return A boolean that indicates if the operation was successful */ function transferFrom(address from, address to, uint256 value) external override returns (bool) { require(allowance[from][msg.sender] >= value); // dev: exceeds allowance updateBalance(from, to, value); unchecked { allowance[from][msg.sender] -= value; } return true; } function updateBalance(address from, address to, uint256 value) internal { require(to != address(0)); // dev: requires non-zero address require(balanceOf[from] >= value); // dev: exceeds balance unchecked { balanceOf[from] -= value; balanceOf[to] += value; } emit Transfer(from, to, value); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.4.0; interface IERC20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); function approve(address spender, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); }
{ "evmVersion": "istanbul", "optimizer": { "enabled": true, "runs": 1000 }, "libraries": { "token.sol": {} }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"tokenIssuer","type":"address"},{"internalType":"uint256","name":"tokenMaxSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"issuer","type":"address"}],"name":"NewIssuer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"bool","name":"confirmed","type":"bool"}],"name":"TransferOwnership","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"confirmOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newIssuer","type":"address"}],"name":"setIssuer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806355cc4e571161008c578063a9059cbb11610066578063a9059cbb146101d6578063d5d1e770146101e9578063dd62ed3e146101f1578063f2fde38b1461021c57600080fd5b806355cc4e571461019b57806370a08231146101ae57806395d89b41146101ce57600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f57806340c10f191461018657600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61022f565b6040516100f99190610652565b60405180910390f35b6101156101103660046106c3565b6102bd565b60405190151581526020016100f9565b61012e60035481565b6040519081526020016100f9565b61011561014a3660046106ed565b610329565b6002546101749074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016100f9565b6101996101943660046106c3565b610398565b005b6101996101a9366004610729565b61043d565b61012e6101bc366004610729565b60056020526000908152604090205481565b6100ec6104ad565b6101156101e43660046106c3565b6104ba565b6101996104d0565b61012e6101ff36600461074b565b600660209081526000928352604080842090915290825290205481565b61019961022a366004610729565b610545565b6007805461023c9061077e565b80601f01602080910402602001604051908101604052809291908181526020018280546102689061077e565b80156102b55780601f1061028a576101008083540402835291602001916102b5565b820191906000526020600020905b81548152906001019060200180831161029857829003601f168201915b505050505081565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103189086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205482111561035957600080fd5b6103648484846105b8565b506001600160a01b038316600090815260066020908152604080832033845290915290208054829003905560019392505050565b6002546001600160a01b03163381146103b057600080fd5b6001600160a01b0383166103c357600080fd5b600454826003546103d491906107b9565b11156103df57600080fd5b60038054830190556001600160a01b0383166000818152600560209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b6000546001600160a01b031633811461045557600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040517f33209da902260b15af88d27b2383f608bb1ed36eeb4ddef27866de5eafe0752290600090a25050565b6008805461023c9061077e565b60006104c73384846105b8565b50600192915050565b6001546001600160a01b03163381146104e857600080fd5b60018054600080546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff1991821681178355921683556040517fcbe2aa772079086290469c944126fdc8e1438a556b92ebdb5044506435217f049190a350565b6000546001600160a01b031633811461055d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604051600091907fcbe2aa772079086290469c944126fdc8e1438a556b92ebdb5044506435217f04908390a35050565b6001600160a01b0382166105cb57600080fd5b6001600160a01b0383166000908152600560205260409020548111156105f057600080fd5b6001600160a01b03808416600081815260056020526040808220805486900390559285168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104309085815260200190565b600060208083528351808285015260005b8181101561067f57858101830151858201604001528201610663565b81811115610691576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146106be57600080fd5b919050565b600080604083850312156106d657600080fd5b6106df836106a7565b946020939093013593505050565b60008060006060848603121561070257600080fd5b61070b846106a7565b9250610719602085016106a7565b9150604084013590509250925092565b60006020828403121561073b57600080fd5b610744826106a7565b9392505050565b6000806040838503121561075e57600080fd5b610767836106a7565b9150610775602084016106a7565b90509250929050565b600181811c9082168061079257607f821691505b602082108114156107b357634e487b7160e01b600052602260045260246000fd5b50919050565b600082198211156107da57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220f7beda14114b9f7ffb49bea954dd906f40915f1f32414d1f399b0af00478099d64736f6c634300080a0033
Loading...
Loading
Loading...
Loading
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.