This token is bridged over from its native chain using IBC.
Overview
Max Total Supply
31.403721 IST
Holders
3 (0.00%)
Market
Price
$1.00 @ 0.000284 ETH (-0.17%)
Onchain Market Cap
$31.38
Circulating Supply Market Cap
$1,401,627.00
Other Info
Token Contract (WITH 6 Decimals)
Balance
9.960085 ISTValue
$9.95 ( ~0.00282548708412654 Eth) [31.7163%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20Token
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; /** * @title ERC20Token * @dev Implementation of the ERC20 interface with customizable token properties. * This contract extends the ERC20 standard with the ability for the contract owner to * modify token name, symbol, and decimals after deployment. It also includes minting * and burning functionalities controlled by the contract owner. */ contract ERC20Token is ERC20, Ownable { uint8 private _decimals; string private _name; string private _symbol; bool private _isDecimalsSet; uint256 constant internal MAX_DECIMALS = 77; // log10(2^256 - 1) /** * @dev emitted when the decimals are changed by the owner. */ event SetDecimals(uint8 precision); /** * @dev emitted when the name is changed by the owner. */ event SetName(string name); /** * @dev emitted when the symbol is changed by the owner. */ event SetSymbol(string symbol); /** * @dev Constructor for initializing the ERC20Token contract Sets the owner of the contract * to the deployer of the contract. Mints the initial supply of tokens to the deployer. * * Reverts if the number of decimal places is greater than `MAX_DECIMALS`. * @param initialName The name of the token. * @param initialSymbol The symbol of the token. * @param initSupply The initial supply of tokens to mint upon contract deployment. * @param initialDecimals The number of decimal places for the token. */ constructor(string memory initialName, string memory initialSymbol, uint256 initSupply, uint8 initialDecimals) ERC20(initialName, initialSymbol) Ownable(_msgSender()) { _mint(_msgSender(), initSupply); _decimals = initialDecimals; _name = initialName; _symbol = initialSymbol; _isDecimalsSet = false; require(initialDecimals <= MAX_DECIMALS, "ERC20Token: precision too high"); } /** * @notice Mint new tokens. * @dev Mint new tokens to the specified account. Only the owner can call this function. * A `Transfer` event is emitted from the internal `_mint` function. * @param account The account to mint the tokens to. * @param amount The amount of tokens to mint. */ function mint(address account, uint256 amount) external onlyOwner { _mint(account, amount); } /** * @notice Burn tokens. * @dev Burn tokens from the specified account. Only the owner can call this function. * A `Transfer` event is emitted from the internal `_burn` function. * @param account The account to burn the tokens from. * @param amount The amount of tokens to burn. */ function burn(address account, uint256 amount) external onlyOwner { _burn(account, amount); } /** * @notice Set the number of decimal places for the token. * @dev Set the number of decimal places for the token. Only the owner can call this function. * * Reverts if one of the following is true: * - the number of decimal places is already set. * - the new number of decimal places is greater than `MAX_DECIMALS`. * @param newDecimals The number of decimal places for the token. */ function setDecimals(uint8 newDecimals) external onlyOwner { require(!_isDecimalsSet, "ERC20Token: decimals is already set"); require(newDecimals <= MAX_DECIMALS, "ERC20Token: precision too high"); _decimals = newDecimals; _isDecimalsSet = true; emit SetDecimals(newDecimals); } /** * @notice Set the name of the token. * @dev Set the name of the token. Only the owner can call this function. * @param newName The name of the token. */ function setName(string memory newName) external onlyOwner { _name = newName; emit SetName(newName); } /** * @notice Set the symbol of the token. * @dev Set the symbol of the token. Only the owner can call this function. * @param newSymbol The symbol of the token. */ function setSymbol(string memory newSymbol) external onlyOwner { _symbol = newSymbol; emit SetSymbol(newSymbol); } /** * @notice Get the number of decimal places for the token. * @return The number of decimal places for the token. */ function decimals() public view virtual override returns (uint8) { return _decimals; } /** * @notice Get the name of the token. * @return The name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @notice Get the symbol of the token. * @return The symbol of the token. */ function symbol() public view virtual override returns (string memory) { return _symbol; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol) pragma solidity ^0.8.20; /** * @dev Standard ERC20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } /** * @dev Standard ERC721 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens. */ interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } /** * @dev Standard ERC1155 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens. */ interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.20; import {IERC20} from "./IERC20.sol"; import {IERC20Metadata} from "./extensions/IERC20Metadata.sol"; import {Context} from "../../utils/Context.sol"; import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. */ abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address account => uint256) private _balances; mapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `value`. */ function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `value`. * - the caller must have allowance for ``from``'s tokens of at least * `value`. */ function transferFrom(address from, address to, uint256 value) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } /** * @dev Moves a `value` amount of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _transfer(address from, address to, uint256 value) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } /** * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from` * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding * this function. * * Emits a {Transfer} event. */ function _update(address from, address to, uint256 value) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } emit Transfer(from, to, value); } /** * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0). * Relies on the `_update` mechanism * * Emits a {Transfer} event with `from` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } /** * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply. * Relies on the `_update` mechanism. * * Emits a {Transfer} event with `to` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } /** * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. * * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. */ function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } /** * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event. * * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any * `Approval` event during `transferFrom` operations. * * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to * true using the following override: * ``` * function _approve(address owner, address spender, uint256 value, bool) internal virtual override { * super._approve(owner, spender, value, true); * } * ``` * * Requirements are the same as {_approve}. */ function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } /** * @dev Updates `owner` s allowance for `spender` based on spent `value`. * * Does not update the allowance value in case of infinite allowance. * Revert if not enough allowance is available. * * Does not emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 value) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance(spender, currentAllowance, value); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.20; import {IERC20} from "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
{ "remappings": [ "solidity-rlp/=node_modules/solidity-rlp/", "@openzeppelin/=node_modules/@openzeppelin/", "solidity-mpt/=node_modules/solidity-mpt/", "solidity-stringutils/=node_modules/solidity-stringutils/" ], "optimizer": { "enabled": true, "runs": 256, "details": { "peephole": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "deduplicate": true, "cse": true, "constantOptimizer": true, "yul": false } }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "evmVersion": "cancun", "viaIR": true, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"initialName","type":"string"},{"internalType":"string","name":"initialSymbol","type":"string"},{"internalType":"uint256","name":"initSupply","type":"uint256"},{"internalType":"uint8","name":"initialDecimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"precision","type":"uint8"}],"name":"SetDecimals","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"}],"name":"SetName","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"symbol","type":"string"}],"name":"SetSymbol","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"},{"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":"value","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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newDecimals","type":"uint8"}],"name":"setDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newSymbol","type":"string"}],"name":"setSymbol","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"}]
Contract Creation Code
60806040523461002e5761001d610014610183565b92919091610438565b604051611139610818823961113990f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f01601f191681019081106001600160401b0382111761006757604052565b610032565b9061008061007960405190565b9283610046565b565b6001600160401b03811161006757602090601f01601f19160190565b90825f9392825e0152565b909291926100be6100b982610082565b61006c565b9381855260208501908284011161002e576100809261009e565b9080601f8301121561002e5781516100f2926020016100a9565b90565b805b0361002e57565b90505190610080826100f5565b60ff81166100f7565b905051906100808261010b565b60808183031261002e5780516001600160401b03811161002e57826101479183016100d8565b60208201519093906001600160401b03811161002e5761016c846100f29285016100d8565b9361017a81604086016100fe565b93606001610114565b6101a1611951803803806101968161006c565b928339810190610121565b90919293565b9060ff60a01b9060a01b5b9181191691161790565b6101cc6100f26100f29260ff1690565b60ff1690565b906101e26100f26101e9926101bc565b82546101a7565b9055565b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610221575b602083101461021c57565b6101ed565b91607f1691610211565b915f1960089290920291821b911b6101b2565b6100f26100f26100f29290565b919061025c6100f26101e99361023e565b90835461022b565b610080915f9161024b565b81811061027a575050565b806102875f600193610264565b0161026f565b9190601f811161029c57505050565b6102ac610080935f5260205f2090565b906020601f8401819004830193106102ce575b6020601f90910104019061026f565b90915081906102bf565b906102e1815190565b906001600160401b03821161006757610304826102fe8554610201565b8561028d565b602090601f831160011461033d576101e992915f9183610332575b50505f19600883021c1916906002021790565b015190505f8061031f565b601f19831691610350855f5260205f2090565b925f5b81811061038c57509160029391856001969410610374575b50505002019055565b01515f196008601f8516021c191690555f808061036b565b91936020600181928787015181550195019201610353565b90610080916102d8565b9060ff906101b2565b906103c76100f26101e992151590565b82546103ae565b6100f2604d61023e565b6100f26100f26100f29260ff1690565b156103ef57565b60405162461bcd60e51b815260206004820152601e60248201527f4552433230546f6b656e3a20707265636973696f6e20746f6f206869676800006044820152606490fd5b0390fd5b9061047261047992610460610080969561045a6104523390565b8487916104de565b3361054c565b61046b8560056101d2565b60066103a4565b60076103a4565b6104845f60086103b7565b6104986104926100f26103ce565b916103d8565b11156103e8565b6104ac6100f26100f29290565b6001600160a01b031690565b6100f29061049f565b6104ca906104ac565b9052565b60208101929161008091906104c1565b916104e891610536565b806105036104fd6104f85f6104b8565b6104ac565b916104ac565b1461051157610080906105fa565b61043461051d5f6104b8565b604051631e4fbdf760e01b8152918291600483016104ce565b906105456100809260036103a4565b60046103a4565b8061055c6104fd6104f85f6104b8565b14610576576100809161056e5f6104b8565b9190916106ec565b6104346105825f6104b8565b60405163ec442f0560e01b8152918291600483016104ce565b6100f2906104ac565b6100f2905461059b565b906001600160a01b03906101b2565b6100f2906104ac906001600160a01b031682565b6100f2906105bd565b6100f2906105d1565b906105f36100f26101e9926105da565b82546105ae565b61060460056105a4565b61060f8260056105e3565b9061064361063d7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0936105da565b916105da565b9161064d60405190565b80805b0390a3565b9061065f906105da565b5f5260205260405f2090565b6100f29081565b6100f2905461066b565b6040906106a2610080949695939661069b60608401985f8501906104c1565b6020830152565b0152565b905f19906101b2565b906106bf6100f26101e99261023e565b82546106a6565b634e487b7160e01b5f52601160045260245ffd5b919082018092116106e757565b6106c6565b919091806106ff6104fd6104f85f6104b8565b036107c55761072161071a836107156002610672565b6106da565b60026106af565b826107316104fd6104f85f6104b8565b0361079b5761074b61071a836107476002610672565b0390565b91909161065061078461077e7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936105da565b936105da565b9361078e60405190565b9182918290815260200190565b6107c0826107ba6107ac865f610655565b916107b683610672565b0190565b906106af565b61074b565b6107d76107d2825f610655565b610672565b8281106107f9576107f4908390036107ef835f610655565b6106af565b610721565b60405163391434e360e21b815292839261043492906004850161067c56fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610120578063095ea7b31461011b57806318160ddd1461011657806323b872dd14610111578063313ce5671461010c57806340c10f191461010757806370a0823114610102578063715018a6146100fd5780637a1395aa146100f85780638da5cb5b146100f357806395d89b41146100ee5780639dc29fac146100e9578063a9059cbb146100e4578063b84c8246146100df578063c47f0027146100da578063dd62ed3e146100d55763f2fde38b0361012f57610571565b610555565b61051a565b610502565b6103ff565b6103e6565b6103cb565b610396565b61037e565b61033c565b610321565b6102ef565b6102bf565b6102a3565b610247565b610219565b61018a565b5f91031261012f57565b5f80fd5b90825f9392825e0152565b61015f61016860209361017293610153815190565b80835293849260200190565b95869101610133565b601f01601f191690565b0190565b60208082526101879291019061013e565b90565b3461012f5761019a366004610125565b6101b26101a561067b565b6040515b91829182610176565b0390f35b6001600160a01b031690565b6001600160a01b0381165b0361012f57565b905035906101e1826101c2565b565b806101cd565b905035906101e1826101e3565b919060408382031261012f576101879061021081856101d4565b936020016101e9565b3461012f576101b261023561022f3660046101f6565b90610685565b60405191829182901515815260200190565b3461012f57610257366004610125565b6101b26102626106a6565b6040515b9182918290815260200190565b909160608284031261012f5761018761028c84846101d4565b9361029a81602086016101d4565b936040016101e9565b3461012f576101b26102356102b9366004610273565b916106b0565b3461012f576102cf366004610125565b6101b26102da6106e0565b6040515b9182918260ff909116815260200190565b3461012f576103086103023660046101f6565b90610701565b604051005b9060208282031261012f57610187916101d4565b3461012f576101b261026261033736600461030d565b610749565b3461012f5761034c366004610125565b61030861079a565b60ff81166101cd565b905035906101e182610354565b9060208282031261012f576101879161035d565b3461012f5761030861039136600461036a565b610977565b3461012f576103a6366004610125565b6101b26103b1610993565b604051918291826001600160a01b03909116815260200190565b3461012f576103db366004610125565b6101b26101a561099d565b3461012f576103086103f93660046101f6565b906109be565b3461012f576101b26102356104153660046101f6565b906109c8565b634e487b7160e01b5f52604160045260245ffd5b90601f01601f1916810190811067ffffffffffffffff82111761045157604052565b61041b565b906101e161046360405190565b928361042f565b67ffffffffffffffff811161045157602090601f01601f19160190565b90825f939282370152565b909291926104a76104a28261046a565b610456565b9381855260208501908284011161012f576101e192610487565b9080601f8301121561012f5781602061018793359101610492565b9060208282031261012f57813567ffffffffffffffff811161012f5761018792016104c1565b3461012f576103086105153660046104dc565b610b93565b3461012f5761030861052d3660046104dc565b610be1565b919060408382031261012f576101879061054c81856101d4565b936020016101d4565b3461012f576101b261026261056b366004610532565b90610bea565b3461012f5761030861058436600461030d565b610c73565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156105bd575b60208310146105b857565b610589565b91607f16916105ad565b80545f9392916105e36105d98361059d565b8085529360200190565b916001811690811561063257506001146105fc57505050565b61060d91929394505f5260205f2090565b915f925b81841061061e5750500190565b805484840152602090930192600101610611565b92949550505060ff1916825215156020020190565b90610187916105c7565b906101e161066b9261066260405190565b93848092610647565b038361042f565b61018790610651565b6101876006610672565b610690919033610c7c565b600190565b6101879081565b6101879054610695565b610187600261069c565b61069092906106c0823383610cb5565b919091610d1b565b6101879060a01c5b60ff1690565b61018790546106c8565b61018760056106d6565b906101e1916106f7610db8565b906101e191610deb565b906101e1916106ea565b6101b6610187610187926001600160a01b031690565b6101879061070b565b61018790610721565b9061073d9061072a565b5f5260205260405f2090565b61075e610187916107575f90565b505f610733565b61069c565b61076b610db8565b6101e1610789565b6101b66101876101879290565b61018790610773565b6101e16107955f610780565b610e3b565b6101e1610763565b6101e1906107ae610db8565b6108f5565b610187906106d0565b61018790546107b3565b156107cd57565b60405162461bcd60e51b815260206004820152602360248201527f4552433230546f6b656e3a20646563696d616c7320697320616c7265616479206044820152621cd95d60ea1b6064820152608490fd5b0390fd5b6101876101876101879290565b610187604d610822565b6101876101876101879260ff1690565b1561085057565b60405162461bcd60e51b815260206004820152601e60248201527f4552433230546f6b656e3a20707265636973696f6e20746f6f206869676800006044820152606490fd5b9060ff60a01b9060a01b5b9181191691161790565b6106d06101876101879260ff1690565b906108ca6101876108d1926108aa565b8254610895565b9055565b9060ff906108a0565b906108ee6101876108d192151590565b82546108d5565b61090e61090961090560086107bc565b1590565b6107c6565b61092d8161092661092061018761082f565b91610839565b1115610849565b6109388160056108ba565b610944600160086108de565b6109727fb0dbe162923e18ca76cb016a45453088f7266fee88d89e839694a70a9caf7b25916102de60405190565b0390a1565b6101e1906107a2565b610187906101b6565b6101879054610980565b6101876005610989565b6101876007610672565b906101e1916109b4610db8565b906101e191610e96565b906101e1916109a7565b61069091336106c0565b6101e1906109de610db8565b610b5a565b915f1960089290920291821b911b6108a0565b9190610a076101876108d193610822565b9083546109e3565b6101e1915f916109f6565b818110610a25575050565b80610a325f600193610a0f565b01610a1a565b9190601f8111610a4757505050565b610a576101e1935f5260205f2090565b906020601f840181900483019310610a79575b6020601f909101040190610a1a565b9091508190610a6a565b90610a8c815190565b9067ffffffffffffffff821161045157610ab082610aaa855461059d565b85610a38565b602090601f8311600114610ae9576108d192915f9183610ade575b50505f19600883021c1916906002021790565b015190505f80610acb565b601f19831691610afc855f5260205f2090565b925f5b818110610b3857509160029391856001969410610b20575b50505002019055565b01515f196008601f8516021c191690555f8080610b17565b91936020600181928787015181550195019201610aff565b906101e191610a83565b610b65816007610b50565b6109727fadf3ae8bd543b3007d464f15cb8ea1db3f44e84d41d203164f40b95e27558ac6916101a960405190565b6101e1906109d2565b6101e190610ba8610db8565b610bb3816006610b50565b6109727f4df9dcd34ae35f40f2c756fd8ac83210ed0b76d065543ee73d868aec7c7fcf02916101a960405190565b6101e190610b9c565b61018791610c0461075e92610bfc5f90565b506001610733565b610733565b6101e190610c15610db8565b80610c32610c256101b65f610780565b916001600160a01b031690565b14610c40576101e190610e3b565b61081e610c4c5f610780565b604051631e4fbdf760e01b8152918291600483016001600160a01b03909116815260200190565b6101e190610c09565b916101e19291600192610ee1565b6001600160a01b0390911681526060810193926101e1929091604091610cb1906020830152565b0152565b919291610cc28282610bea565b905f198203610cd3575b5050509050565b848210610cf4579293610ceb93929103905f92610ee1565b805f8080610ccc565b5061081e84929192610d0560405190565b637dc7a0d960e11b815293849360048501610c8a565b9182610d2c610c256101b65f610780565b14610d855781610d41610c256101b65f610780565b14610d52576101e192919091611003565b61081e610d5e5f610780565b60405163ec442f0560e01b8152918291600483016001600160a01b03909116815260200190565b61081e610d915f610780565b604051634b637e8f60e11b8152918291600483016001600160a01b03909116815260200190565b610dc0610993565b610dcc610c25336101b6565b03610dd357565b60405163118cdaa760e01b8152336004820152602490fd5b80610dfb610c256101b65f610780565b14610d52576101e191610e0d5f610780565b919091611003565b906001600160a01b03906108a0565b90610e346101876108d19261072a565b8254610e15565b610e456005610989565b610e50826005610e24565b90610e84610e7e7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361072a565b9161072a565b91610e8e60405190565b80805b0390a3565b9081610ea7610c256101b65f610780565b14610d85576101e19190610eba5f610780565b9091611003565b905f19906108a0565b90610eda6101876108d192610822565b8254610ec1565b909281610ef3610c256101b65f610780565b14610faa5783610f08610c256101b65f610780565b14610f7757610f2b83610f26610f1f856001610733565b8790610733565b610eca565b610f3457505050565b919091610e91610f6d610f677f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259361072a565b9361072a565b9361026660405190565b61081e610f835f610780565b604051634a1406b160e11b8152918291600483016001600160a01b03909116815260200190565b61081e610fb65f610780565b60405163e602df0560e01b8152918291600483016001600160a01b03909116815260200190565b634e487b7160e01b5f52601160045260245ffd5b91908201809211610ffe57565b610fdd565b91909180611016610c256101b65f610780565b036110bb576110386110318361102c600261069c565b610ff1565b6002610eca565b82611048610c256101b65f610780565b03611095576110626110318361105e600261069c565b0390565b919091610e91610f6d610f677fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361072a565b6110b6826110b06110a6865f610733565b916101728361069c565b90610eca565b611062565b6110c861075e825f610733565b8281106110e5576110e090839003610f26835f610733565b611038565b60405163391434e360e21b815292839261081e929060048501610c8a56fea2646970667358221220b930ac9ec31c2522c7d92370a87708355a7735755899aaa02fcd6ca7f116cef964736f6c63430008190033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7472616e736665722f6368616e6e656c2d322f7472616e736665722f6368616e6e656c2d31332f75697374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7472616e736665722f6368616e6e656c2d322f7472616e736665722f6368616e6e656c2d31332f75697374000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610120578063095ea7b31461011b57806318160ddd1461011657806323b872dd14610111578063313ce5671461010c57806340c10f191461010757806370a0823114610102578063715018a6146100fd5780637a1395aa146100f85780638da5cb5b146100f357806395d89b41146100ee5780639dc29fac146100e9578063a9059cbb146100e4578063b84c8246146100df578063c47f0027146100da578063dd62ed3e146100d55763f2fde38b0361012f57610571565b610555565b61051a565b610502565b6103ff565b6103e6565b6103cb565b610396565b61037e565b61033c565b610321565b6102ef565b6102bf565b6102a3565b610247565b610219565b61018a565b5f91031261012f57565b5f80fd5b90825f9392825e0152565b61015f61016860209361017293610153815190565b80835293849260200190565b95869101610133565b601f01601f191690565b0190565b60208082526101879291019061013e565b90565b3461012f5761019a366004610125565b6101b26101a561067b565b6040515b91829182610176565b0390f35b6001600160a01b031690565b6001600160a01b0381165b0361012f57565b905035906101e1826101c2565b565b806101cd565b905035906101e1826101e3565b919060408382031261012f576101879061021081856101d4565b936020016101e9565b3461012f576101b261023561022f3660046101f6565b90610685565b60405191829182901515815260200190565b3461012f57610257366004610125565b6101b26102626106a6565b6040515b9182918290815260200190565b909160608284031261012f5761018761028c84846101d4565b9361029a81602086016101d4565b936040016101e9565b3461012f576101b26102356102b9366004610273565b916106b0565b3461012f576102cf366004610125565b6101b26102da6106e0565b6040515b9182918260ff909116815260200190565b3461012f576103086103023660046101f6565b90610701565b604051005b9060208282031261012f57610187916101d4565b3461012f576101b261026261033736600461030d565b610749565b3461012f5761034c366004610125565b61030861079a565b60ff81166101cd565b905035906101e182610354565b9060208282031261012f576101879161035d565b3461012f5761030861039136600461036a565b610977565b3461012f576103a6366004610125565b6101b26103b1610993565b604051918291826001600160a01b03909116815260200190565b3461012f576103db366004610125565b6101b26101a561099d565b3461012f576103086103f93660046101f6565b906109be565b3461012f576101b26102356104153660046101f6565b906109c8565b634e487b7160e01b5f52604160045260245ffd5b90601f01601f1916810190811067ffffffffffffffff82111761045157604052565b61041b565b906101e161046360405190565b928361042f565b67ffffffffffffffff811161045157602090601f01601f19160190565b90825f939282370152565b909291926104a76104a28261046a565b610456565b9381855260208501908284011161012f576101e192610487565b9080601f8301121561012f5781602061018793359101610492565b9060208282031261012f57813567ffffffffffffffff811161012f5761018792016104c1565b3461012f576103086105153660046104dc565b610b93565b3461012f5761030861052d3660046104dc565b610be1565b919060408382031261012f576101879061054c81856101d4565b936020016101d4565b3461012f576101b261026261056b366004610532565b90610bea565b3461012f5761030861058436600461030d565b610c73565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156105bd575b60208310146105b857565b610589565b91607f16916105ad565b80545f9392916105e36105d98361059d565b8085529360200190565b916001811690811561063257506001146105fc57505050565b61060d91929394505f5260205f2090565b915f925b81841061061e5750500190565b805484840152602090930192600101610611565b92949550505060ff1916825215156020020190565b90610187916105c7565b906101e161066b9261066260405190565b93848092610647565b038361042f565b61018790610651565b6101876006610672565b610690919033610c7c565b600190565b6101879081565b6101879054610695565b610187600261069c565b61069092906106c0823383610cb5565b919091610d1b565b6101879060a01c5b60ff1690565b61018790546106c8565b61018760056106d6565b906101e1916106f7610db8565b906101e191610deb565b906101e1916106ea565b6101b6610187610187926001600160a01b031690565b6101879061070b565b61018790610721565b9061073d9061072a565b5f5260205260405f2090565b61075e610187916107575f90565b505f610733565b61069c565b61076b610db8565b6101e1610789565b6101b66101876101879290565b61018790610773565b6101e16107955f610780565b610e3b565b6101e1610763565b6101e1906107ae610db8565b6108f5565b610187906106d0565b61018790546107b3565b156107cd57565b60405162461bcd60e51b815260206004820152602360248201527f4552433230546f6b656e3a20646563696d616c7320697320616c7265616479206044820152621cd95d60ea1b6064820152608490fd5b0390fd5b6101876101876101879290565b610187604d610822565b6101876101876101879260ff1690565b1561085057565b60405162461bcd60e51b815260206004820152601e60248201527f4552433230546f6b656e3a20707265636973696f6e20746f6f206869676800006044820152606490fd5b9060ff60a01b9060a01b5b9181191691161790565b6106d06101876101879260ff1690565b906108ca6101876108d1926108aa565b8254610895565b9055565b9060ff906108a0565b906108ee6101876108d192151590565b82546108d5565b61090e61090961090560086107bc565b1590565b6107c6565b61092d8161092661092061018761082f565b91610839565b1115610849565b6109388160056108ba565b610944600160086108de565b6109727fb0dbe162923e18ca76cb016a45453088f7266fee88d89e839694a70a9caf7b25916102de60405190565b0390a1565b6101e1906107a2565b610187906101b6565b6101879054610980565b6101876005610989565b6101876007610672565b906101e1916109b4610db8565b906101e191610e96565b906101e1916109a7565b61069091336106c0565b6101e1906109de610db8565b610b5a565b915f1960089290920291821b911b6108a0565b9190610a076101876108d193610822565b9083546109e3565b6101e1915f916109f6565b818110610a25575050565b80610a325f600193610a0f565b01610a1a565b9190601f8111610a4757505050565b610a576101e1935f5260205f2090565b906020601f840181900483019310610a79575b6020601f909101040190610a1a565b9091508190610a6a565b90610a8c815190565b9067ffffffffffffffff821161045157610ab082610aaa855461059d565b85610a38565b602090601f8311600114610ae9576108d192915f9183610ade575b50505f19600883021c1916906002021790565b015190505f80610acb565b601f19831691610afc855f5260205f2090565b925f5b818110610b3857509160029391856001969410610b20575b50505002019055565b01515f196008601f8516021c191690555f8080610b17565b91936020600181928787015181550195019201610aff565b906101e191610a83565b610b65816007610b50565b6109727fadf3ae8bd543b3007d464f15cb8ea1db3f44e84d41d203164f40b95e27558ac6916101a960405190565b6101e1906109d2565b6101e190610ba8610db8565b610bb3816006610b50565b6109727f4df9dcd34ae35f40f2c756fd8ac83210ed0b76d065543ee73d868aec7c7fcf02916101a960405190565b6101e190610b9c565b61018791610c0461075e92610bfc5f90565b506001610733565b610733565b6101e190610c15610db8565b80610c32610c256101b65f610780565b916001600160a01b031690565b14610c40576101e190610e3b565b61081e610c4c5f610780565b604051631e4fbdf760e01b8152918291600483016001600160a01b03909116815260200190565b6101e190610c09565b916101e19291600192610ee1565b6001600160a01b0390911681526060810193926101e1929091604091610cb1906020830152565b0152565b919291610cc28282610bea565b905f198203610cd3575b5050509050565b848210610cf4579293610ceb93929103905f92610ee1565b805f8080610ccc565b5061081e84929192610d0560405190565b637dc7a0d960e11b815293849360048501610c8a565b9182610d2c610c256101b65f610780565b14610d855781610d41610c256101b65f610780565b14610d52576101e192919091611003565b61081e610d5e5f610780565b60405163ec442f0560e01b8152918291600483016001600160a01b03909116815260200190565b61081e610d915f610780565b604051634b637e8f60e11b8152918291600483016001600160a01b03909116815260200190565b610dc0610993565b610dcc610c25336101b6565b03610dd357565b60405163118cdaa760e01b8152336004820152602490fd5b80610dfb610c256101b65f610780565b14610d52576101e191610e0d5f610780565b919091611003565b906001600160a01b03906108a0565b90610e346101876108d19261072a565b8254610e15565b610e456005610989565b610e50826005610e24565b90610e84610e7e7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361072a565b9161072a565b91610e8e60405190565b80805b0390a3565b9081610ea7610c256101b65f610780565b14610d85576101e19190610eba5f610780565b9091611003565b905f19906108a0565b90610eda6101876108d192610822565b8254610ec1565b909281610ef3610c256101b65f610780565b14610faa5783610f08610c256101b65f610780565b14610f7757610f2b83610f26610f1f856001610733565b8790610733565b610eca565b610f3457505050565b919091610e91610f6d610f677f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259361072a565b9361072a565b9361026660405190565b61081e610f835f610780565b604051634a1406b160e11b8152918291600483016001600160a01b03909116815260200190565b61081e610fb65f610780565b60405163e602df0560e01b8152918291600483016001600160a01b03909116815260200190565b634e487b7160e01b5f52601160045260245ffd5b91908201809211610ffe57565b610fdd565b91909180611016610c256101b65f610780565b036110bb576110386110318361102c600261069c565b610ff1565b6002610eca565b82611048610c256101b65f610780565b03611095576110626110318361105e600261069c565b0390565b919091610e91610f6d610f677fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361072a565b6110b6826110b06110a6865f610733565b916101728361069c565b90610eca565b611062565b6110c861075e825f610733565b8281106110e5576110e090839003610f26835f610733565b611038565b60405163391434e360e21b815292839261081e929060048501610c8a56fea2646970667358221220b930ac9ec31c2522c7d92370a87708355a7735755899aaa02fcd6ca7f116cef964736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7472616e736665722f6368616e6e656c2d322f7472616e736665722f6368616e6e656c2d31332f75697374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7472616e736665722f6368616e6e656c2d322f7472616e736665722f6368616e6e656c2d31332f75697374000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : initialName (string): transfer/channel-2/transfer/channel-13/uist
Arg [1] : initialSymbol (string): transfer/channel-2/transfer/channel-13/uist
Arg [2] : initSupply (uint256): 0
Arg [3] : initialDecimals (uint8): 0
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000002b
Arg [5] : 7472616e736665722f6368616e6e656c2d322f7472616e736665722f6368616e
Arg [6] : 6e656c2d31332f75697374000000000000000000000000000000000000000000
Arg [7] : 000000000000000000000000000000000000000000000000000000000000002b
Arg [8] : 7472616e736665722f6368616e6e656c2d322f7472616e736665722f6368616e
Arg [9] : 6e656c2d31332f75697374000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
523:4505:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;523:4505:0;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;523:4505:0;;:::o;:::-;-1:-1:-1;;;;;523:4505:0;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;523:4505:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;523:4505:0;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;523:4505:0;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;4720:98::-;4799:12;4806:5;4799:12;:::i;4293:186:3:-;4445:5;;;735:10:6;4445:5:3;:::i;:::-;4468:4;4461:11;:::o;523:4505:0:-;;;;;;;;;;:::i;3144:97:3:-;3222:12;;;:::i;5039:244::-;5249:5;;;5213;5249;735:10:6;5249:5:3;5213;:::i;:::-;5245:2;5249:5;;;:::i;523:4505:0:-;;;;;;;;;;;;;;;:::i;4520:98::-;4602:9;;;:::i;1500:62:1:-;;1554:1;1500:62;;;:::i;:::-;2436:105:0;2527:6;2436:105;2527:6;:::i;2436:105::-;;;;;:::i;523:4505::-;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;3299:116:3:-;3390:18;;3299:116;3364:7;523:4505:0;;;3364:7:3;3390:9;;:18;:::i;:::-;;:::i;1500:62:1:-;;;:::i;:::-;1554:1;;:::i;523:4505:0:-;;;;;;;;;;;:::i;2293:101:1:-;2376:10;;2384:1;2376:10;:::i;:::-;;:::i;2293:101::-;;;:::i;1500:62::-;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;523:4505:0:-;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;523:4505:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;523:4505:0;;;;;;;;;;;;;;;;;;684:43;725:2;;;:::i;:::-;;;;;523:4505;;;;725:2;;;;:::o;:::-;523:4505;;-1:-1:-1;;;725:2:0;;;;;;;;;;;523:4505;725:2;523:4505;;;725:2;523:4505;;;725:2;;-1:-1:-1;;;725:2:0;;;;;;;;;;;;:::o;:::-;;;;;523:4505;;;;725:2;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;523:4505;;;;725:2;;;;:::i;3416:322::-;3485:63;3493:15;3494:14;;;:::i;:::-;3493:15;;523:4505;3493:15;3485:63;:::i;:::-;3558:70;3566:11;:27;;3581:12;;:::i;3566:27::-;;;:::i;:::-;;;3558:70;:::i;:::-;3638:23;3650:11;3638:23;;:::i;:::-;3671:21;3688:4;3671:21;;:::i;:::-;3707:24;;;;523:4505;;;;3707:24;;;;3416:322::o;:::-;;;;:::i;523:4505::-;;;;;;;;;;:::i;1638:85:1:-;1710:6;;;:::i;4924:102:0:-;5005:14;5012:7;5005:14;:::i;1500:62:1:-;;1554:1;1500:62;;;:::i;:::-;2870:105:0;2961:6;2870:105;2961:6;:::i;2870:105::-;;;;;:::i;3610:178:3:-;3754:5;;735:10:6;3711:12:3;728:17:6;1500:62:1;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;523:4505:0:-;;-1:-1:-1;;523:4505:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;523:4505:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;523:4505:0;;;;;;;;;;;;;;;;-1:-1:-1;523:4505:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;523:4505:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4242:134::-;4315:19;4325:9;4315:19;;:::i;:::-;4349:20;;;;523:4505;;;;4242:134;;;;:::i;1500:62:1:-;1554:1;1500:62;;;:::i;:::-;3994:15:0;4002:7;3994:15;;:::i;:::-;4024:16;;;;523:4505;;;;3925:122;;;;:::i;3846:140:3:-;3952:27;3846:140;3952:18;:27;3846:140;3926:7;523:4505:0;;;3926:7:3;3952:11;;:18;:::i;:::-;:27;:::i;1500:62:1:-;1554:1;1500:62;;;:::i;:::-;2627:8;:22;;2639:10;2647:1;2639:10;:::i;2627:22::-;;-1:-1:-1;;;;;523:4505:0;;;2627:22:1;;2623:91;;2742:8;;;:::i;2623:91::-;2672:31;2692:10;2700:1;2692:10;:::i;:::-;523:4505:0;;-1:-1:-1;;;2672:31:1;;;;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;;;2543:215:1;;;;:::i;8989:128:3:-;;9105:4;8989:128;9089:7;9105:4;;;:::i;523:4505:0:-;-1:-1:-1;;;;;523:4505:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10663:477:3;;;;10789:25;10806:7;10663:477;10789:25;:::i;:::-;10828:16;-1:-1:-1;;10828:16:3;:37;10824:310;;10663:477;;;;;;:::o;10824:310::-;10904:5;10885:16;:24;10881:130;;11061:5;;11103;;11061;11068:7;523:4505:0;11103:5:3;;;;:::i;:::-;10824:310;;;;;;10881:130;10963:7;10936:60;10963:7;;10972:16;10990:5;10936:60;523:4505:0;;;;10936:60:3;-1:-1:-1;;;10936:60:3;;;;;;;;;:::i;5656:300::-;;5739:4;:18;;5747:10;5755:1;5747:10;:::i;5739:18::-;;5735:86;;5834:2;:16;;5840:10;5848:1;5840:10;:::i;5834:16::-;;5830:86;;5943:5;5933:4;5939:2;5943:5;;;:::i;5830:86::-;5873:32;5894:10;5902:1;5894:10;:::i;:::-;523:4505:0;;-1:-1:-1;;;5873:32:3;;;;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;;;5735:86:3;5780:30;5799:10;5807:1;5799:10;:::i;:::-;523:4505:0;;-1:-1:-1;;;5780:30:3;;;;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;;;1796:162:1;1855:7;;:::i;:::-;:23;;735:10:6;1866:12:1;728:17:6;1855:23:1;;1851:101;;1796:162::o;1851:101::-;523:4505:0;;-1:-1:-1;;;1901:40:1;;735:10:6;1901:40:1;;;523:4505:0;;;;7721:208:3;7791:7;:21;;7802:10;7810:1;7802:10;:::i;7791:21::-;;7787:91;;7916:5;7903:1;7895:10;7903:1;7895:10;:::i;:::-;7907:7;7916:5;;;:::i;523:4505:0:-;;-1:-1:-1;;;;;523:4505:0;;725:2;523:4505;;;;;;;:::i;:::-;;;;:::i;2912:187:1:-;3004:6;;;:::i;:::-;3020:17;3029:8;3020:17;;:::i;:::-;3083:8;3052:40;;;;;:::i;:::-;;;:::i;:::-;;;523:4505:0;;;;3052:40:1;;;;;;;2912:187::o;8247:206:3:-;;8317:7;:21;;8328:10;8336:1;8328:10;:::i;8317:21::-;;8313:89;;8440:5;8419:7;8436:1;8428:10;8436:1;8428:10;:::i;:::-;8440:5;;;:::i;523:4505:0:-;;-1:-1:-1;;523:4505:0;;725:2;523:4505;;;;;;;:::i;:::-;;;;:::i;9949:432:3:-;;;10061:5;:19;;10070:10;10078:1;10070:10;:::i;10061:19::-;;10057:89;;10159:7;:21;;10170:10;10178:1;10170:10;:::i;10159:21::-;;10155:90;;10254:35;10284:5;10254:27;:18;10266:5;10254:11;:18;:::i;:::-;10273:7;10254:27;;:::i;:::-;:35;:::i;:::-;10299:76;;9949:432;;;:::o;10299:76::-;10349:7;10358:5;10333:31;;;;;;;:::i;:::-;;;:::i;:::-;;;523:4505:0;;;;10155:90:3;10203:31;10223:10;10231:1;10223:10;:::i;:::-;523:4505:0;;-1:-1:-1;;;10203:31:3;;;;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;;;10057:89:3;10103:32;10124:10;10132:1;10124:10;:::i;:::-;523:4505:0;;-1:-1:-1;;;10103:32:3;;;;;;;;-1:-1:-1;;;;;523:4505:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;6271:1107:3:-;;;;6360:4;:18;;6368:10;6376:1;6368:10;:::i;6360:18::-;;6356:540;;6496:21;;6512:5;6496:21;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;6910:2;:16;;6916:10;6924:1;6916:10;:::i;6910:16::-;;6906:425;;7073:21;;7089:5;7073:21;;;:::i;:::-;523:4505:0;;;7073:21:3;7361:2;7365:5;7346:25;;;;;;;:::i;6906:425::-;7284:22;7301:5;7284:22;:13;7294:2;7284:9;:13;:::i;:::-;:22;;;;:::i;:::-;;;:::i;:::-;6906:425;;6356:540;6570:15;;6580:4;6570:9;:15;:::i;:::-;6617:5;6603:11;:19;6599:115;;6834:37;;523:4505:0;;;6834:15:3;6844:4;6834:9;:15;:::i;:37::-;6356:540;;6599:115;523:4505:0;;-1:-1:-1;;;6649:50:3;;523:4505:0;;;6649:50:3;;6674:4;6649:50;;;;:::i
Swarm Source
ipfs://b930ac9ec31c2522c7d92370a87708355a7735755899aaa02fcd6ca7f116cef9
Loading...
Loading
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.