Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PreLevelToken
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.18;
import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
/**
* @title PreLevelToken
* @author LevelFinance
* @notice PreLevelToken is intermediate token issues by protocol in place of usage incentive. User collect their preLVL to convert to LVL token in following ways:
* - instant convert: with 30% fee in form of USDT. These amount of USDT will be sent to DAO and liquidity pool
* - vesting: gradually convert preLVL to LVL in 1 year. After start vesting, user can claim their converted LVL or stop vesting at any time. The only requirement is they MUST
* lock an amount of LVL to staking contract.
*/
contract PreLevelToken is Ownable2Step, ERC20Burnable {
address public minter;
constructor() Ownable2Step() ERC20("Pre Level Token", "preLVL") {}
function mint(address _account, uint256 _amount) external {
if (minter != msg.sender) revert Unauthorized();
_mint(_account, _amount);
}
function setMinter(address _minter) external onlyOwner {
if (_minter == address(0)) revert ZeroAddress();
if (minter != _minter) {
minter = _minter;
emit MinterSet(_minter);
}
}
// ======== ERRORS ========
error Unauthorized();
error ZeroAddress();
// ======== EVENTS ========
event MinterSet(address _minter);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)
pragma solidity ^0.8.0;
import "../ERC20.sol";
import "../../../utils/Context.sol";
/**
* @dev Extension of {ERC20} that allows token holders to destroy both their own
* tokens and those that they have an allowance for, in a way that can be
* recognized off-chain (via event analysis).
*/
abstract contract ERC20Burnable is Context, ERC20 {
/**
* @dev Destroys `amount` tokens from the caller.
*
* See {ERC20-_burn}.
*/
function burn(uint256 amount) public virtual {
_burn(_msgSender(), amount);
}
/**
* @dev Destroys `amount` tokens from `account`, deducting from the caller's
* allowance.
*
* See {ERC20-_burn} and {ERC20-allowance}.
*
* Requirements:
*
* - the caller must have allowance for ``accounts``'s tokens of at least
* `amount`.
*/
function burnFrom(address account, uint256 amount) public virtual {
_spendAllowance(account, _msgSender(), amount);
_burn(account, amount);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)
pragma solidity ^0.8.0;
import "./Ownable.sol";
/**
* @dev Contract module which provides access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership} and {acceptOwnership}.
*
* This module is used through inheritance. It will make available all functions
* from parent (Ownable).
*/
abstract contract Ownable2Step is Ownable {
address private _pendingOwner;
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
/**
* @dev Returns the address of the pending owner.
*/
function pendingOwner() public view virtual returns (address) {
return _pendingOwner;
}
/**
* @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual override onlyOwner {
_pendingOwner = newOwner;
emit OwnershipTransferStarted(owner(), newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual override {
delete _pendingOwner;
super._transferOwnership(newOwner);
}
/**
* @dev The new owner accepts the ownership transfer.
*/
function acceptOwnership() external {
address sender = _msgSender();
require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner");
_transferOwnership(sender);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.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}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* 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].
*
* 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.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* 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 override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override 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 value {ERC20} uses, unless this function is
* 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 override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override 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 `amount`.
*/
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `amount` 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 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
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 `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `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.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` 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.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @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;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../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.
*
* By default, the owner account will be the one that deploys the contract. 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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @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 {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing 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 {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_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 v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @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 amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` 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 amount) 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 `amount` 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 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` 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 amount
) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
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);
}{
"remappings": [
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
"solady/=lib/solady/src/",
"forge-std/=lib/forge-std/src/",
"src/=src/",
"test/=test/",
"script/=script/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"optimizer": {
"enabled": true,
"runs": 1000
},
"viaIR": true,
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"evmVersion": "paris",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","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":false,"internalType":"address","name":"_minter","type":"address"}],"name":"MinterSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","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":"newOwner","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"},{"inputs":[],"name":"acceptOwnership","outputs":[],"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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"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":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"setMinter","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60803462000365576040906001600160401b03818301818111838210176200034f578352600f82526020906e283932902632bb32b6102a37b5b2b760891b828401528351848101818110838211176200034f5785526006808252651c1c9953159360d21b84830152600180546001600160a01b031990811682556000805491821633908117825593979294929390916001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a382518581116200025b576005908154948686811c9616801562000344575b8987101462000330578190601f96878111620002df575b5089908783116001146200027b5785926200026f575b5050600019600383901b1c191690861b1781555b82519586116200025b578754908582811c9216801562000250575b888310146200023c57848211620001f6575b5050859285116001146200018f57939450849291908362000183575b50501b916000199060031b1c19161790555b51610fb090816200036b8239f35b01519250388062000163565b86815285812093958591601f198316915b88838310620001db5750505010620001c1575b505050811b01905562000175565b015160001960f88460031b161c19169055388080620001b3565b858701518855909601959485019487935090810190620001a0565b8883528783209085808901821c8301938a8a1062000232575b01901c019085905b82811062000226575062000147565b83815501859062000217565b935082936200020f565b634e487b7160e01b83526022600452602483fd5b91607f169162000135565b634e487b7160e01b82526041600452602482fd5b01519050388062000106565b8486528a86208994509190601f198416875b8d828210620002c85750508411620002ae575b505050811b0181556200011a565b015160001960f88460031b161c19169055388080620002a0565b8385015186558c979095019493840193016200028d565b90915083855289852087808501861c8201928c861062000326575b918a918695949301871c01915b82811062000317575050620000f0565b8781558594508a910162000307565b92508192620002fa565b634e487b7160e01b84526022600452602484fd5b95607f1695620000d9565b634e487b7160e01b600052604160045260246000fd5b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146108ce5750806307546172146108a6578063095ea7b31461087c57806318160ddd1461085f57806323b872dd14610822578063313ce5671461080657806339509351146107b757806340c10f19146106c657806342966c68146106a857806370a0823114610671578063715018a61461060257806379ba50971461051f57806379cc6790146104ec5780638da5cb5b146104c657806395d89b41146103a4578063a457c2d7146102e7578063a9059cbb146102b6578063dd62ed3e1461026d578063e30c397814610241578063f2fde38b146101c75763fca3b5aa1461010a57600080fd5b346101c35760203660031901126101c357610123610a0c565b9061012c610a3d565b6001600160a01b0380921690811561019c5750806007549283160361014f578380f35b7f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b6928173ffffffffffffffffffffffffffffffffffffffff19602094161760075551908152a13880808380f35b83517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b833461023e57602036600319011261023e576101e1610a0c565b6101e9610a3d565b6001600160a01b03809116908173ffffffffffffffffffffffffffffffffffffffff1960015416176001558254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b5050346102695781600319360112610269576020906001600160a01b03600154169051908152f35b5080fd5b5050346102695780600319360112610269578060209261028b610a0c565b610293610a27565b6001600160a01b0391821683526003865283832091168252845220549051908152f35b5050346102695780600319360112610269576020906102e06102d6610a0c565b6024359033610ab8565b5160018152f35b50823461023e578260031936011261023e57610301610a0c565b91836024359233815260036020528181206001600160a01b038616825260205220549082821061033b576020856102e08585038733610c6e565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b5091903461026957816003193601126102695780519082600654600181811c908083169283156104bc575b60209384841081146104a95783885290811561048d5750600114610437575b505050829003601f01601f191682019267ffffffffffffffff84118385101761042457508291826104209252826109c3565b0390f35b80604186634e487b7160e01b6024945252fd5b600687529192508591837ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061047957505050508301013880806103ee565b805488860183015293019284908201610463565b60ff1916878501525050151560051b84010190503880806103ee565b60248960228c634e487b7160e01b835252fd5b91607f16916103cf565b5050346102695781600319360112610269576001600160a01b0360209254169051908152f35b5050346102695736600319011261023e5761051c610508610a0c565b60243590610517823383610da2565b610e3a565b80f35b5090346101c357826003193601126101c357600154916001600160a01b0391338385160361059957505073ffffffffffffffffffffffffffffffffffffffff19809216600155825491339083161783553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152fd5b833461023e578060031936011261023e5761061b610a3d565b806001600160a01b0373ffffffffffffffffffffffffffffffffffffffff19806001541660015582549081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50503461026957602036600319011261026957806020926001600160a01b03610698610a0c565b1681526002845220549051908152f35b8382346102695760203660031901126102695761051c903533610e3a565b5090346101c357806003193601126101c3576106e0610a0c565b90602435916001600160a01b03908160075416330361078f571692831561074d57827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9282610733889660209554610a95565b90558585526002835280852082815401905551908152a380f35b6020606492519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b8483517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b5050346102695780600319360112610269576102e06020926107ff6107da610a0c565b91338152600386528481206001600160a01b0384168252865284602435912054610a95565b9033610c6e565b5050346102695781600319360112610269576020905160128152f35b505034610269576060366003190112610269576020906102e0610843610a0c565b61084b610a27565b6044359161085a833383610da2565b610ab8565b50346101c357826003193601126101c35760209250549051908152f35b5050346102695780600319360112610269576020906102e061089c610a0c565b6024359033610c6e565b5050346102695781600319360112610269576020906001600160a01b03600754169051908152f35b84915083346101c357826003193601126101c35782600554600181811c908083169283156109b9575b60209384841081146104a95783885290811561099d575060011461094757505050829003601f01601f191682019267ffffffffffffffff84118385101761042457508291826104209252826109c3565b600587529192508591837f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b83851061098957505050508301018580806103ee565b805488860183015293019284908201610973565b60ff1916878501525050151560051b84010190508580806103ee565b91607f16916108f7565b6020808252825181830181905290939260005b8281106109f857505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016109d6565b600435906001600160a01b0382168203610a2257565b600080fd5b602435906001600160a01b0382168203610a2257565b6001600160a01b03600054163303610a5157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b91908201809211610aa257565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03809116918215610c045716918215610b9a5760008281526002602052604081205491808310610b3057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260028652038282205586815220818154019055604051908152a3565b608460405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b6001600160a01b03809116918215610d395716918215610ccf5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260038252604060002085600052825280604060002055604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b906001600160a01b0380831660005260036020526040600020908216600052602052604060002054926000198403610ddb575b50505050565b808410610df657610ded930391610c6e565b38808080610dd5565b606460405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b6001600160a01b03168015610f105780600052600260205260406000205491808310610ea6576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92600095858752600284520360408620558060045403600455604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fdfea2646970667358221220aaa4f232a18e8f75c2225717aa6498a450591a2ec5a24d8d869e0bf7fc7487a564736f6c63430008120033
Deployed Bytecode
0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146108ce5750806307546172146108a6578063095ea7b31461087c57806318160ddd1461085f57806323b872dd14610822578063313ce5671461080657806339509351146107b757806340c10f19146106c657806342966c68146106a857806370a0823114610671578063715018a61461060257806379ba50971461051f57806379cc6790146104ec5780638da5cb5b146104c657806395d89b41146103a4578063a457c2d7146102e7578063a9059cbb146102b6578063dd62ed3e1461026d578063e30c397814610241578063f2fde38b146101c75763fca3b5aa1461010a57600080fd5b346101c35760203660031901126101c357610123610a0c565b9061012c610a3d565b6001600160a01b0380921690811561019c5750806007549283160361014f578380f35b7f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b6928173ffffffffffffffffffffffffffffffffffffffff19602094161760075551908152a13880808380f35b83517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b833461023e57602036600319011261023e576101e1610a0c565b6101e9610a3d565b6001600160a01b03809116908173ffffffffffffffffffffffffffffffffffffffff1960015416176001558254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b5050346102695781600319360112610269576020906001600160a01b03600154169051908152f35b5080fd5b5050346102695780600319360112610269578060209261028b610a0c565b610293610a27565b6001600160a01b0391821683526003865283832091168252845220549051908152f35b5050346102695780600319360112610269576020906102e06102d6610a0c565b6024359033610ab8565b5160018152f35b50823461023e578260031936011261023e57610301610a0c565b91836024359233815260036020528181206001600160a01b038616825260205220549082821061033b576020856102e08585038733610c6e565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b5091903461026957816003193601126102695780519082600654600181811c908083169283156104bc575b60209384841081146104a95783885290811561048d5750600114610437575b505050829003601f01601f191682019267ffffffffffffffff84118385101761042457508291826104209252826109c3565b0390f35b80604186634e487b7160e01b6024945252fd5b600687529192508591837ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061047957505050508301013880806103ee565b805488860183015293019284908201610463565b60ff1916878501525050151560051b84010190503880806103ee565b60248960228c634e487b7160e01b835252fd5b91607f16916103cf565b5050346102695781600319360112610269576001600160a01b0360209254169051908152f35b5050346102695736600319011261023e5761051c610508610a0c565b60243590610517823383610da2565b610e3a565b80f35b5090346101c357826003193601126101c357600154916001600160a01b0391338385160361059957505073ffffffffffffffffffffffffffffffffffffffff19809216600155825491339083161783553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152fd5b833461023e578060031936011261023e5761061b610a3d565b806001600160a01b0373ffffffffffffffffffffffffffffffffffffffff19806001541660015582549081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50503461026957602036600319011261026957806020926001600160a01b03610698610a0c565b1681526002845220549051908152f35b8382346102695760203660031901126102695761051c903533610e3a565b5090346101c357806003193601126101c3576106e0610a0c565b90602435916001600160a01b03908160075416330361078f571692831561074d57827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9282610733889660209554610a95565b90558585526002835280852082815401905551908152a380f35b6020606492519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b8483517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b5050346102695780600319360112610269576102e06020926107ff6107da610a0c565b91338152600386528481206001600160a01b0384168252865284602435912054610a95565b9033610c6e565b5050346102695781600319360112610269576020905160128152f35b505034610269576060366003190112610269576020906102e0610843610a0c565b61084b610a27565b6044359161085a833383610da2565b610ab8565b50346101c357826003193601126101c35760209250549051908152f35b5050346102695780600319360112610269576020906102e061089c610a0c565b6024359033610c6e565b5050346102695781600319360112610269576020906001600160a01b03600754169051908152f35b84915083346101c357826003193601126101c35782600554600181811c908083169283156109b9575b60209384841081146104a95783885290811561099d575060011461094757505050829003601f01601f191682019267ffffffffffffffff84118385101761042457508291826104209252826109c3565b600587529192508591837f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b83851061098957505050508301018580806103ee565b805488860183015293019284908201610973565b60ff1916878501525050151560051b84010190508580806103ee565b91607f16916108f7565b6020808252825181830181905290939260005b8281106109f857505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016109d6565b600435906001600160a01b0382168203610a2257565b600080fd5b602435906001600160a01b0382168203610a2257565b6001600160a01b03600054163303610a5157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b91908201809211610aa257565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03809116918215610c045716918215610b9a5760008281526002602052604081205491808310610b3057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260028652038282205586815220818154019055604051908152a3565b608460405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b6001600160a01b03809116918215610d395716918215610ccf5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260038252604060002085600052825280604060002055604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b906001600160a01b0380831660005260036020526040600020908216600052602052604060002054926000198403610ddb575b50505050565b808410610df657610ded930391610c6e565b38808080610dd5565b606460405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b6001600160a01b03168015610f105780600052600260205260406000205491808310610ea6576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92600095858752600284520360408620558060045403600455604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fdfea2646970667358221220aaa4f232a18e8f75c2225717aa6498a450591a2ec5a24d8d869e0bf7fc7487a564736f6c63430008120033
Deployed Bytecode Sourcemap
863:709:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;;;:::i;:::-;1063:62:0;;;:::i;:::-;-1:-1:-1;;;;;863:709:7;;;1255:21;;;1251:47;;863:709;;1312:6;863:709;;;;1312:17;1308:101;;863:709;;;1308:101;1380:18;863:709;;-1:-1:-1;;863:709:7;;;;1312:6;863:709;;;;;1380:18;1308:101;;;863:709;;;1251:47;863:709;;1285:13;;;;863:709;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;;;:::i;:::-;1063:62:0;;:::i;:::-;-1:-1:-1;;;;;863:709:7;;;;;-1:-1:-1;;1228:24:1;863:709:7;;;1228:24:1;863:709:7;;;;1267:43:1;;;;863:709:7;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;926:13:1;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3881:6:2;863:709:7;;:::i;:::-;;;719:10:6;;3881:6:2;:::i;:::-;863:709:7;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;719:10:6;;863:709:7;;;;;;;;-1:-1:-1;;;;;863:709:7;;;;;;;;6809:35:2;;;;863:709:7;;;;6945:34:2;863:709:7;;;;719:10:6;6945:34:2;:::i;863:709:7:-;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:7:2;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;-1:-1:-1;;863:709:7;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;2453:7:2;863:709:7;;;;-1:-1:-1;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;;-1:-1:-1;;863:709:7;;;;;;;;-1:-1:-1;863:709:7;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;863:709:7;;;;;;;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;1120:6:4;863:709:7;;:::i;:::-;;;719:10:6;1088:6:4;719:10:6;;1088:6:4;;:::i;:::-;1120;:::i;:::-;863:709:7;;;;;;;;;;;;;;;;926:13:1;863:709:7;;-1:-1:-1;;;;;719:10:6;;863:709:7;;;1827:24:1;863:709:7;;;;-1:-1:-1;;863:709:7;;;926:13:1;863:709:7;;;719:10:6;;863:709:7;;;;;;719:10:6;863:709:7;;2573:40:0;;;;863:709:7;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1063:62:0;;:::i;:::-;863:709:7;-1:-1:-1;;;;;;;863:709:7;1583:20:1;863:709:7;;1583:20:1;863:709:7;;;;;;;;;2573:40:0;;;;863:709:7;;;;;;;;;;-1:-1:-1;;863:709:7;;;;;;;-1:-1:-1;;;;;863:709:7;;:::i;:::-;;;;3506:9:2;863:709:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;653:6:4;863:709:7;;719:10:6;653:6:4;:::i;863:709:7:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;863:709:7;;1096:6;863:709;;1106:10;1096:20;1092:47;;863:709;8650:21:2;;;863:709:7;;;8999:37:2;863:709:7;;8778:22:2;863:709:7;;;;;8778:22:2;:::i;:::-;863:709:7;;;;;8946:9:2;863:709:7;;;;;;;;;;;;;;;8999:37:2;863:709:7;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;1092:47;863:709;;;1125:14;;;;863:709;;;;;;;;;;;;;;6038:38:2;863:709:7;;6038:38:2;863:709:7;;:::i;:::-;719:10:6;;863:709:7;;;;;;;;-1:-1:-1;;;;;863:709:7;;;;;;;;;;;;6038:38:2;:::i;:::-;719:10:6;;6038:38:2;:::i;863:709:7:-;;;;;;;;;;;;;;;;;3173:2:2;863:709:7;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;;;5441:6:2;863:709:7;;:::i;:::-;;;:::i;:::-;;;719:10:6;5404:6:2;719:10:6;;5404:6:2;;:::i;:::-;5441;:::i;863:709:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4593:6:2;863:709:7;;:::i;:::-;;;719:10:6;;4593:6:2;:::i;863:709:7:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;924:21:7;863:709;;;;;;;;;;;;;;;;;;;;;;;;;2240:5:2;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;-1:-1:-1;;863:709:7;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:5:2;863:709:7;;;;-1:-1:-1;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;863:709:7;;;;;-1:-1:-1;;863:709:7;;2240:5:2;863:709:7;;;;;-1:-1:-1;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;863:709:7;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;863:709:7;;;;;;:::o;1359:130:0:-;-1:-1:-1;;;;;1273:6:0;863:709:7;;719:10:6;1422:23:0;863:709:7;;1359:130:0:o;863:709:7:-;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;863:709:7;;;;;;;;7473:818:2;-1:-1:-1;;;;;863:709:7;;;7599:18:2;;;863:709:7;;;7677:16:2;;;863:709:7;;7615:1:2;863:709:7;;;7815:9:2;863:709:7;;;;;;7848:21:2;;;;863:709:7;;;;;8210:26:2;863:709:7;;;;;7815:9:2;863:709:7;;;;;;;;;;;;;;;;;;;;;;8210:26:2;7473:818::o;863:709:7:-;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;10504:370:2;-1:-1:-1;;;;;863:709:7;;;10635:19:2;;;863:709:7;;;10713:21:2;;;863:709:7;;;10835:32:2;863:709:7;;10652:1:2;863:709:7;10784:11:2;863:709:7;;;10652:1:2;863:709:7;;10652:1:2;863:709:7;;;;;10652:1:2;863:709:7;;;;;;;10835:32:2;10504:370::o;863:709:7:-;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;11155:441:2;;-1:-1:-1;;;;;863:709:7;;;-1:-1:-1;863:709:7;4089:11:2;863:709:7;;;-1:-1:-1;863:709:7;;;;-1:-1:-1;863:709:7;;;;-1:-1:-1;863:709:7;;11371:17:2;;;11351:37;;11347:243;;11155:441;;;;;:::o;11347:243::-;11412:26;;;863:709:7;;11539:25:2;863:709:7;;11539:25:2;;:::i;:::-;11347:243;;;;;;863:709:7;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;9422:659:2;-1:-1:-1;;;;;863:709:7;9505:21:2;;863:709:7;;;9524:1:2;863:709:7;9660:9:2;863:709:7;;;9524:1:2;863:709:7;;9696:24:2;;;;863:709:7;;;;9978:37:2;863:709:7;9524:1:2;863:709:7;;;;9660:9:2;863:709:7;;;;;;;;9930:22:2;863:709:7;;9930:22:2;863:709:7;;;;;;9978:37:2;9422:659::o;863:709:7:-;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;863:709:7;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://aaa4f232a18e8f75c2225717aa6498a450591a2ec5a24d8d869e0bf7fc7487a5
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.