Polygon Sponsored slots available. Book your slot here!
ERC-20
DeFi
Overview
Max Total Supply
68,230,000,000 SHARP
Holders
6,944 ( 0.058%)
Total Transfers
-
Market
Price
$0.00 @ 0.000000 POL
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MainTokenContract
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import {IERC20} from "./IERC20.sol"; import {Ownable} from "./Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; /** * @author SHARP INNOVATION FOUNDATION * @title Main Token Contract * @dev This contract defines the token and its activities * @dev This contract contains all the function present in the interface and is following the token standard */ contract MainTokenContract is IERC20, Ownable, ReentrancyGuard { string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; address private feesAccount; uint256 private maxTransferLimit; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; event Burn(address indexed burnerAddress, uint256 indexed amount); event UpdateFeesAccount(address indexed newFeesAddress); event UpdateMaxTransferLimit(uint256 indexed newLimit); constructor(string memory tokenName, string memory tokenSymbol) { _name = tokenName; _symbol = tokenSymbol; _decimals = 18; } /** * @dev This function returns the name of the token * @return string */ function name() public view virtual returns (string memory) { return _name; } /** * @dev This function returns the symbol of the token * @return string */ function symbol() public view virtual returns (string memory) { return _symbol; } /** * @dev This function returns the decimal places the token holds * @return uint8 */ function decimals() public view virtual returns (uint8) { return _decimals; } /** * @dev This function returns the total supply of the token * @return uint256 */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev This function returns the max transfer limit per transaction for all token holders */ function getMaxTransferLimit() public view returns (uint256) { return maxTransferLimit; } /** * @dev This function is used to get the gas fees account, callable by owner only */ function getFeesAccount() public view onlyOwner returns (address) { return feesAccount; } /** * @dev This function returns the balance of a particular accunt address * @param account .address type parameter, takes in the address of the account holder * @return uint256 .the token amount that the account holds */ function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } /** * @dev This function is used to set the gas fees account, callable by owner only * @param addr .address type parameter, takes in the address of the gas fees account */ function setFeesAccount(address addr) public onlyOwner { require(addr != address(0), "Invalid address"); feesAccount = addr; emit UpdateFeesAccount(addr); } /** * @dev This function is used to set the max transfer limit per transaction for all token holders, callable by owner only * @param limit .uint type variable denoting the transfer limit */ function setMaxTransferLimit(uint256 limit) public onlyOwner { maxTransferLimit = limit; emit UpdateMaxTransferLimit(limit); } /** * @notice This function is used to transfer tokens from the one account address to another * @dev The token transfer occurs from the function caller's address to the receiver address provided in the function parameter * @param to .address type paremeter, takes the address of the token receiver * @param amount .uint256 type parameter, takes the amount of tokens to be transferred * @return bool .suceessful transfer returns true */ function transfer( address to, uint256 amount ) public virtual nonReentrant returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @notice This function is used to transfer tokens from the one account address, and fees to another account(s), as a batch transaction * @dev The token transfer occurs from the function caller's address to the receiver address provided in the function parameter * @param to .address type paremeter, takes the address of the token receiver * @param amount .uint256 type parameter, takes the amount of tokens to be transferred * @param fees .uint256 type parameter, fees amount to be transferred * @return bool .suceessful transfer returns true */ function batchTransfer( address to, uint256 amount, uint256 fees ) public virtual nonReentrant returns (bool) { require(amount != 0, "Transfer amount is 0"); if (_msgSender() != owner() && maxTransferLimit != 0) { require( amount <= maxTransferLimit, "Amount is greater than transfer limit" ); } address owner = _msgSender(); _transfer(owner, to, amount); _transfer(owner, feesAccount, fees); return true; } /** * @dev This function returns the allowance amount of tokens which is set for an owner and spender * @param owner .address type parameter, takes the address of the actual address of the owner of tokens * @param spender .address type parameter, takes the address that is approved by the owner to spend tokens * @return uint256 .amount of tokens approved by the owner for a particular spender */ function allowance( address owner, address spender ) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev This function approves an token allowance amount for an address * @param spender .address type parameter, takes the address of the spender allowance account * @param amount .uint256 type parameter, takes the amount of tokens that is set to be allowed as allowance * @return bool .returns true if the approval is successful */ function approve( address spender, uint256 amount ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev This function is used to transfer allowance tokens from the spender address to the receiver address * @param from .address type parameter, takes the address of the actual token holder the address that allowed the allowance * @param to .address type parameter, takes the address of the receiver of the tokens * @param amount .uint256 type parameter, takes the amount of tokens to be transferred * @return bool .returns true if the transfer is successful */ function transferFrom( address from, address to, uint256 amount ) external virtual nonReentrant returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev This function is used to increase the allowance amount for a spender * @param spender .address type parameter, takes the address of the spender who is allowed by the token owner * @param addedAmount .uint256 type parameter, takes in the increased amount * @return bool .returns true if the increase is successful */ function increaseAllowance( address spender, uint256 addedAmount ) external virtual nonReentrant returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedAmount); return true; } /** * @dev This function is used to decrease the allowance amount of a spender * @param spender .address type parameter, takes the address of the spender who is allowed by the token owner * @param requestedDecrease .uint256 type parameter, takes in the amount which is to be subtracted fron the current amount * @return bool .returns true if the decrease is successful */ function decreaseAllowance( address spender, uint256 requestedDecrease ) external virtual nonReentrant returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); if (currentAllowance < requestedDecrease) { revert("current allowance is less than requested decrease"); } unchecked { _approve(owner, spender, currentAllowance - requestedDecrease); } return true; } /** * @notice This function is used to remove tokens from the circulation supply * @dev This function can only be called by the owner of the contract * @dev The amount to be burned cannot be greater than the total supply of the token * @param amount .uint256 type parameter, takes in the amount of tokens to be burned * @return bool .returns true if the burn is successful */ function burn(uint256 amount) public virtual onlyOwner returns (bool) { require(amount <= _totalSupply, "Burn amount greater than token count"); _burn(_msgSender(), amount); return true; } /** * @notice This function is used to mint new tokens * @dev This function can only be called by the owner of the contract * @dev The minting amount cannot be 0 * @dev The sum of the amount to be minted and the current circulation supply cannot exceed total supply (i.e 100 Billion) * @param amount .uint256 type parameter, takes in the amount to be minted * @return bool .returns true if the mint is successful */ function mint(uint256 amount) public virtual onlyOwner returns (bool) { if (_msgSender() == address(0)) { revert("Invalid address"); } uint256 minting_amount = amount * (10 ** 18); if (minting_amount == 0) { revert("Cannot mint 0 tokens"); } require( _totalSupply + minting_amount <= 100000000000 * 10 ** 18, "Mint amount exceeds the maximum supply" ); _mint(_msgSender(), minting_amount); return true; } /** * @notice This function is used to start the ownership transfer process. * @dev This function can only be called by the owner of the contract * @param addr .address type parameter, takes in the address of the new contract owner * @return bool .returns true if the start transfer is successful */ function beginTransferOwnership( address addr ) public virtual onlyOwner returns (bool) { require(addr != address(0), "Invalid address"); startTransferOwnership(addr); return true; } /** * @notice This function is used to accept the transfer ownership of the contract. * @dev This function can only be called by the Authorized new owner. * @dev After the ownership is transferred, all the owners tokens are transferred to the new owner as well * @return bool .returns true if the ownership transfer is successful */ function allowOwnership() public virtual returns (bool) { address owner = owner(); if (acceptOwnership()) { _transfer(owner, _msgSender(), _balances[owner]); } return true; } /** * @notice This is an internal function which is called during token transfer. * @dev This function validates the address provided to itself. * @param from .address type parameter, takes in the address of the token sender * @param to .address type parameter, takes in the address of the token receiver * @param amount .uint256 type parameter, takes in the amount to be send */ function _transfer(address from, address to, uint256 amount) internal { if (from == address(0)) { revert("Invalid Sender"); } if (to == address(0)) { revert("Invalid Receiver"); } _update(from, to, amount); } /** * @notice This is an internal function which is used to update the token balances of the accounts among which the transfer was initiated. * @dev This function sends the tokens * @param from .address type parameter, takes in the address of the account from which the tokens are to be subtracted. * @param to .address type parameter, takes in the address of the account to which the tokens are to be added. * @param amount .uint256 type parameter, takes the amount of tokens to be transferred */ function _update( address from, address to, uint256 amount ) internal virtual { // checking if sender's address is 0x000000000000.... if (from == address(0)) { _totalSupply += amount; } else { uint256 fromBalance = _balances[from]; if (fromBalance < amount) { revert("Insufficient balance"); } if (amount == 0) { revert("Cannot send 0 tokens"); } unchecked { _balances[from] = fromBalance - amount; } } if (to == address(0)) { _totalSupply -= amount; } else { _balances[to] += amount; } emit Transfer(from, to, amount); } /** * @notice This is an internal function which is called during token minting * @dev This function calls the internal update function * @param account .address type parameter, takes in the account address on which new tokens are to be minted. * @param value .uint256 type parameter, takes in the amount of the tokens to be minted. */ function _mint(address account, uint256 value) internal { _update(address(0), account, value); } /** * @notice This is an internal function which is called during token burn * @dev This function validates the account and calles the internal update function * @param account .address type parameter, takes in the contract owners account address * @param value .uint256 type parameter, takes the amount of tokens to be burnt. */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert("Invalid Sender"); } _update(account, address(0), value); emit Burn(account, value); } /** * @notice This is an internal function which is used to approve allowance tokens for an address * @dev This function calls another internal function * @param owner .address type parameter, takes in the address of the actual token owner * @param spender .address type parameter, takes in the address of the spender allowed by the owner * @param amount .uint256 type parameter, takes in the token amount */ function _approve( address owner, address spender, uint256 amount ) internal virtual { _approve(owner, spender, amount, true); } /** * @notice This function approves allowance token for an address * @param owner .address type parameter, takes in the address of the actual token owner * @param spender .address type parameter, takes in the address of the spender allowed by the owner * @param amount .uint256 type parameter, takes in the amount that is to be allowed for spending * @param accessEvent .boolean type parameter */ function _approve( address owner, address spender, uint256 amount, bool accessEvent ) internal virtual { if (owner == address(0)) { revert("Invalid Owner"); } if (spender == address(0)) { revert("Invalid Spender"); } _allowances[owner][spender] = amount; if (accessEvent) { emit Approval(owner, spender, amount); } } /** * @notice This internal function is used to spend allowance approved for an address * @dev This function is called during transferFrom where allowance tokens are transferred * @param owner .address type parameter, takes in the address of the actual token owner * @param spender .address type parameter, takes in the address of the spender allowed by the owner * @param amount .uint256 type parameter, takes in the amount that is to be allowed for spending */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < amount) { revert("Insufficient allowance"); } unchecked { // unchecked is used to remove the compiler checks thus reducing gas fees _approve(owner, spender, currentAllowance - amount, false); } } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; /** * @author SHARP INNOVATION FOUNDATION * @title Context * @dev This contract provides the address and data of the sender of the transaction */ abstract contract Context { /** * @notice Returns the address of the message sender */ function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } /** * @notice Returns the data of the message sender in bytes */ function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; /** * @author SHARP INNOVATION FOUNDATION * @title Interface ERC20 * @dev Contains the necessary functions and events which are specified according to ERC20 token standard. */ interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom( address sender, address recipient, uint amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import {Context} from "./Context.sol"; /** * @title Ownable Contract * @author SHARP INNOVATION FOUNDATION * @notice This is an ownable contract which sets an owner to the contract and transfers or removes it as per the owner's requirements. * @dev The transfer ownership is a two-way process, where the transfer starts and then the newOwner has to accept the ownership transfer. */ abstract contract Ownable is Context { address private _owner; address private _pendingOwner; event OwnershipTransferStarted( address indexed peviousOwner, address indexed newOwner ); event OwnershipTransferred( address indexed previousOwner, address indexed CurrentOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @notice Modifier to check the message sender is owner of the contract or not */ modifier onlyOwner() { require( (_owner == msg.sender || _owner == address(0)), "Not the Owner" ); _; } /** * @notice Returns the current owner of the contract */ function owner() public view virtual returns (address) { return _owner; } /** * @notice Returns the pending owner address */ function PendingOwner() public view virtual returns (address) { return _pendingOwner; } /** * @notice Called when the ownership is to be transferred. Initiates the transfer of ownership * @dev This function can only be called by the owner of the contract * @param newOwnerAddress .Address of the new owner */ function startTransferOwnership( address newOwnerAddress ) internal virtual onlyOwner { address oldOwner = _msgSender(); _pendingOwner = newOwnerAddress; emit OwnershipTransferStarted(oldOwner, newOwnerAddress); } /** * @notice Called to accept ownership of the contract by the new owner, only the pending owner can accept ownership * @dev After ownership is accepted, ownership and token transfer is completed */ function acceptOwnership() internal virtual returns (bool) { address acceptingOwner = _msgSender(); if (acceptingOwner != PendingOwner()) { revert("Unauthorized account for Ownership"); } return _transferOwnership(acceptingOwner); } /** * @notice Internal Function called after accepting the ownership transfer, transfers the ownersip * @param addr .Address of the new owner */ function _transferOwnership(address addr) internal virtual returns (bool) { delete _pendingOwner; address previousOwner = owner(); _owner = addr; emit OwnershipTransferred(previousOwner, addr); return true; } /** * @notice Called when ownership is to be revoked or removed. * @dev This function can only be called by the owner of the contract */ function renounceOwnership() public virtual onlyOwner returns (bool) { _owner = address(0); emit OwnershipTransferred(_msgSender(), address(0)); return true; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"}],"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":"burnerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"peviousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"CurrentOwner","type":"address"}],"name":"OwnershipTransferred","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":"newFeesAddress","type":"address"}],"name":"UpdateFeesAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"UpdateMaxTransferLimit","type":"event"},{"inputs":[],"name":"PendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"}],"name":"batchTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"beginTransferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeesAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTransferLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedAmount","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setFeesAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"setMaxTransferLimit","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":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620016c6380380620016c6833981016040819052620000349162000175565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600255600362000088838262000270565b50600462000097828262000270565b50506005805460ff19166012179055506200033c565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d557600080fd5b81516001600160401b0380821115620000f257620000f2620000ad565b604051601f8301601f19908116603f011681019082821181831017156200011d576200011d620000ad565b81604052838152602092508660208588010111156200013b57600080fd5b600091505b838210156200015f578582018301518183018401529082019062000140565b6000602085830101528094505050505092915050565b600080604083850312156200018957600080fd5b82516001600160401b0380821115620001a157600080fd5b620001af86838701620000c3565b93506020850151915080821115620001c657600080fd5b50620001d585828601620000c3565b9150509250929050565b600181811c90821680620001f457607f821691505b6020821081036200021557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026b576000816000526020600020601f850160051c81016020861015620002465750805b601f850160051c820191505b81811015620002675782815560010162000252565b5050505b505050565b81516001600160401b038111156200028c576200028c620000ad565b620002a4816200029d8454620001df565b846200021b565b602080601f831160018114620002dc5760008415620002c35750858301515b600019600386901b1c1916600185901b17855562000267565b600085815260208120601f198616915b828110156200030d57888601518255948401946001909101908401620002ec565b50858210156200032c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61137a806200034c6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146102a2578063a9059cbb146102b5578063d46750f7146102c8578063dd62ed3e146102db578063ddb00dfc146102ee578063e64e93d11461030157600080fd5b8063715018a6146102555780638da5cb5b1461025d5780638f1783e31461026e57806395029f341461027657806395d89b4114610287578063a0712d681461028f57600080fd5b806323b872dd1161011557806323b872dd146101d6578063313ce567146101e957806339509351146101fe5780633d15dbd81461021157806342966c681461021957806370a082311461022c57600080fd5b8063025fb6621461015257806306fdde0314610177578063095ea7b31461018c57806318160ddd146101af5780631978c0b3146101c1575b600080fd5b61015a610314565b6040516001600160a01b0390911681526020015b60405180910390f35b61017f61036c565b60405161016e9190611101565b61019f61019a366004611167565b6103fe565b604051901515815260200161016e565b6006545b60405190815260200161016e565b6101d46101cf366004611191565b610418565b005b61019f6101e43660046111aa565b610489565b60055460405160ff909116815260200161016e565b61019f61020c366004611167565b6104c0565b61019f6104f9565b61019f610227366004611191565b610548565b6101b361023a3660046111e6565b6001600160a01b031660009081526009602052604090205490565b61019f6105f8565b6000546001600160a01b031661015a565b6008546101b3565b6001546001600160a01b031661015a565b61017f610677565b61019f61029d366004611191565b610686565b61019f6102b0366004611167565b6107cb565b61019f6102c3366004611167565b61086b565b61019f6102d6366004611201565b610881565b6101b36102e9366004611234565b610977565b6101d46102fc3660046111e6565b6109a2565b61019f61030f3660046111e6565b610a50565b600080546001600160a01b031633148061033757506000546001600160a01b0316155b61035c5760405162461bcd60e51b815260040161035390611267565b60405180910390fd5b506007546001600160a01b031690565b60606003805461037b9061128e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a79061128e565b80156103f45780601f106103c9576101008083540402835291602001916103f4565b820191906000526020600020905b8154815290600101906020018083116103d757829003601f168201915b5050505050905090565b60003361040c818585610abe565b60019150505b92915050565b6000546001600160a01b031633148061043a57506000546001600160a01b0316155b6104565760405162461bcd60e51b815260040161035390611267565b600881905560405181907f686286f48ac4b2469a6e0d6f67ad000c05cf0e77b1b75a73fa80401d50df95d490600090a250565b6000610493610ad0565b3361049f858285610b27565b6104aa858585610b9c565b60019150506104b96001600255565b9392505050565b60006104ca610ad0565b336104ea8185856104db8383610977565b6104e591906112de565b610abe565b60019150506104126001600255565b60008061050e6000546001600160a01b031690565b9050610518610c37565b156105405761054081336001600160a01b038416600090815260096020526040902054610b9c565b600191505090565b600080546001600160a01b031633148061056b57506000546001600160a01b0316155b6105875760405162461bcd60e51b815260040161035390611267565b6006548211156105e55760405162461bcd60e51b8152602060048201526024808201527f4275726e20616d6f756e742067726561746572207468616e20746f6b656e20636044820152631bdd5b9d60e21b6064820152608401610353565b6105ef3383610cb0565b5060015b919050565b600080546001600160a01b031633148061061b57506000546001600160a01b0316155b6106375760405162461bcd60e51b815260040161035390611267565b600080546001600160a01b031916815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350600190565b60606004805461037b9061128e565b600080546001600160a01b03163314806106a957506000546001600160a01b0316155b6106c55760405162461bcd60e51b815260040161035390611267565b336106e25760405162461bcd60e51b8152600401610353906112f1565b60006106f683670de0b6b3a764000061131a565b90508060000361073f5760405162461bcd60e51b815260206004820152601460248201527343616e6e6f74206d696e74203020746f6b656e7360601b6044820152606401610353565b6c01431e0fae6d7217caa00000008160065461075b91906112de565b11156107b85760405162461bcd60e51b815260206004820152602660248201527f4d696e7420616d6f756e74206578636565647320746865206d6178696d756d20604482015265737570706c7960d01b6064820152608401610353565b6107c23382610d3d565b50600192915050565b60006107d5610ad0565b3360006107e28286610977565b90508381101561084e5760405162461bcd60e51b815260206004820152603160248201527f63757272656e7420616c6c6f77616e6365206973206c657373207468616e2072604482015270657175657374656420646563726561736560781b6064820152608401610353565b61085b8286868403610abe565b6001925050506104126001600255565b6000610875610ad0565b336104ea818585610b9c565b600061088b610ad0565b826000036108d25760405162461bcd60e51b815260206004820152601460248201527305472616e7366657220616d6f756e7420697320360641b6044820152606401610353565b6000546001600160a01b031633148015906108ee575060085415155b15610953576008548311156109535760405162461bcd60e51b815260206004820152602560248201527f416d6f756e742069732067726561746572207468616e207472616e73666572206044820152641b1a5b5a5d60da1b6064820152608401610353565b3361095f818686610b9c565b6007546104aa9082906001600160a01b031685610b9c565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6000546001600160a01b03163314806109c457506000546001600160a01b0316155b6109e05760405162461bcd60e51b815260040161035390611267565b6001600160a01b038116610a065760405162461bcd60e51b8152600401610353906112f1565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f0af49e0905ac415ecca986c577b0410d2a83bf4790dc35b8902ffcf957a940be90600090a250565b600080546001600160a01b0316331480610a7357506000546001600160a01b0316155b610a8f5760405162461bcd60e51b815260040161035390611267565b6001600160a01b038216610ab55760405162461bcd60e51b8152600401610353906112f1565b6105ef82610d4d565b610acb8383836001610ddb565b505050565b6002805403610b215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610353565b60028055565b6000610b338484610977565b90506000198114610b965781811015610b875760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b6044820152606401610353565b610b9684848484036000610ddb565b50505050565b6001600160a01b038316610be35760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21029b2b73232b960911b6044820152606401610353565b6001600160a01b038216610c2c5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2102932b1b2b4bb32b960811b6044820152606401610353565b610acb838383610eea565b60015460009033906001600160a01b03168114610ca15760405162461bcd60e51b815260206004820152602260248201527f556e617574686f72697a6564206163636f756e7420666f72204f776e65727368604482015261069760f41b6064820152608401610353565b610caa81611086565b91505090565b6001600160a01b038216610cf75760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21029b2b73232b960911b6044820152606401610353565b610d0382600083610eea565b60405181906001600160a01b038416907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590600090a35050565b610d4960008383610eea565b5050565b6000546001600160a01b0316331480610d6f57506000546001600160a01b0316155b610d8b5760405162461bcd60e51b815260040161035390611267565b600180546001600160a01b0319166001600160a01b03831690811790915560405133919082907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270090600090a35050565b6001600160a01b038416610e215760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21027bbb732b960991b6044820152606401610353565b6001600160a01b038316610e695760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b21029b832b73232b960891b6044820152606401610353565b6001600160a01b038085166000908152600a602090815260408083209387168352929052208290558015610b9657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610edc91815260200190565b60405180910390a350505050565b6001600160a01b038316610f15578060066000828254610f0a91906112de565b90915550610fdb9050565b6001600160a01b03831660009081526009602052604090205481811015610f755760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610353565b81600003610fbc5760405162461bcd60e51b815260206004820152601460248201527343616e6e6f742073656e64203020746f6b656e7360601b6044820152606401610353565b6001600160a01b03841660009081526009602052604090209082900390555b6001600160a01b038216611006578060066000828254610ffb9190611331565b909155506110349050565b6001600160a01b0382166000908152600960205260408120805483929061102e9084906112de565b90915550505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107991815260200190565b60405180910390a3505050565b600180546001600160a01b03191690556000806110ab6000546001600160a01b031690565b600080546001600160a01b0319166001600160a01b0386811691821783556040519394509092908416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600192915050565b60006020808352835180602085015260005b8181101561112f57858101830151858201604001528201611113565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105f357600080fd5b6000806040838503121561117a57600080fd5b61118383611150565b946020939093013593505050565b6000602082840312156111a357600080fd5b5035919050565b6000806000606084860312156111bf57600080fd5b6111c884611150565b92506111d660208501611150565b9150604084013590509250925092565b6000602082840312156111f857600080fd5b6104b982611150565b60008060006060848603121561121657600080fd5b61121f84611150565b95602085013595506040909401359392505050565b6000806040838503121561124757600080fd5b61125083611150565b915061125e60208401611150565b90509250929050565b6020808252600d908201526c2737ba103a34329027bbb732b960991b604082015260600190565b600181811c908216806112a257607f821691505b6020821081036112c257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610412576104126112c8565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b8082028115828204841417610412576104126112c8565b81810381811115610412576104126112c856fea26469706673582212204e539737a67bafd0abe7da65505f1c7bebad32ea580bdfb9053fd59fca713aeb64736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000005534841525000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055348415250000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146102a2578063a9059cbb146102b5578063d46750f7146102c8578063dd62ed3e146102db578063ddb00dfc146102ee578063e64e93d11461030157600080fd5b8063715018a6146102555780638da5cb5b1461025d5780638f1783e31461026e57806395029f341461027657806395d89b4114610287578063a0712d681461028f57600080fd5b806323b872dd1161011557806323b872dd146101d6578063313ce567146101e957806339509351146101fe5780633d15dbd81461021157806342966c681461021957806370a082311461022c57600080fd5b8063025fb6621461015257806306fdde0314610177578063095ea7b31461018c57806318160ddd146101af5780631978c0b3146101c1575b600080fd5b61015a610314565b6040516001600160a01b0390911681526020015b60405180910390f35b61017f61036c565b60405161016e9190611101565b61019f61019a366004611167565b6103fe565b604051901515815260200161016e565b6006545b60405190815260200161016e565b6101d46101cf366004611191565b610418565b005b61019f6101e43660046111aa565b610489565b60055460405160ff909116815260200161016e565b61019f61020c366004611167565b6104c0565b61019f6104f9565b61019f610227366004611191565b610548565b6101b361023a3660046111e6565b6001600160a01b031660009081526009602052604090205490565b61019f6105f8565b6000546001600160a01b031661015a565b6008546101b3565b6001546001600160a01b031661015a565b61017f610677565b61019f61029d366004611191565b610686565b61019f6102b0366004611167565b6107cb565b61019f6102c3366004611167565b61086b565b61019f6102d6366004611201565b610881565b6101b36102e9366004611234565b610977565b6101d46102fc3660046111e6565b6109a2565b61019f61030f3660046111e6565b610a50565b600080546001600160a01b031633148061033757506000546001600160a01b0316155b61035c5760405162461bcd60e51b815260040161035390611267565b60405180910390fd5b506007546001600160a01b031690565b60606003805461037b9061128e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a79061128e565b80156103f45780601f106103c9576101008083540402835291602001916103f4565b820191906000526020600020905b8154815290600101906020018083116103d757829003601f168201915b5050505050905090565b60003361040c818585610abe565b60019150505b92915050565b6000546001600160a01b031633148061043a57506000546001600160a01b0316155b6104565760405162461bcd60e51b815260040161035390611267565b600881905560405181907f686286f48ac4b2469a6e0d6f67ad000c05cf0e77b1b75a73fa80401d50df95d490600090a250565b6000610493610ad0565b3361049f858285610b27565b6104aa858585610b9c565b60019150506104b96001600255565b9392505050565b60006104ca610ad0565b336104ea8185856104db8383610977565b6104e591906112de565b610abe565b60019150506104126001600255565b60008061050e6000546001600160a01b031690565b9050610518610c37565b156105405761054081336001600160a01b038416600090815260096020526040902054610b9c565b600191505090565b600080546001600160a01b031633148061056b57506000546001600160a01b0316155b6105875760405162461bcd60e51b815260040161035390611267565b6006548211156105e55760405162461bcd60e51b8152602060048201526024808201527f4275726e20616d6f756e742067726561746572207468616e20746f6b656e20636044820152631bdd5b9d60e21b6064820152608401610353565b6105ef3383610cb0565b5060015b919050565b600080546001600160a01b031633148061061b57506000546001600160a01b0316155b6106375760405162461bcd60e51b815260040161035390611267565b600080546001600160a01b031916815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350600190565b60606004805461037b9061128e565b600080546001600160a01b03163314806106a957506000546001600160a01b0316155b6106c55760405162461bcd60e51b815260040161035390611267565b336106e25760405162461bcd60e51b8152600401610353906112f1565b60006106f683670de0b6b3a764000061131a565b90508060000361073f5760405162461bcd60e51b815260206004820152601460248201527343616e6e6f74206d696e74203020746f6b656e7360601b6044820152606401610353565b6c01431e0fae6d7217caa00000008160065461075b91906112de565b11156107b85760405162461bcd60e51b815260206004820152602660248201527f4d696e7420616d6f756e74206578636565647320746865206d6178696d756d20604482015265737570706c7960d01b6064820152608401610353565b6107c23382610d3d565b50600192915050565b60006107d5610ad0565b3360006107e28286610977565b90508381101561084e5760405162461bcd60e51b815260206004820152603160248201527f63757272656e7420616c6c6f77616e6365206973206c657373207468616e2072604482015270657175657374656420646563726561736560781b6064820152608401610353565b61085b8286868403610abe565b6001925050506104126001600255565b6000610875610ad0565b336104ea818585610b9c565b600061088b610ad0565b826000036108d25760405162461bcd60e51b815260206004820152601460248201527305472616e7366657220616d6f756e7420697320360641b6044820152606401610353565b6000546001600160a01b031633148015906108ee575060085415155b15610953576008548311156109535760405162461bcd60e51b815260206004820152602560248201527f416d6f756e742069732067726561746572207468616e207472616e73666572206044820152641b1a5b5a5d60da1b6064820152608401610353565b3361095f818686610b9c565b6007546104aa9082906001600160a01b031685610b9c565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6000546001600160a01b03163314806109c457506000546001600160a01b0316155b6109e05760405162461bcd60e51b815260040161035390611267565b6001600160a01b038116610a065760405162461bcd60e51b8152600401610353906112f1565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f0af49e0905ac415ecca986c577b0410d2a83bf4790dc35b8902ffcf957a940be90600090a250565b600080546001600160a01b0316331480610a7357506000546001600160a01b0316155b610a8f5760405162461bcd60e51b815260040161035390611267565b6001600160a01b038216610ab55760405162461bcd60e51b8152600401610353906112f1565b6105ef82610d4d565b610acb8383836001610ddb565b505050565b6002805403610b215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610353565b60028055565b6000610b338484610977565b90506000198114610b965781811015610b875760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b6044820152606401610353565b610b9684848484036000610ddb565b50505050565b6001600160a01b038316610be35760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21029b2b73232b960911b6044820152606401610353565b6001600160a01b038216610c2c5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2102932b1b2b4bb32b960811b6044820152606401610353565b610acb838383610eea565b60015460009033906001600160a01b03168114610ca15760405162461bcd60e51b815260206004820152602260248201527f556e617574686f72697a6564206163636f756e7420666f72204f776e65727368604482015261069760f41b6064820152608401610353565b610caa81611086565b91505090565b6001600160a01b038216610cf75760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21029b2b73232b960911b6044820152606401610353565b610d0382600083610eea565b60405181906001600160a01b038416907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590600090a35050565b610d4960008383610eea565b5050565b6000546001600160a01b0316331480610d6f57506000546001600160a01b0316155b610d8b5760405162461bcd60e51b815260040161035390611267565b600180546001600160a01b0319166001600160a01b03831690811790915560405133919082907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270090600090a35050565b6001600160a01b038416610e215760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21027bbb732b960991b6044820152606401610353565b6001600160a01b038316610e695760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b21029b832b73232b960891b6044820152606401610353565b6001600160a01b038085166000908152600a602090815260408083209387168352929052208290558015610b9657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610edc91815260200190565b60405180910390a350505050565b6001600160a01b038316610f15578060066000828254610f0a91906112de565b90915550610fdb9050565b6001600160a01b03831660009081526009602052604090205481811015610f755760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610353565b81600003610fbc5760405162461bcd60e51b815260206004820152601460248201527343616e6e6f742073656e64203020746f6b656e7360601b6044820152606401610353565b6001600160a01b03841660009081526009602052604090209082900390555b6001600160a01b038216611006578060066000828254610ffb9190611331565b909155506110349050565b6001600160a01b0382166000908152600960205260408120805483929061102e9084906112de565b90915550505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107991815260200190565b60405180910390a3505050565b600180546001600160a01b03191690556000806110ab6000546001600160a01b031690565b600080546001600160a01b0319166001600160a01b0386811691821783556040519394509092908416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600192915050565b60006020808352835180602085015260005b8181101561112f57858101830151858201604001528201611113565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105f357600080fd5b6000806040838503121561117a57600080fd5b61118383611150565b946020939093013593505050565b6000602082840312156111a357600080fd5b5035919050565b6000806000606084860312156111bf57600080fd5b6111c884611150565b92506111d660208501611150565b9150604084013590509250925092565b6000602082840312156111f857600080fd5b6104b982611150565b60008060006060848603121561121657600080fd5b61121f84611150565b95602085013595506040909401359392505050565b6000806040838503121561124757600080fd5b61125083611150565b915061125e60208401611150565b90509250929050565b6020808252600d908201526c2737ba103a34329027bbb732b960991b604082015260600190565b600181811c908216806112a257607f821691505b6020821081036112c257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610412576104126112c8565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b8082028115828204841417610412576104126112c8565b81810381811115610412576104126112c856fea26469706673582212204e539737a67bafd0abe7da65505f1c7bebad32ea580bdfb9053fd59fca713aeb64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000005534841525000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055348415250000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : tokenName (string): SHARP
Arg [1] : tokenSymbol (string): SHARP
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 5348415250000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 5348415250000000000000000000000000000000000000000000000000000000
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.