Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 6,808 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 92532292 | 6 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Approve | 92485735 | 11 hrs ago | IN | 0 BNB | 0.00000257 | ||||
| Approve | 92485605 | 11 hrs ago | IN | 0 BNB | 0.00000274 | ||||
| Transfer | 92485302 | 12 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92468705 | 14 hrs ago | IN | 0 BNB | 0.00000258 | ||||
| Transfer | 92468659 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92468606 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92468548 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92466392 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92466332 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92466235 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92466172 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92466022 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92465957 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92465856 | 14 hrs ago | IN | 0 BNB | 0.00000258 | ||||
| Transfer | 92465767 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92465717 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92465654 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92465587 | 14 hrs ago | IN | 0 BNB | 0.00000172 | ||||
| Transfer | 92465002 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92464933 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92464866 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92464817 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92464707 | 14 hrs ago | IN | 0 BNB | 0.00000173 | ||||
| Transfer | 92464417 | 14 hrs ago | IN | 0 BNB | 0.00000173 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
NextToken
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/**
* NEXT Token (BEP20-compatible)
*
* Max supply: 1,000,000,000 NEXT (18 decimals)
* Buckets (hard caps):
* - Sales Minting: 440,000,000
* - Team & Management: 150,000,000
* - POE & Staking Rewards: 10,519,200
* - Performance Milestone System: 50,200,000
* - IT/Infrastructure & Exchange Development: 60,000,000
* - Reserve: 289,280,800
*
* Zero initial mint. Owner assigns minter addresses per bucket.
* Each bucket has its own mint function that enforces its cap and global MAX_SUPPLY.
*/
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract NextToken is ERC20, Ownable {
// --- Global cap ---
uint256 public constant MAX_SUPPLY = 1_000_000_000 * 1e18;
// --- Bucket caps (18 decimals) ---
uint256 public constant SALES_CAP = 440_000_000 * 1e18;
uint256 public constant TEAM_CAP = 150_000_000 * 1e18;
uint256 public constant POE_STAKING_CAP = 10_519_200 * 1e18;
uint256 public constant PERF_CAP = 50_200_000 * 1e18;
uint256 public constant INFRA_EXCH_CAP = 60_000_000 * 1e18;
uint256 public constant RESERVE_CAP = 289_280_800 * 1e18;
// --- Minter roles (owner-settable) ---
address public salesMinter;
address public teamMinter;
address public poeStakingMinter;
address public performanceMinter;
address public infraExchangeMinter;
address public reserveMinter;
// --- Accounting per bucket ---
uint256 public salesMinted;
uint256 public teamMinted;
uint256 public poeStakingMinted;
uint256 public performanceMinted;
uint256 public infraExchangeMinted;
uint256 public reserveMinted;
// --- Events ---
event SalesMinterUpdated(address indexed oldMinter, address indexed newMinter);
event TeamMinterUpdated(address indexed oldMinter, address indexed newMinter);
event PoeStakingMinterUpdated(address indexed oldMinter, address indexed newMinter);
event PerformanceMinterUpdated(address indexed oldMinter, address indexed newMinter);
event InfraExchangeMinterUpdated(address indexed oldMinter, address indexed newMinter);
event ReserveMinterUpdated(address indexed oldMinter, address indexed newMinter);
event MintedSales(address indexed to, uint256 amount);
event MintedTeam(address indexed to, uint256 amount);
event MintedPoeStaking(address indexed to, uint256 amount);
event MintedPerformance(address indexed to, uint256 amount);
event MintedInfraExchange(address indexed to, uint256 amount);
event MintedReserve(address indexed to, uint256 amount);
constructor(address initialOwner) ERC20("NEXT", "NEXT") Ownable(initialOwner) {
// Zero initial mint: nothing happens here.
}
// ----------------
// Owner config
// ----------------
function setSalesMinter(address a) external onlyOwner { emit SalesMinterUpdated(salesMinter, a); salesMinter = a; }
function setTeamMinter(address a) external onlyOwner { emit TeamMinterUpdated(teamMinter, a); teamMinter = a; }
function setPoeStakingMinter(address a) external onlyOwner { emit PoeStakingMinterUpdated(poeStakingMinter, a); poeStakingMinter = a; }
function setPerformanceMinter(address a) external onlyOwner { emit PerformanceMinterUpdated(performanceMinter, a); performanceMinter = a; }
function setInfraExchangeMinter(address a) external onlyOwner { emit InfraExchangeMinterUpdated(infraExchangeMinter, a); infraExchangeMinter = a; }
function setReserveMinter(address a) external onlyOwner { emit ReserveMinterUpdated(reserveMinter, a); reserveMinter = a; }
// ----------------
// Minting entrypoints (per-bucket)
// ----------------
function mintSales(address to, uint256 amount) external {
require(msg.sender == salesMinter, "NOT_SALES_MINTER");
_enforce(to, amount, SALES_CAP, salesMinted);
salesMinted += amount;
_mint(to, amount);
emit MintedSales(to, amount);
}
function mintTeam(address to, uint256 amount) external {
require(msg.sender == teamMinter, "NOT_TEAM_MINTER");
_enforce(to, amount, TEAM_CAP, teamMinted);
teamMinted += amount;
_mint(to, amount);
emit MintedTeam(to, amount);
}
function mintPoeStaking(address to, uint256 amount) external {
require(msg.sender == poeStakingMinter, "NOT_POE_MINTER");
_enforce(to, amount, POE_STAKING_CAP, poeStakingMinted);
poeStakingMinted += amount;
_mint(to, amount);
emit MintedPoeStaking(to, amount);
}
function mintPerformance(address to, uint256 amount) external {
require(msg.sender == performanceMinter, "NOT_PERF_MINTER");
_enforce(to, amount, PERF_CAP, performanceMinted);
performanceMinted += amount;
_mint(to, amount);
emit MintedPerformance(to, amount);
}
function mintInfraExchange(address to, uint256 amount) external {
require(msg.sender == infraExchangeMinter, "NOT_INFRA_MINTER");
_enforce(to, amount, INFRA_EXCH_CAP, infraExchangeMinted);
infraExchangeMinted += amount;
_mint(to, amount);
emit MintedInfraExchange(to, amount);
}
function mintReserve(address to, uint256 amount) external {
require(msg.sender == reserveMinter, "NOT_RESERVE_MINTER");
_enforce(to, amount, RESERVE_CAP, reserveMinted);
reserveMinted += amount;
_mint(to, amount);
emit MintedReserve(to, amount);
}
// ----------------
// Views
// ----------------
function remainingGlobal() external view returns (uint256) { return MAX_SUPPLY - totalSupply(); }
function remainingSales() external view returns (uint256) { return SALES_CAP - salesMinted; }
function remainingTeam() external view returns (uint256) { return TEAM_CAP - teamMinted; }
function remainingPoeStaking() external view returns (uint256) { return POE_STAKING_CAP- poeStakingMinted; }
function remainingPerformance() external view returns (uint256) { return PERF_CAP - performanceMinted; }
function remainingInfraExchange() external view returns (uint256){ return INFRA_EXCH_CAP- infraExchangeMinted; }
function remainingReserve() external view returns (uint256) { return RESERVE_CAP - reserveMinted; }
// ----------------
// Internal checks
// ----------------
function _enforce(address to, uint256 amount, uint256 cap, uint256 mintedSoFar) internal view {
require(to != address(0), "ZERO_ADDR");
require(amount > 0, "ZERO_AMOUNT");
require(totalSupply() + amount <= MAX_SUPPLY, "EXCEEDS_MAX_SUPPLY");
require(mintedSoFar + amount <= cap, "EXCEEDS_BUCKET_CAP");
}
}// 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.4.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 ERC-20
* applications.
*/
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}.
*
* Both 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;
}
/// @inheritdoc IERC20
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/// @inheritdoc IERC20
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;
}
/// @inheritdoc IERC20
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}.
*
* Skips emitting an {Approval} event indicating an allowance update. This is not
* required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].
*
* 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:
*
* ```solidity
* 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.4.0) (interfaces/draft-IERC6093.sol)
pragma solidity >=0.8.4;
/**
* @dev Standard ERC-20 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 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 ERC-721 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.
*/
interface IERC721Errors {
/**
* @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-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 ERC-1155 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 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.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;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity >=0.6.2;
import {IERC20} from "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC-20 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.4.0) (token/ERC20/IERC20.sol)
pragma solidity >=0.4.16;
/**
* @dev Interface of the ERC-20 standard as defined in the ERC.
*/
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);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"remappings": [],
"evmVersion": "paris"
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"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":"oldMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"InfraExchangeMinterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintedInfraExchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintedPerformance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintedPoeStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintedReserve","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintedSales","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintedTeam","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":"oldMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"PerformanceMinterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"PoeStakingMinterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"ReserveMinterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"SalesMinterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"TeamMinterUpdated","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":"INFRA_EXCH_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERF_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POE_STAKING_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESERVE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SALES_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"infraExchangeMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"infraExchangeMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintInfraExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintPerformance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintPoeStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintSales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintTeam","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":"performanceMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poeStakingMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poeStakingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingGlobal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingInfraExchange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingPerformance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingPoeStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingSales","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingTeam","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserveMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reserveMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"salesMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"salesMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setInfraExchangeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setPerformanceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setPoeStakingMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setReserveMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setSalesMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setTeamMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"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
60806040523480156200001157600080fd5b50604051620018d5380380620018d5833981016040819052620000349162000117565b6040805180820182526004808252631391561560e21b602080840182905284518086019095529184529083015282916003620000718382620001f0565b506004620000808282620001f0565b5050506001600160a01b038116620000b257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000bd81620000c5565b5050620002bc565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200012a57600080fd5b81516001600160a01b03811681146200014257600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200017457607f821691505b6020821081036200019557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001eb576000816000526020600020601f850160051c81016020861015620001c65750805b601f850160051c820191505b81811015620001e757828155600101620001d2565b5050505b505050565b81516001600160401b038111156200020c576200020c62000149565b62000224816200021d84546200015f565b846200019b565b602080601f8311600181146200025c5760008415620002435750858301515b600019600386901b1c1916600185901b178555620001e7565b600085815260208120601f198616915b828110156200028d578886015182559484019460019091019084016200026c565b5085821015620002ac5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61160980620002cc6000396000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c8063828fca1811610182578063add3549a116100e9578063e6f2b59b116100a2578063f0cd6c2f1161007c578063f0cd6c2f1461062e578063f2fde38b14610637578063fa2b7c121461064a578063fe4a99f81461065257600080fd5b8063e6f2b59b146105ff578063e725ee0814610612578063e8b5498d1461062557600080fd5b8063add3549a1461056a578063b5bba43c1461057c578063b7c0007d1461058f578063bbf35707146105a1578063bf509b8c146105b3578063dd62ed3e146105c657600080fd5b806395d89b411161013b57806395d89b411461051957806395e9de2a14610521578063a060ae1814610534578063a0ebee2f1461053c578063a0f874cc14610544578063a9059cbb1461055757600080fd5b8063828fca18146104be5780638da5cb5b146104d15780638e825be0146104e25780638f221487146104f557806393a6a6d8146104fe57806393f84cfe1461050657600080fd5b80634ac005ca116102415780635d5ed8c5116101fa578063691cbf1d116101d4578063691cbf1d1461047157806370a0823114610484578063715018a6146104ad578063761cbecc146104b557600080fd5b80635d5ed8c5146104385780635e851d6b1461044b5780636167a37c1461045e57600080fd5b80634ac005ca146103dc5780634c591948146103e45780634c81433f146103f65780634f6f1cbb146103ff578063505211a414610412578063509e41941461042557600080fd5b80631f5da601116102935780631f5da6011461036257806323b872dd14610374578063313ce567146103875780633203034d1461039657806332cb6b0c146103c15780633c96e3ce146103d457600080fd5b806306fdde03146102db578063095ea7b3146102f95780630b258e941461031c57806310211eca1461033157806318160ddd146103475780631bf50fb51461034f575b600080fd5b6102e361065b565b6040516102f09190611437565b60405180910390f35b61030c6103073660046114a2565b6106ed565b60405190151581526020016102f0565b61032f61032a3660046114cc565b610707565b005b61033961076b565b6040519081526020016102f0565b600254610339565b61032f61035d3660046114cc565b61078b565b6103396a08b386f98209c96680000081565b61030c6103823660046114ee565b6107ef565b604051601281526020016102f0565b600a546103a9906001600160a01b031681565b6040516001600160a01b0390911681526020016102f0565b6103396b033b2e3c9fd0803ce800000081565b610339610813565b610339610834565b6103396a31a17e847807b1bc00000081565b61033960115481565b6009546103a9906001600160a01b031681565b600b546103a9906001600160a01b031681565b61032f6104333660046114cc565b61084f565b6008546103a9906001600160a01b031681565b61032f6104593660046114a2565b6108b3565b61032f61046c3660046114cc565b610985565b61032f61047f3660046114cc565b6109e9565b6103396104923660046114cc565b6001600160a01b031660009081526020819052604090205490565b61032f610a4d565b61033960105481565b61032f6104cc3660046114a2565b610a61565b6005546001600160a01b03166103a9565b61032f6104f03660046114a2565b610b23565b610339600e5481565b610339610be8565b61032f6105143660046114a2565b610c04565b6102e3610cc6565b61032f61052f3660046114a2565b610cd5565b610339610d99565b610339610db4565b6103396b016bf59fcb70386cb800000081565b61030c6105653660046114a2565b610dcf565b6103396a7c13bc4b2c133c5600000081565b61032f61058a3660046114a2565b610ddd565b6103396aef499797465a195880000081565b6103396a29864373f3c8ff5f00000081565b61032f6105c13660046114cc565b610ea0565b6103396105d436600461152a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6007546103a9906001600160a01b031681565b6006546103a9906001600160a01b031681565b610339600d5481565b610339600f5481565b61032f6106453660046114cc565b610f04565b610339610f42565b610339600c5481565b60606003805461066a9061155d565b80601f01602080910402602001604051908101604052809291908181526020018280546106969061155d565b80156106e35780601f106106b8576101008083540402835291602001916106e3565b820191906000526020600020905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b6000336106fb818585610f5d565b60019150505b92915050565b61070f610f6f565b600a546040516001600160a01b038084169216907f47b3f0f768862824f40c981b88a035cce28881954e5fb7869744588f7594fd5990600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000600e546a08b386f98209c96680000061078691906115ad565b905090565b610793610f6f565b600b546040516001600160a01b038084169216907f3e0bc12c2997f8e68d8ba5934985d3a1a7a4011bb32629995514f91c35ddcae190600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000336107fd858285610f9c565b61080885858561101b565b506001949350505050565b600061081e60025490565b610786906b033b2e3c9fd0803ce80000006115ad565b6000600d546a7c13bc4b2c133c5600000061078691906115ad565b610857610f6f565b6009546040516001600160a01b038084169216907f37b30db2819f59a9765e4a03429848dda84a4d46146faabf394163df952684a390600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b031633146109035760405162461bcd60e51b815260206004820152600e60248201526d2727aa2fa827a2afa6a4a72a22a960911b60448201526064015b60405180910390fd5b61091c82826a08b386f98209c966800000600e5461107a565b80600e600082825461092e91906115c0565b9091555061093e905082826111ac565b816001600160a01b03167f10a36caf92cf2633b2db4d0b5a1943887c4873c883bf4f3361d5ede1f26327968260405161097991815260200190565b60405180910390a25050565b61098d610f6f565b6007546040516001600160a01b038084169216907fa270df5286642151e551f5b5040a85d4256b95d0d2427ce3d51cdabf58213ce290600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6109f1610f6f565b6006546040516001600160a01b038084169216907f9352325a2ecac45e92d82c85e6733b7435e0f0d93bc9bf6d58a58507b9ea490690600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a55610f6f565b610a5f60006111e6565b565b6009546001600160a01b03163314610aad5760405162461bcd60e51b815260206004820152600f60248201526e2727aa2fa822a9232fa6a4a72a22a960891b60448201526064016108fa565b610ac682826a29864373f3c8ff5f000000600f5461107a565b80600f6000828254610ad891906115c0565b90915550610ae8905082826111ac565b816001600160a01b03167f0ab2321596d1f53e429543ff03d8de59cb7ce122b992aee416f3d908f92d57aa8260405161097991815260200190565b600b546001600160a01b03163314610b725760405162461bcd60e51b81526020600482015260126024820152712727aa2fa922a9a2a92b22afa6a4a72a22a960711b60448201526064016108fa565b610b8b82826aef499797465a195880000060115461107a565b8060116000828254610b9d91906115c0565b90915550610bad905082826111ac565b816001600160a01b03167f1e13d7803836d693630143f6b88bdad04e42b3d39c57eb1891d288d930e439428260405161097991815260200190565b6000600c546b016bf59fcb70386cb800000061078691906115ad565b6007546001600160a01b03163314610c505760405162461bcd60e51b815260206004820152600f60248201526e2727aa2faa22a0a6afa6a4a72a22a960891b60448201526064016108fa565b610c6982826a7c13bc4b2c133c56000000600d5461107a565b80600d6000828254610c7b91906115c0565b90915550610c8b905082826111ac565b816001600160a01b03167f34fafd00bedc77c2b4a80174d1aa1cdf418329f1cbf9bb544d2cf2371f78f1ee8260405161097991815260200190565b60606004805461066a9061155d565b6006546001600160a01b03163314610d225760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa9a0a622a9afa6a4a72a22a960811b60448201526064016108fa565b610d3c82826b016bf59fcb70386cb8000000600c5461107a565b80600c6000828254610d4e91906115c0565b90915550610d5e905082826111ac565b816001600160a01b03167f01ebec9ed99fd448d024a29a8404802772c77ff28004cb8e19b80928052835008260405161097991815260200190565b60006011546aef499797465a195880000061078691906115ad565b60006010546a31a17e847807b1bc00000061078691906115ad565b6000336106fb81858561101b565b600a546001600160a01b03163314610e2a5760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa4a7232920afa6a4a72a22a960811b60448201526064016108fa565b610e4382826a31a17e847807b1bc00000060105461107a565b8060106000828254610e5591906115c0565b90915550610e65905082826111ac565b816001600160a01b03167f3ad95949b13410a2caca921c7a0777639fad21457e70671911209a35d7c393168260405161097991815260200190565b610ea8610f6f565b6008546040516001600160a01b038084169216907fb4e9fd5e8eef541ee1c36bb356168c025c4e5e658d83c047d37569ee8faacb9390600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b610f0c610f6f565b6001600160a01b038116610f3657604051631e4fbdf760e01b8152600060048201526024016108fa565b610f3f816111e6565b50565b6000600f546a29864373f3c8ff5f00000061078691906115ad565b610f6a8383836001611238565b505050565b6005546001600160a01b03163314610a5f5760405163118cdaa760e01b81523360048201526024016108fa565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811015611015578181101561100657604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016108fa565b61101584848484036000611238565b50505050565b6001600160a01b03831661104557604051634b637e8f60e11b8152600060048201526024016108fa565b6001600160a01b03821661106f5760405163ec442f0560e01b8152600060048201526024016108fa565b610f6a83838361130d565b6001600160a01b0384166110bc5760405162461bcd60e51b81526020600482015260096024820152682d22a927afa0a2222960b91b60448201526064016108fa565b600083116110fa5760405162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b60448201526064016108fa565b6b033b2e3c9fd0803ce80000008361111160025490565b61111b91906115c0565b111561115e5760405162461bcd60e51b8152602060048201526012602482015271455843454544535f4d41585f535550504c5960701b60448201526064016108fa565b8161116984836115c0565b11156110155760405162461bcd60e51b81526020600482015260126024820152710455843454544535f4255434b45545f4341560741b60448201526064016108fa565b6001600160a01b0382166111d65760405163ec442f0560e01b8152600060048201526024016108fa565b6111e26000838361130d565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0384166112625760405163e602df0560e01b8152600060048201526024016108fa565b6001600160a01b03831661128c57604051634a1406b160e11b8152600060048201526024016108fa565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561101557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112ff91815260200190565b60405180910390a350505050565b6001600160a01b03831661133857806002600082825461132d91906115c0565b909155506113aa9050565b6001600160a01b0383166000908152602081905260409020548181101561138b5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016108fa565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166113c6576002805482900390556113e5565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161142a91815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561146557858101830151858201604001528201611449565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461149d57600080fd5b919050565b600080604083850312156114b557600080fd5b6114be83611486565b946020939093013593505050565b6000602082840312156114de57600080fd5b6114e782611486565b9392505050565b60008060006060848603121561150357600080fd5b61150c84611486565b925061151a60208501611486565b9150604084013590509250925092565b6000806040838503121561153d57600080fd5b61154683611486565b915061155460208401611486565b90509250929050565b600181811c9082168061157157607f821691505b60208210810361159157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070157610701611597565b808201808211156107015761070161159756fea26469706673582212209a03b0b211e5336d9daa3e499ce9a928f2a709edc812d784c98268132b1836cd64736f6c634300081800330000000000000000000000004e4f939e1dcb259cd9b1a7f04e2a12ede7d820db
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102d65760003560e01c8063828fca1811610182578063add3549a116100e9578063e6f2b59b116100a2578063f0cd6c2f1161007c578063f0cd6c2f1461062e578063f2fde38b14610637578063fa2b7c121461064a578063fe4a99f81461065257600080fd5b8063e6f2b59b146105ff578063e725ee0814610612578063e8b5498d1461062557600080fd5b8063add3549a1461056a578063b5bba43c1461057c578063b7c0007d1461058f578063bbf35707146105a1578063bf509b8c146105b3578063dd62ed3e146105c657600080fd5b806395d89b411161013b57806395d89b411461051957806395e9de2a14610521578063a060ae1814610534578063a0ebee2f1461053c578063a0f874cc14610544578063a9059cbb1461055757600080fd5b8063828fca18146104be5780638da5cb5b146104d15780638e825be0146104e25780638f221487146104f557806393a6a6d8146104fe57806393f84cfe1461050657600080fd5b80634ac005ca116102415780635d5ed8c5116101fa578063691cbf1d116101d4578063691cbf1d1461047157806370a0823114610484578063715018a6146104ad578063761cbecc146104b557600080fd5b80635d5ed8c5146104385780635e851d6b1461044b5780636167a37c1461045e57600080fd5b80634ac005ca146103dc5780634c591948146103e45780634c81433f146103f65780634f6f1cbb146103ff578063505211a414610412578063509e41941461042557600080fd5b80631f5da601116102935780631f5da6011461036257806323b872dd14610374578063313ce567146103875780633203034d1461039657806332cb6b0c146103c15780633c96e3ce146103d457600080fd5b806306fdde03146102db578063095ea7b3146102f95780630b258e941461031c57806310211eca1461033157806318160ddd146103475780631bf50fb51461034f575b600080fd5b6102e361065b565b6040516102f09190611437565b60405180910390f35b61030c6103073660046114a2565b6106ed565b60405190151581526020016102f0565b61032f61032a3660046114cc565b610707565b005b61033961076b565b6040519081526020016102f0565b600254610339565b61032f61035d3660046114cc565b61078b565b6103396a08b386f98209c96680000081565b61030c6103823660046114ee565b6107ef565b604051601281526020016102f0565b600a546103a9906001600160a01b031681565b6040516001600160a01b0390911681526020016102f0565b6103396b033b2e3c9fd0803ce800000081565b610339610813565b610339610834565b6103396a31a17e847807b1bc00000081565b61033960115481565b6009546103a9906001600160a01b031681565b600b546103a9906001600160a01b031681565b61032f6104333660046114cc565b61084f565b6008546103a9906001600160a01b031681565b61032f6104593660046114a2565b6108b3565b61032f61046c3660046114cc565b610985565b61032f61047f3660046114cc565b6109e9565b6103396104923660046114cc565b6001600160a01b031660009081526020819052604090205490565b61032f610a4d565b61033960105481565b61032f6104cc3660046114a2565b610a61565b6005546001600160a01b03166103a9565b61032f6104f03660046114a2565b610b23565b610339600e5481565b610339610be8565b61032f6105143660046114a2565b610c04565b6102e3610cc6565b61032f61052f3660046114a2565b610cd5565b610339610d99565b610339610db4565b6103396b016bf59fcb70386cb800000081565b61030c6105653660046114a2565b610dcf565b6103396a7c13bc4b2c133c5600000081565b61032f61058a3660046114a2565b610ddd565b6103396aef499797465a195880000081565b6103396a29864373f3c8ff5f00000081565b61032f6105c13660046114cc565b610ea0565b6103396105d436600461152a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6007546103a9906001600160a01b031681565b6006546103a9906001600160a01b031681565b610339600d5481565b610339600f5481565b61032f6106453660046114cc565b610f04565b610339610f42565b610339600c5481565b60606003805461066a9061155d565b80601f01602080910402602001604051908101604052809291908181526020018280546106969061155d565b80156106e35780601f106106b8576101008083540402835291602001916106e3565b820191906000526020600020905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b6000336106fb818585610f5d565b60019150505b92915050565b61070f610f6f565b600a546040516001600160a01b038084169216907f47b3f0f768862824f40c981b88a035cce28881954e5fb7869744588f7594fd5990600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000600e546a08b386f98209c96680000061078691906115ad565b905090565b610793610f6f565b600b546040516001600160a01b038084169216907f3e0bc12c2997f8e68d8ba5934985d3a1a7a4011bb32629995514f91c35ddcae190600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000336107fd858285610f9c565b61080885858561101b565b506001949350505050565b600061081e60025490565b610786906b033b2e3c9fd0803ce80000006115ad565b6000600d546a7c13bc4b2c133c5600000061078691906115ad565b610857610f6f565b6009546040516001600160a01b038084169216907f37b30db2819f59a9765e4a03429848dda84a4d46146faabf394163df952684a390600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b031633146109035760405162461bcd60e51b815260206004820152600e60248201526d2727aa2fa827a2afa6a4a72a22a960911b60448201526064015b60405180910390fd5b61091c82826a08b386f98209c966800000600e5461107a565b80600e600082825461092e91906115c0565b9091555061093e905082826111ac565b816001600160a01b03167f10a36caf92cf2633b2db4d0b5a1943887c4873c883bf4f3361d5ede1f26327968260405161097991815260200190565b60405180910390a25050565b61098d610f6f565b6007546040516001600160a01b038084169216907fa270df5286642151e551f5b5040a85d4256b95d0d2427ce3d51cdabf58213ce290600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6109f1610f6f565b6006546040516001600160a01b038084169216907f9352325a2ecac45e92d82c85e6733b7435e0f0d93bc9bf6d58a58507b9ea490690600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a55610f6f565b610a5f60006111e6565b565b6009546001600160a01b03163314610aad5760405162461bcd60e51b815260206004820152600f60248201526e2727aa2fa822a9232fa6a4a72a22a960891b60448201526064016108fa565b610ac682826a29864373f3c8ff5f000000600f5461107a565b80600f6000828254610ad891906115c0565b90915550610ae8905082826111ac565b816001600160a01b03167f0ab2321596d1f53e429543ff03d8de59cb7ce122b992aee416f3d908f92d57aa8260405161097991815260200190565b600b546001600160a01b03163314610b725760405162461bcd60e51b81526020600482015260126024820152712727aa2fa922a9a2a92b22afa6a4a72a22a960711b60448201526064016108fa565b610b8b82826aef499797465a195880000060115461107a565b8060116000828254610b9d91906115c0565b90915550610bad905082826111ac565b816001600160a01b03167f1e13d7803836d693630143f6b88bdad04e42b3d39c57eb1891d288d930e439428260405161097991815260200190565b6000600c546b016bf59fcb70386cb800000061078691906115ad565b6007546001600160a01b03163314610c505760405162461bcd60e51b815260206004820152600f60248201526e2727aa2faa22a0a6afa6a4a72a22a960891b60448201526064016108fa565b610c6982826a7c13bc4b2c133c56000000600d5461107a565b80600d6000828254610c7b91906115c0565b90915550610c8b905082826111ac565b816001600160a01b03167f34fafd00bedc77c2b4a80174d1aa1cdf418329f1cbf9bb544d2cf2371f78f1ee8260405161097991815260200190565b60606004805461066a9061155d565b6006546001600160a01b03163314610d225760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa9a0a622a9afa6a4a72a22a960811b60448201526064016108fa565b610d3c82826b016bf59fcb70386cb8000000600c5461107a565b80600c6000828254610d4e91906115c0565b90915550610d5e905082826111ac565b816001600160a01b03167f01ebec9ed99fd448d024a29a8404802772c77ff28004cb8e19b80928052835008260405161097991815260200190565b60006011546aef499797465a195880000061078691906115ad565b60006010546a31a17e847807b1bc00000061078691906115ad565b6000336106fb81858561101b565b600a546001600160a01b03163314610e2a5760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa4a7232920afa6a4a72a22a960811b60448201526064016108fa565b610e4382826a31a17e847807b1bc00000060105461107a565b8060106000828254610e5591906115c0565b90915550610e65905082826111ac565b816001600160a01b03167f3ad95949b13410a2caca921c7a0777639fad21457e70671911209a35d7c393168260405161097991815260200190565b610ea8610f6f565b6008546040516001600160a01b038084169216907fb4e9fd5e8eef541ee1c36bb356168c025c4e5e658d83c047d37569ee8faacb9390600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b610f0c610f6f565b6001600160a01b038116610f3657604051631e4fbdf760e01b8152600060048201526024016108fa565b610f3f816111e6565b50565b6000600f546a29864373f3c8ff5f00000061078691906115ad565b610f6a8383836001611238565b505050565b6005546001600160a01b03163314610a5f5760405163118cdaa760e01b81523360048201526024016108fa565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811015611015578181101561100657604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016108fa565b61101584848484036000611238565b50505050565b6001600160a01b03831661104557604051634b637e8f60e11b8152600060048201526024016108fa565b6001600160a01b03821661106f5760405163ec442f0560e01b8152600060048201526024016108fa565b610f6a83838361130d565b6001600160a01b0384166110bc5760405162461bcd60e51b81526020600482015260096024820152682d22a927afa0a2222960b91b60448201526064016108fa565b600083116110fa5760405162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b60448201526064016108fa565b6b033b2e3c9fd0803ce80000008361111160025490565b61111b91906115c0565b111561115e5760405162461bcd60e51b8152602060048201526012602482015271455843454544535f4d41585f535550504c5960701b60448201526064016108fa565b8161116984836115c0565b11156110155760405162461bcd60e51b81526020600482015260126024820152710455843454544535f4255434b45545f4341560741b60448201526064016108fa565b6001600160a01b0382166111d65760405163ec442f0560e01b8152600060048201526024016108fa565b6111e26000838361130d565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0384166112625760405163e602df0560e01b8152600060048201526024016108fa565b6001600160a01b03831661128c57604051634a1406b160e11b8152600060048201526024016108fa565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561101557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112ff91815260200190565b60405180910390a350505050565b6001600160a01b03831661133857806002600082825461132d91906115c0565b909155506113aa9050565b6001600160a01b0383166000908152602081905260409020548181101561138b5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016108fa565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166113c6576002805482900390556113e5565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161142a91815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561146557858101830151858201604001528201611449565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461149d57600080fd5b919050565b600080604083850312156114b557600080fd5b6114be83611486565b946020939093013593505050565b6000602082840312156114de57600080fd5b6114e782611486565b9392505050565b60008060006060848603121561150357600080fd5b61150c84611486565b925061151a60208501611486565b9150604084013590509250925092565b6000806040838503121561153d57600080fd5b61154683611486565b915061155460208401611486565b90509250929050565b600181811c9082168061157157607f821691505b60208210810361159157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070157610701611597565b808201808211156107015761070161159756fea26469706673582212209a03b0b211e5336d9daa3e499ce9a928f2a709edc812d784c98268132b1836cd64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004e4f939e1dcb259cd9b1a7f04e2a12ede7d820db
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x4E4F939E1dCB259CD9B1A7f04E2A12EDE7D820Db
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004e4f939e1dcb259cd9b1a7f04e2a12ede7d820db
Deployed Bytecode Sourcemap
839:6433:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:7;;1162:22;1144:41;;1132:2;1117:18;3902:186:2;1004:187:7;3703:147:6;;;;;;:::i;:::-;;:::i;:::-;;6374:113;;;:::i;:::-;;;1533:25:7;;;1521:2;1506:18;6374:113:6;1387:177:7;2803:97:2;2881:12;;2803:97;;3856:143:6;;;;;;:::i;:::-;;:::i;1154:61::-;;1197:18;1154:61;;4680:244:2;;;;;;:::i;:::-;;:::i;2688:82::-;;;2761:2;2044:36:7;;2032:2;2017:18;2688:82:2;1902:184:7;1616:34:6;;;;;-1:-1:-1;;;;;1616:34:6;;;;;;-1:-1:-1;;;;;2255:32:7;;;2237:51;;2225:2;2210:18;1616:34:6;2091:203:7;910:57:6;;947:20;910:57;;6017:113;;;:::i;6255:::-;;;:::i;1290:61::-;;1333:18;1290:61;;1915:28;;;;;;1577:32;;;;;-1:-1:-1;;;;;1577:32:6;;;1657:28;;;;;-1:-1:-1;;;;;1657:28:6;;;3554:143;;;;;;:::i;:::-;;:::i;1539:31::-;;;;;-1:-1:-1;;;;;1539:31:6;;;4673:312;;;;;;:::i;:::-;;:::i;3256:143::-;;;;;;:::i;:::-;;:::i;3107:::-;;;;;;:::i;:::-;;:::i;2933:116:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3024:18:2;2998:7;3024:18;;;;;;;;;;;;2933:116;2293:101:0;;;:::i;1874:34:6:-;;;;;;4993:311;;;;;;:::i;:::-;;:::i;1638:85:0:-;1710:6;;-1:-1:-1;;;;;1710:6:0;1638:85;;5648:297:6;;;;;;:::i;:::-;;:::i;1797:31::-;;;;;;6136:113;;;:::i;4389:276::-;;;;;;:::i;:::-;;:::i;1962:93:2:-;;;:::i;4098:283:6:-;;;;;;:::i;:::-;;:::i;6731:113::-;;;:::i;6612:::-;;;:::i;1018:61::-;;1061:18;1018:61;;3244:178:2;;;;;;:::i;:::-;;:::i;1086:61:6:-;;1129:18;1086:61;;5312:328;;;;;;:::i;:::-;;:::i;1358:61::-;;1401:18;1358:61;;1222;;1265:18;1222:61;;3405:143;;;;;;:::i;:::-;;:::i;3455:140:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3561:18:2;;;3535:7;3561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3455:140;1507:25:6;;;;;-1:-1:-1;;;;;1507:25:6;;;1474:26;;;;;-1:-1:-1;;;;;1474:26:6;;;1765:25;;;;;;1835:32;;;;;;2543:215:0;;;;;;:::i;:::-;;:::i;6493:113:6:-;;;:::i;1732:26::-;;;;;;1760:89:2;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;735:10:5;4029:31:2;735:10:5;4045:7:2;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;;:::o;3703:147:6:-;1531:13:0;:11;:13::i;:::-;3799:19:6::1;::::0;3772:50:::1;::::0;-1:-1:-1;;;;;3772:50:6;;::::1;::::0;3799:19:::1;::::0;3772:50:::1;::::0;3799:19:::1;::::0;3772:50:::1;3824:19;:23:::0;;-1:-1:-1;;;;;;3824:23:6::1;-1:-1:-1::0;;;;;3824:23:6;;;::::1;::::0;;;::::1;::::0;;3703:147::o;6374:113::-;6429:7;6464:16;;1197:18;6447:33;;;;:::i;:::-;6440:40;;6374:113;:::o;3856:143::-;1531:13:0;:11;:13::i;:::-;3945::6::1;::::0;3924:38:::1;::::0;-1:-1:-1;;;;;3924:38:6;;::::1;::::0;3945:13:::1;::::0;3924:38:::1;::::0;3945:13:::1;::::0;3924:38:::1;3974:13;:22:::0;;-1:-1:-1;;;;;;3974:22:6::1;-1:-1:-1::0;;;;;3974:22:6;;;::::1;::::0;;;::::1;::::0;;3856:143::o;4680:244:2:-;4767:4;735:10:5;4823:37:2;4839:4;735:10:5;4854:5:2;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;-1:-1:-1;4913:4:2;;4680:244;-1:-1:-1;;;;4680:244:2:o;6017:113:6:-;6072:7;6107:13;2881:12:2;;;2803:97;6107:13:6;6090:30;;947:20;6090:30;:::i;6255:113::-;6310:7;6345:10;;1129:18;6328:27;;;;:::i;3554:143::-;1531:13:0;:11;:13::i;:::-;3647:17:6::1;::::0;3622:46:::1;::::0;-1:-1:-1;;;;;3622:46:6;;::::1;::::0;3647:17:::1;::::0;3622:46:::1;::::0;3647:17:::1;::::0;3622:46:::1;3672:17;:22:::0;;-1:-1:-1;;;;;;3672:22:6::1;-1:-1:-1::0;;;;;3672:22:6;;;::::1;::::0;;;::::1;::::0;;3554:143::o;4673:312::-;4767:16;;-1:-1:-1;;;;;4767:16:6;4753:10;:30;4745:57;;;;-1:-1:-1;;;4745:57:6;;3416:2:7;4745:57:6;;;3398:21:7;3455:2;3435:18;;;3428:30;-1:-1:-1;;;3474:18:7;;;3467:44;3528:18;;4745:57:6;;;;;;;;;4813:55;4822:2;4826:6;1197:18;4851:16;;4813:8;:55::i;:::-;4899:6;4879:16;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;4916:17:6;;-1:-1:-1;4922:2:6;4926:6;4916:5;:17::i;:::-;4966:2;-1:-1:-1;;;;;4949:28:6;;4970:6;4949:28;;;;1533:25:7;;1521:2;1506:18;;1387:177;4949:28:6;;;;;;;;4673:312;;:::o;3256:143::-;1531:13:0;:11;:13::i;:::-;3342:10:6::1;::::0;3324:32:::1;::::0;-1:-1:-1;;;;;3324:32:6;;::::1;::::0;3342:10:::1;::::0;3324:32:::1;::::0;3342:10:::1;::::0;3324:32:::1;3374:10;:22:::0;;-1:-1:-1;;;;;;3374:22:6::1;-1:-1:-1::0;;;;;3374:22:6;;;::::1;::::0;;;::::1;::::0;;3256:143::o;3107:::-;1531:13:0;:11;:13::i;:::-;3194:11:6::1;::::0;3175:34:::1;::::0;-1:-1:-1;;;;;3175:34:6;;::::1;::::0;3194:11:::1;::::0;3175:34:::1;::::0;3194:11:::1;::::0;3175:34:::1;3225:11;:22:::0;;-1:-1:-1;;;;;;3225:22:6::1;-1:-1:-1::0;;;;;3225:22:6;;;::::1;::::0;;;::::1;::::0;;3107:143::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4993:311:6:-;5088:17;;-1:-1:-1;;;;;5088:17:6;5074:10;:31;5066:59;;;;-1:-1:-1;;;5066:59:6;;3889:2:7;5066:59:6;;;3871:21:7;3928:2;3908:18;;;3901:30;-1:-1:-1;;;3947:18:7;;;3940:45;4002:18;;5066:59:6;3687:339:7;5066:59:6;5136:49;5145:2;5149:6;1265:18;5167:17;;5136:8;:49::i;:::-;5217:6;5196:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;5234:17:6;;-1:-1:-1;5240:2:6;5244:6;5234:5;:17::i;:::-;5285:2;-1:-1:-1;;;;;5267:29:6;;5289:6;5267:29;;;;1533:25:7;;1521:2;1506:18;;1387:177;5648:297:6;5739:13;;-1:-1:-1;;;;;5739:13:6;5725:10;:27;5717:58;;;;-1:-1:-1;;;5717:58:6;;4233:2:7;5717:58:6;;;4215:21:7;4272:2;4252:18;;;4245:30;-1:-1:-1;;;4291:18:7;;;4284:48;4349:18;;5717:58:6;4031:342:7;5717:58:6;5786:48;5795:2;5799:6;1401:18;5820:13;;5786:8;:48::i;:::-;5862:6;5845:13;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;5879:17:6;;-1:-1:-1;5885:2:6;5889:6;5879:5;:17::i;:::-;5926:2;-1:-1:-1;;;;;5912:25:6;;5930:6;5912:25;;;;1533::7;;1521:2;1506:18;;1387:177;6136:113:6;6191:7;6226:11;;1061:18;6209:28;;;;:::i;4389:276::-;4477:10;;-1:-1:-1;;;;;4477:10:6;4463;:24;4455:52;;;;-1:-1:-1;;;4455:52:6;;4580:2:7;4455:52:6;;;4562:21:7;4619:2;4599:18;;;4592:30;-1:-1:-1;;;4638:18:7;;;4631:45;4693:18;;4455:52:6;4378:339:7;4455:52:6;4518:42;4527:2;4531:6;1129:18;4549:10;;4518:8;:42::i;:::-;4585:6;4571:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;4602:17:6;;-1:-1:-1;4608:2:6;4612:6;4602:5;:17::i;:::-;4646:2;-1:-1:-1;;;;;4635:22:6;;4650:6;4635:22;;;;1533:25:7;;1521:2;1506:18;;1387:177;1962:93:2;2009:13;2041:7;2034:14;;;;;:::i;4098:283:6:-;4187:11;;-1:-1:-1;;;;;4187:11:6;4173:10;:25;4165:54;;;;-1:-1:-1;;;4165:54:6;;4924:2:7;4165:54:6;;;4906:21:7;4963:2;4943:18;;;4936:30;-1:-1:-1;;;4982:18:7;;;4975:46;5038:18;;4165:54:6;4722:340:7;4165:54:6;4230:44;4239:2;4243:6;1061:18;4262:11;;4230:8;:44::i;:::-;4300:6;4285:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;4317:17:6;;-1:-1:-1;4323:2:6;4327:6;4317:5;:17::i;:::-;4362:2;-1:-1:-1;;;;;4350:23:6;;4366:6;4350:23;;;;1533:25:7;;1521:2;1506:18;;1387:177;6731:113:6;6786:7;6821:13;;1401:18;6804:30;;;;:::i;6612:113::-;6669:7;6702:19;;1333:18;6686:35;;;;:::i;3244:178:2:-;3313:4;735:10:5;3367:27:2;735:10:5;3384:2:2;3388:5;3367:9;:27::i;5312:328:6:-;5409:19;;-1:-1:-1;;;;;5409:19:6;5395:10;:33;5387:62;;;;-1:-1:-1;;;5387:62:6;;5269:2:7;5387:62:6;;;5251:21:7;5308:2;5288:18;;;5281:30;-1:-1:-1;;;5327:18:7;;;5320:46;5383:18;;5387:62:6;5067:340:7;5387:62:6;5460:57;5469:2;5473:6;1333:18;5497:19;;5460:8;:57::i;:::-;5551:6;5528:19;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;5568:17:6;;-1:-1:-1;5574:2:6;5578:6;5568:5;:17::i;:::-;5621:2;-1:-1:-1;;;;;5601:31:6;;5625:6;5601:31;;;;1533:25:7;;1521:2;1506:18;;1387:177;3405:143:6;1531:13:0;:11;:13::i;:::-;3497:16:6::1;::::0;3473:44:::1;::::0;-1:-1:-1;;;;;3473:44:6;;::::1;::::0;3497:16:::1;::::0;3473:44:::1;::::0;3497:16:::1;::::0;3473:44:::1;3523:16;:22:::0;;-1:-1:-1;;;;;;3523:22:6::1;-1:-1:-1::0;;;;;3523:22:6;;;::::1;::::0;;;::::1;::::0;;3405:143::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;2237:51:7::0;2210:18;;2672:31:0::1;2091:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6493:113:6:-;6548:7;6583:17;;1265:18;6566:34;;;;:::i;8630:128:2:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;1796:162:0:-;1710:6;;-1:-1:-1;;;;;1710:6:0;735:10:5;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:5;1901:40:0;;;2237:51:7;2210:18;;1901:40:0;2091:203:7;10319:476:2;-1:-1:-1;;;;;3561:18:2;;;10418:24;3561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10484:36:2;;10480:309;;;10559:5;10540:16;:24;10536:130;;;10591:60;;-1:-1:-1;;;10591:60:2;;-1:-1:-1;;;;;5632:32:7;;10591:60:2;;;5614:51:7;5681:18;;;5674:34;;;5724:18;;;5717:34;;;5587:18;;10591:60:2;5412:345:7;10536:130:2;10707:57;10716:5;10723:7;10751:5;10732:16;:24;10758:5;10707:8;:57::i;:::-;10408:387;10319:476;;;:::o;5297:300::-;-1:-1:-1;;;;;5380:18:2;;5376:86;;5421:30;;-1:-1:-1;;;5421:30:2;;5448:1;5421:30;;;2237:51:7;2210:18;;5421:30:2;2091:203:7;5376:86:2;-1:-1:-1;;;;;5475:16:2;;5471:86;;5514:32;;-1:-1:-1;;;5514:32:2;;5543:1;5514:32;;;2237:51:7;2210:18;;5514:32:2;2091:203:7;5471:86:2;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;6926:343:6:-;-1:-1:-1;;;;;7039:16:6;;7031:38;;;;-1:-1:-1;;;7031:38:6;;5964:2:7;7031:38:6;;;5946:21:7;6003:1;5983:18;;;5976:29;-1:-1:-1;;;6021:18:7;;;6014:39;6070:18;;7031:38:6;5762:332:7;7031:38:6;7097:1;7088:6;:10;7080:34;;;;-1:-1:-1;;;7080:34:6;;6301:2:7;7080:34:6;;;6283:21:7;6340:2;6320:18;;;6313:30;-1:-1:-1;;;6359:18:7;;;6352:41;6410:18;;7080:34:6;6099:335:7;7080:34:6;947:20;7149:6;7133:13;2881:12:2;;;2803:97;7133:13:6;:22;;;;:::i;:::-;:36;;7125:67;;;;-1:-1:-1;;;7125:67:6;;6641:2:7;7125:67:6;;;6623:21:7;6680:2;6660:18;;;6653:30;-1:-1:-1;;;6699:18:7;;;6692:48;6757:18;;7125:67:6;6439:342:7;7125:67:6;7235:3;7211:20;7225:6;7211:11;:20;:::i;:::-;:27;;7203:58;;;;-1:-1:-1;;;7203:58:6;;6988:2:7;7203:58:6;;;6970:21:7;7027:2;7007:18;;;7000:30;-1:-1:-1;;;7046:18:7;;;7039:48;7104:18;;7203:58:6;6786:342:7;7362:208:2;-1:-1:-1;;;;;7432:21:2;;7428:91;;7476:32;;-1:-1:-1;;;7476:32:2;;7505:1;7476:32;;;2237:51:7;2210:18;;7476:32:2;2091:203:7;7428:91:2;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:0:-;3004:6;;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;9605:432:2:-;-1:-1:-1;;;;;9717:19:2;;9713:89;;9759:32;;-1:-1:-1;;;9759:32:2;;9788:1;9759:32;;;2237:51:7;2210:18;;9759:32:2;2091:203:7;9713:89:2;-1:-1:-1;;;;;9815:21:2;;9811:90;;9859:31;;-1:-1:-1;;;9859:31:2;;9887:1;9859:31;;;2237:51:7;2210:18;;9859:31:2;2091:203:7;9811:90:2;-1:-1:-1;;;;;9910:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;9955:76;;;;10005:7;-1:-1:-1;;;;;9989:31:2;9998:5;-1:-1:-1;;;;;9989:31:2;;10014:5;9989:31;;;;1533:25:7;;1521:2;1506:18;;1387:177;9989:31:2;;;;;;;;9605:432;;;;:::o;5912:1107::-;-1:-1:-1;;;;;6001:18:2;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;5997:540:2;;-1:-1:-1;5997:540:2;;-1:-1:-1;;;;;6211:15:2;;6189:19;6211:15;;;;;;;;;;;6244:19;;;6240:115;;;6290:50;;-1:-1:-1;;;6290:50:2;;-1:-1:-1;;;;;5632:32:7;;6290:50:2;;;5614:51:7;5681:18;;;5674:34;;;5724:18;;;5717:34;;;5587:18;;6290:50:2;5412:345:7;6240:115:2;-1:-1:-1;;;;;6475:15:2;;:9;:15;;;;;;;;;;6493:19;;;;6475:37;;5997:540;-1:-1:-1;;;;;6551:16:2;;6547:425;;6714:12;:21;;;;;;;6547:425;;;-1:-1:-1;;;;;6925:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6547:425;7002:2;-1:-1:-1;;;;;6987:25:2;6996:4;-1:-1:-1;;;;;6987:25:2;;7006:5;6987:25;;;;1533::7;;1521:2;1506:18;;1387:177;6987:25:2;;;;;;;;5912:1107;;;:::o;14:548:7:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:7;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:7:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;:::-;1337:39;1196:186;-1:-1:-1;;;1196:186:7:o;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2299:260::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2299:260;;;;;:::o;2564:380::-;2643:1;2639:12;;;;2686;;;2707:61;;2761:4;2753:6;2749:17;2739:27;;2707:61;2814:2;2806:6;2803:14;2783:18;2780:38;2777:161;;2860:10;2855:3;2851:20;2848:1;2841:31;2895:4;2892:1;2885:15;2923:4;2920:1;2913:15;2777:161;;2564:380;;;:::o;2949:127::-;3010:10;3005:3;3001:20;2998:1;2991:31;3041:4;3038:1;3031:15;3065:4;3062:1;3055:15;3081:128;3148:9;;;3169:11;;;3166:37;;;3183:18;;:::i;3557:125::-;3622:9;;;3643:10;;;3640:36;;;3656:18;;:::i
Swarm Source
ipfs://9a03b0b211e5336d9daa3e499ce9a928f2a709edc812d784c98268132b1836cd
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in BNB
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.