Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 94 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 23666362 | 150 days ago | IN | 0 ETH | 0.00001517 | ||||
| Approve | 17965538 | 947 days ago | IN | 0 ETH | 0.00073808 | ||||
| Approve | 17835463 | 966 days ago | IN | 0 ETH | 0.00132298 | ||||
| Approve | 17810138 | 969 days ago | IN | 0 ETH | 0.00065143 | ||||
| Approve | 17779294 | 974 days ago | IN | 0 ETH | 0.0017363 | ||||
| Approve | 17773488 | 974 days ago | IN | 0 ETH | 0.00120031 | ||||
| Approve | 17766495 | 975 days ago | IN | 0 ETH | 0.00118862 | ||||
| Approve | 17766423 | 975 days ago | IN | 0 ETH | 0.00114088 | ||||
| Approve | 17766191 | 975 days ago | IN | 0 ETH | 0.00117689 | ||||
| Approve | 17765964 | 975 days ago | IN | 0 ETH | 0.00176845 | ||||
| Approve | 17765748 | 975 days ago | IN | 0 ETH | 0.0011192 | ||||
| Approve | 17764759 | 976 days ago | IN | 0 ETH | 0.00217042 | ||||
| Approve | 17764389 | 976 days ago | IN | 0 ETH | 0.00276403 | ||||
| Approve | 17762913 | 976 days ago | IN | 0 ETH | 0.00157966 | ||||
| Approve | 17761430 | 976 days ago | IN | 0 ETH | 0.00087268 | ||||
| Approve | 17761108 | 976 days ago | IN | 0 ETH | 0.00068099 | ||||
| Approve | 17760912 | 976 days ago | IN | 0 ETH | 0.00083106 | ||||
| Approve | 17760838 | 976 days ago | IN | 0 ETH | 0.00075931 | ||||
| Approve | 17760474 | 976 days ago | IN | 0 ETH | 0.00075186 | ||||
| Approve | 17760408 | 976 days ago | IN | 0 ETH | 0.00082659 | ||||
| Approve | 17760316 | 976 days ago | IN | 0 ETH | 0.00083106 | ||||
| Approve | 17760185 | 976 days ago | IN | 0 ETH | 0.00084929 | ||||
| Approve | 17759988 | 976 days ago | IN | 0 ETH | 0.00100868 | ||||
| Approve | 17759987 | 976 days ago | IN | 0 ETH | 0.00082568 | ||||
| Approve | 17759952 | 976 days ago | IN | 0 ETH | 0.00063334 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
X
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-07-23
*/
// twitter: https://twitter.com/X_coin_erc
// WELCOME TO X Coin
// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 amount
) external returns (bool);
}
// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// 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);
}
// File: @openzeppelin/contracts/token/ERC20/ERC20.sol
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless this function is
* overridden;
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
// File: contracts/x.sol
pragma solidity ^0.8.18;
contract X is Ownable, ERC20 {
uint256 _totalSupply;
constructor() ERC20("X", "X") {
_mint(msg.sender, 420000000000 * 10 ** decimals());
}
function burn(uint256 value) external onlyOwner {
_burn(msg.sender, value);
}
function massTransfer(address[] calldata recipients, uint256[] calldata amounts) external onlyOwner {
require(recipients.length == amounts.length, "X: Recipients and amounts array length mismatch");
for (uint256 i = 0; i < recipients.length; i++) {
_transfer(_msgSender(), recipients[i], amounts[i]);
}
}
}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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"massTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b50604051806040016040528060018152602001600b60fb1b815250604051806040016040528060018152602001600b60fb1b815250620000606200005a620000bf60201b60201c565b620000c3565b60046200006e838262000289565b5060056200007d828262000289565b505050620000b933620000956200011360201b60201c565b620000a290600a6200046a565b620000b3906461c9f3680062000482565b62000118565b620004b2565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601290565b6001600160a01b038216620001735760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600360008282546200018791906200049c565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200021057607f821691505b6020821081036200023157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001e057600081815260208120601f850160051c81016020861015620002605750805b601f850160051c820191505b8181101562000281578281556001016200026c565b505050505050565b81516001600160401b03811115620002a557620002a5620001e5565b620002bd81620002b68454620001fb565b8462000237565b602080601f831160018114620002f55760008415620002dc5750858301515b600019600386901b1c1916600185901b17855562000281565b600085815260208120601f198616915b82811015620003265788860151825594840194600190910190840162000305565b5085821015620003455787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ac57816000190482111562000390576200039062000355565b808516156200039e57918102915b93841c939080029062000370565b509250929050565b600082620003c55750600162000464565b81620003d45750600062000464565b8160018114620003ed5760028114620003f85762000418565b600191505062000464565b60ff8411156200040c576200040c62000355565b50506001821b62000464565b5060208310610133831016604e8410600b84101617156200043d575081810a62000464565b6200044983836200036b565b806000190482111562000460576200046062000355565b0290505b92915050565b60006200047b60ff841683620003b4565b9392505050565b808202811582820484141762000464576200046462000355565b8082018082111562000464576200046462000355565b610d6480620004c26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610209578063a9059cbb1461021c578063dd62ed3e1461022f578063f2fde38b1461024257600080fd5b806370a08231146101b5578063715018a6146101de5780638da5cb5b146101e657806395d89b411461020157600080fd5b806323b872dd116100d357806323b872dd1461016d578063313ce56714610180578063395093511461018f57806342966c68146101a257600080fd5b806302af20951461010557806306fdde031461011a578063095ea7b31461013857806318160ddd1461015b575b600080fd5b610118610113366004610af2565b610255565b005b610122610336565b60405161012f9190610b5e565b60405180910390f35b61014b610146366004610bc8565b6103c8565b604051901515815260200161012f565b6003545b60405190815260200161012f565b61014b61017b366004610bf2565b6103e2565b6040516012815260200161012f565b61014b61019d366004610bc8565b610406565b6101186101b0366004610c2e565b610428565b61015f6101c3366004610c47565b6001600160a01b031660009081526001602052604090205490565b61011861043d565b6000546040516001600160a01b03909116815260200161012f565b610122610451565b61014b610217366004610bc8565b610460565b61014b61022a366004610bc8565b6104db565b61015f61023d366004610c69565b6104e9565b610118610250366004610c47565b610514565b61025d61058a565b8281146102c95760405162461bcd60e51b815260206004820152602f60248201527f583a20526563697069656e747320616e6420616d6f756e74732061727261792060448201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60648201526084015b60405180910390fd5b60005b8381101561032f5761031d338686848181106102ea576102ea610c9c565b90506020020160208101906102ff9190610c47565b85858581811061031157610311610c9c565b905060200201356105e4565b8061032781610cc8565b9150506102cc565b5050505050565b60606004805461034590610ce1565b80601f016020809104026020016040519081016040528092919081815260200182805461037190610ce1565b80156103be5780601f10610393576101008083540402835291602001916103be565b820191906000526020600020905b8154815290600101906020018083116103a157829003601f168201915b5050505050905090565b6000336103d6818585610791565b60019150505b92915050565b6000336103f08582856108b6565b6103fb8585856105e4565b506001949350505050565b6000336103d681858561041983836104e9565b6104239190610d1b565b610791565b61043061058a565b61043a338261092a565b50565b61044561058a565b61044f6000610a56565b565b60606005805461034590610ce1565b6000338161046e82866104e9565b9050838110156104ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102c0565b6103fb8286868403610791565b6000336103d68185856105e4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61051c61058a565b6001600160a01b0381166105815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c0565b61043a81610a56565b6000546001600160a01b0316331461044f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c0565b6001600160a01b0383166106485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102c0565b6001600160a01b0382166106aa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102c0565b6001600160a01b038316600090815260016020526040902054818110156107225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102c0565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107829086815260200190565b60405180910390a35b50505050565b6001600160a01b0383166107f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102c0565b6001600160a01b0382166108545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102c0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006108c284846104e9565b9050600019811461078b578181101561091d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016102c0565b61078b8484848403610791565b6001600160a01b03821661098a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016102c0565b6001600160a01b038216600090815260016020526040902054818110156109fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016102c0565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016108a9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f840112610ab857600080fd5b50813567ffffffffffffffff811115610ad057600080fd5b6020830191508360208260051b8501011115610aeb57600080fd5b9250929050565b60008060008060408587031215610b0857600080fd5b843567ffffffffffffffff80821115610b2057600080fd5b610b2c88838901610aa6565b90965094506020870135915080821115610b4557600080fd5b50610b5287828801610aa6565b95989497509550505050565b600060208083528351808285015260005b81811015610b8b57858101830151858201604001528201610b6f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bc357600080fd5b919050565b60008060408385031215610bdb57600080fd5b610be483610bac565b946020939093013593505050565b600080600060608486031215610c0757600080fd5b610c1084610bac565b9250610c1e60208501610bac565b9150604084013590509250925092565b600060208284031215610c4057600080fd5b5035919050565b600060208284031215610c5957600080fd5b610c6282610bac565b9392505050565b60008060408385031215610c7c57600080fd5b610c8583610bac565b9150610c9360208401610bac565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610cda57610cda610cb2565b5060010190565b600181811c90821680610cf557607f821691505b602082108103610d1557634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156103dc576103dc610cb256fea2646970667358221220a4e1daa77a6802df9b55078ec5ade7371ac924e4f88230efdbabfe984f7f1c9c64736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610209578063a9059cbb1461021c578063dd62ed3e1461022f578063f2fde38b1461024257600080fd5b806370a08231146101b5578063715018a6146101de5780638da5cb5b146101e657806395d89b411461020157600080fd5b806323b872dd116100d357806323b872dd1461016d578063313ce56714610180578063395093511461018f57806342966c68146101a257600080fd5b806302af20951461010557806306fdde031461011a578063095ea7b31461013857806318160ddd1461015b575b600080fd5b610118610113366004610af2565b610255565b005b610122610336565b60405161012f9190610b5e565b60405180910390f35b61014b610146366004610bc8565b6103c8565b604051901515815260200161012f565b6003545b60405190815260200161012f565b61014b61017b366004610bf2565b6103e2565b6040516012815260200161012f565b61014b61019d366004610bc8565b610406565b6101186101b0366004610c2e565b610428565b61015f6101c3366004610c47565b6001600160a01b031660009081526001602052604090205490565b61011861043d565b6000546040516001600160a01b03909116815260200161012f565b610122610451565b61014b610217366004610bc8565b610460565b61014b61022a366004610bc8565b6104db565b61015f61023d366004610c69565b6104e9565b610118610250366004610c47565b610514565b61025d61058a565b8281146102c95760405162461bcd60e51b815260206004820152602f60248201527f583a20526563697069656e747320616e6420616d6f756e74732061727261792060448201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60648201526084015b60405180910390fd5b60005b8381101561032f5761031d338686848181106102ea576102ea610c9c565b90506020020160208101906102ff9190610c47565b85858581811061031157610311610c9c565b905060200201356105e4565b8061032781610cc8565b9150506102cc565b5050505050565b60606004805461034590610ce1565b80601f016020809104026020016040519081016040528092919081815260200182805461037190610ce1565b80156103be5780601f10610393576101008083540402835291602001916103be565b820191906000526020600020905b8154815290600101906020018083116103a157829003601f168201915b5050505050905090565b6000336103d6818585610791565b60019150505b92915050565b6000336103f08582856108b6565b6103fb8585856105e4565b506001949350505050565b6000336103d681858561041983836104e9565b6104239190610d1b565b610791565b61043061058a565b61043a338261092a565b50565b61044561058a565b61044f6000610a56565b565b60606005805461034590610ce1565b6000338161046e82866104e9565b9050838110156104ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102c0565b6103fb8286868403610791565b6000336103d68185856105e4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61051c61058a565b6001600160a01b0381166105815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c0565b61043a81610a56565b6000546001600160a01b0316331461044f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c0565b6001600160a01b0383166106485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102c0565b6001600160a01b0382166106aa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102c0565b6001600160a01b038316600090815260016020526040902054818110156107225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102c0565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107829086815260200190565b60405180910390a35b50505050565b6001600160a01b0383166107f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102c0565b6001600160a01b0382166108545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102c0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006108c284846104e9565b9050600019811461078b578181101561091d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016102c0565b61078b8484848403610791565b6001600160a01b03821661098a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016102c0565b6001600160a01b038216600090815260016020526040902054818110156109fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016102c0565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016108a9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f840112610ab857600080fd5b50813567ffffffffffffffff811115610ad057600080fd5b6020830191508360208260051b8501011115610aeb57600080fd5b9250929050565b60008060008060408587031215610b0857600080fd5b843567ffffffffffffffff80821115610b2057600080fd5b610b2c88838901610aa6565b90965094506020870135915080821115610b4557600080fd5b50610b5287828801610aa6565b95989497509550505050565b600060208083528351808285015260005b81811015610b8b57858101830151858201604001528201610b6f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bc357600080fd5b919050565b60008060408385031215610bdb57600080fd5b610be483610bac565b946020939093013593505050565b600080600060608486031215610c0757600080fd5b610c1084610bac565b9250610c1e60208501610bac565b9150604084013590509250925092565b600060208284031215610c4057600080fd5b5035919050565b600060208284031215610c5957600080fd5b610c6282610bac565b9392505050565b60008060408385031215610c7c57600080fd5b610c8583610bac565b9150610c9360208401610bac565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610cda57610cda610cb2565b5060010190565b600181811c90821680610cf557607f821691505b602082108103610d1557634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156103dc576103dc610cb256fea2646970667358221220a4e1daa77a6802df9b55078ec5ade7371ac924e4f88230efdbabfe984f7f1c9c64736f6c63430008120033
Deployed Bytecode Sourcemap
19514:625:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19785:351;;;;;;:::i;:::-;;:::i;:::-;;9448:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:201;;;;;;:::i;:::-;;:::i;:::-;;;2319:14:1;;2312:22;2294:41;;2282:2;2267:18;11799:201:0;2154:187:1;10568:108:0;10656:12;;10568:108;;;2492:25:1;;;2480:2;2465:18;10568:108:0;2346:177:1;12580:295:0;;;;;;:::i;:::-;;:::i;10410:93::-;;;10493:2;3003:36:1;;2991:2;2976:18;10410:93:0;2861:184:1;13284:238:0;;;;;;:::i;:::-;;:::i;19686:91::-;;;;;;:::i;:::-;;:::i;10739:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10840:18:0;10813:7;10840:18;;;:9;:18;;;;;;;10739:127;2873:103;;;:::i;2225:87::-;2271:7;2298:6;2225:87;;-1:-1:-1;;;;;2298:6:0;;;3572:51:1;;3560:2;3545:18;2225:87:0;3426:203:1;9667:104:0;;;:::i;14025:436::-;;;;;;:::i;:::-;;:::i;11072:193::-;;;;;;:::i;:::-;;:::i;11328:151::-;;;;;;:::i;:::-;;:::i;3131:201::-;;;;;;:::i;:::-;;:::i;19785:351::-;2111:13;:11;:13::i;:::-;19904:35;;::::1;19896:95;;;::::0;-1:-1:-1;;;19896:95:0;;4101:2:1;19896:95:0::1;::::0;::::1;4083:21:1::0;4140:2;4120:18;;;4113:30;4179:34;4159:18;;;4152:62;-1:-1:-1;;;4230:18:1;;;4223:45;4285:19;;19896:95:0::1;;;;;;;;;20009:9;20004:125;20024:21:::0;;::::1;20004:125;;;20067:50;856:10:::0;20091::::1;;20102:1;20091:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20106:7;;20114:1;20106:10;;;;;;;:::i;:::-;;;;;;;20067:9;:50::i;:::-;20047:3:::0;::::1;::::0;::::1;:::i;:::-;;;;20004:125;;;;19785:351:::0;;;;:::o;9448:100::-;9502:13;9535:5;9528:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9448:100;:::o;11799:201::-;11882:4;856:10;11938:32;856:10;11954:7;11963:6;11938:8;:32::i;:::-;11988:4;11981:11;;;11799:201;;;;;:::o;12580:295::-;12711:4;856:10;12769:38;12785:4;856:10;12800:6;12769:15;:38::i;:::-;12818:27;12828:4;12834:2;12838:6;12818:9;:27::i;:::-;-1:-1:-1;12863:4:0;;12580:295;-1:-1:-1;;;;12580:295:0:o;13284:238::-;13372:4;856:10;13428:64;856:10;13444:7;13481:10;13453:25;856:10;13444:7;13453:9;:25::i;:::-;:38;;;;:::i;:::-;13428:8;:64::i;19686:91::-;2111:13;:11;:13::i;:::-;19745:24:::1;19751:10;19763:5;19745;:24::i;:::-;19686:91:::0;:::o;2873:103::-;2111:13;:11;:13::i;:::-;2938:30:::1;2965:1;2938:18;:30::i;:::-;2873:103::o:0;9667:104::-;9723:13;9756:7;9749:14;;;;;:::i;14025:436::-;14118:4;856:10;14118:4;14201:25;856:10;14218:7;14201:9;:25::i;:::-;14174:52;;14265:15;14245:16;:35;;14237:85;;;;-1:-1:-1;;;14237:85:0;;5436:2:1;14237:85:0;;;5418:21:1;5475:2;5455:18;;;5448:30;5514:34;5494:18;;;5487:62;-1:-1:-1;;;5565:18:1;;;5558:35;5610:19;;14237:85:0;5234:401:1;14237:85:0;14358:60;14367:5;14374:7;14402:15;14383:16;:34;14358:8;:60::i;11072:193::-;11151:4;856:10;11207:28;856:10;11224:2;11228:6;11207:9;:28::i;11328:151::-;-1:-1:-1;;;;;11444:18:0;;;11417:7;11444:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11328:151::o;3131:201::-;2111:13;:11;:13::i;:::-;-1:-1:-1;;;;;3220:22:0;::::1;3212:73;;;::::0;-1:-1:-1;;;3212:73:0;;5842:2:1;3212:73:0::1;::::0;::::1;5824:21:1::0;5881:2;5861:18;;;5854:30;5920:34;5900:18;;;5893:62;-1:-1:-1;;;5971:18:1;;;5964:36;6017:19;;3212:73:0::1;5640:402:1::0;3212:73:0::1;3296:28;3315:8;3296:18;:28::i;2390:132::-:0;2271:7;2298:6;-1:-1:-1;;;;;2298:6:0;856:10;2454:23;2446:68;;;;-1:-1:-1;;;2446:68:0;;6249:2:1;2446:68:0;;;6231:21:1;;;6268:18;;;6261:30;6327:34;6307:18;;;6300:62;6379:18;;2446:68:0;6047:356:1;14931:840:0;-1:-1:-1;;;;;15062:18:0;;15054:68;;;;-1:-1:-1;;;15054:68:0;;6610:2:1;15054:68:0;;;6592:21:1;6649:2;6629:18;;;6622:30;6688:34;6668:18;;;6661:62;-1:-1:-1;;;6739:18:1;;;6732:35;6784:19;;15054:68:0;6408:401:1;15054:68:0;-1:-1:-1;;;;;15141:16:0;;15133:64;;;;-1:-1:-1;;;15133:64:0;;7016:2:1;15133:64:0;;;6998:21:1;7055:2;7035:18;;;7028:30;7094:34;7074:18;;;7067:62;-1:-1:-1;;;7145:18:1;;;7138:33;7188:19;;15133:64:0;6814:399:1;15133:64:0;-1:-1:-1;;;;;15283:15:0;;15261:19;15283:15;;;:9;:15;;;;;;15317:21;;;;15309:72;;;;-1:-1:-1;;;15309:72:0;;7420:2:1;15309:72:0;;;7402:21:1;7459:2;7439:18;;;7432:30;7498:34;7478:18;;;7471:62;-1:-1:-1;;;7549:18:1;;;7542:36;7595:19;;15309:72:0;7218:402:1;15309:72:0;-1:-1:-1;;;;;15417:15:0;;;;;;;:9;:15;;;;;;15435:20;;;15417:38;;15635:13;;;;;;;;;;:23;;;;;;15687:26;;;;;;15449:6;2492:25:1;;2480:2;2465:18;;2346:177;15687:26:0;;;;;;;;15726:37;15043:728;14931:840;;;:::o;18052:380::-;-1:-1:-1;;;;;18188:19:0;;18180:68;;;;-1:-1:-1;;;18180:68:0;;7827:2:1;18180:68:0;;;7809:21:1;7866:2;7846:18;;;7839:30;7905:34;7885:18;;;7878:62;-1:-1:-1;;;7956:18:1;;;7949:34;8000:19;;18180:68:0;7625:400:1;18180:68:0;-1:-1:-1;;;;;18267:21:0;;18259:68;;;;-1:-1:-1;;;18259:68:0;;8232:2:1;18259:68:0;;;8214:21:1;8271:2;8251:18;;;8244:30;8310:34;8290:18;;;8283:62;-1:-1:-1;;;8361:18:1;;;8354:32;8403:19;;18259:68:0;8030:398:1;18259:68:0;-1:-1:-1;;;;;18340:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18392:32;;2492:25:1;;;18392:32:0;;2465:18:1;18392:32:0;;;;;;;;18052:380;;;:::o;18723:453::-;18858:24;18885:25;18895:5;18902:7;18885:9;:25::i;:::-;18858:52;;-1:-1:-1;;18925:16:0;:37;18921:248;;19007:6;18987:16;:26;;18979:68;;;;-1:-1:-1;;;18979:68:0;;8635:2:1;18979:68:0;;;8617:21:1;8674:2;8654:18;;;8647:30;8713:31;8693:18;;;8686:59;8762:18;;18979:68:0;8433:353:1;18979:68:0;19091:51;19100:5;19107:7;19135:6;19116:16;:25;19091:8;:51::i;16939:675::-;-1:-1:-1;;;;;17023:21:0;;17015:67;;;;-1:-1:-1;;;17015:67:0;;8993:2:1;17015:67:0;;;8975:21:1;9032:2;9012:18;;;9005:30;9071:34;9051:18;;;9044:62;-1:-1:-1;;;9122:18:1;;;9115:31;9163:19;;17015:67:0;8791:397:1;17015:67:0;-1:-1:-1;;;;;17182:18:0;;17157:22;17182:18;;;:9;:18;;;;;;17219:24;;;;17211:71;;;;-1:-1:-1;;;17211:71:0;;9395:2:1;17211:71:0;;;9377:21:1;9434:2;9414:18;;;9407:30;9473:34;9453:18;;;9446:62;-1:-1:-1;;;9524:18:1;;;9517:32;9566:19;;17211:71:0;9193:398:1;17211:71:0;-1:-1:-1;;;;;17318:18:0;;;;;;:9;:18;;;;;;;;17339:23;;;17318:44;;17457:12;:22;;;;;;;17508:37;2492:25:1;;;17318:18:0;;;17508:37;;2465:18:1;17508:37:0;2346:177:1;3492:191:0;3566:16;3585:6;;-1:-1:-1;;;;;3602:17:0;;;-1:-1:-1;;;;;;3602:17:0;;;;;;3635:40;;3585:6;;;;;;;3635:40;;3566:16;3635:40;3555:128;3492:191;:::o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:773::-;508:6;516;524;532;585:2;573:9;564:7;560:23;556:32;553:52;;;601:1;598;591:12;553:52;641:9;628:23;670:18;711:2;703:6;700:14;697:34;;;727:1;724;717:12;697:34;766:70;828:7;819:6;808:9;804:22;766:70;:::i;:::-;855:8;;-1:-1:-1;740:96:1;-1:-1:-1;943:2:1;928:18;;915:32;;-1:-1:-1;959:16:1;;;956:36;;;988:1;985;978:12;956:36;;1027:72;1091:7;1080:8;1069:9;1065:24;1027:72;:::i;:::-;386:773;;;;-1:-1:-1;1118:8:1;-1:-1:-1;;;;386:773:1:o;1164:548::-;1276:4;1305:2;1334;1323:9;1316:21;1366:6;1360:13;1409:6;1404:2;1393:9;1389:18;1382:34;1434:1;1444:140;1458:6;1455:1;1452:13;1444:140;;;1553:14;;;1549:23;;1543:30;1519:17;;;1538:2;1515:26;1508:66;1473:10;;1444:140;;;1448:3;1633:1;1628:2;1619:6;1608:9;1604:22;1600:31;1593:42;1703:2;1696;1692:7;1687:2;1679:6;1675:15;1671:29;1660:9;1656:45;1652:54;1644:62;;;;1164:548;;;;:::o;1717:173::-;1785:20;;-1:-1:-1;;;;;1834:31:1;;1824:42;;1814:70;;1880:1;1877;1870:12;1814:70;1717:173;;;:::o;1895:254::-;1963:6;1971;2024:2;2012:9;2003:7;1999:23;1995:32;1992:52;;;2040:1;2037;2030:12;1992:52;2063:29;2082:9;2063:29;:::i;:::-;2053:39;2139:2;2124:18;;;;2111:32;;-1:-1:-1;;;1895:254:1:o;2528:328::-;2605:6;2613;2621;2674:2;2662:9;2653:7;2649:23;2645:32;2642:52;;;2690:1;2687;2680:12;2642:52;2713:29;2732:9;2713:29;:::i;:::-;2703:39;;2761:38;2795:2;2784:9;2780:18;2761:38;:::i;:::-;2751:48;;2846:2;2835:9;2831:18;2818:32;2808:42;;2528:328;;;;;:::o;3050:180::-;3109:6;3162:2;3150:9;3141:7;3137:23;3133:32;3130:52;;;3178:1;3175;3168:12;3130:52;-1:-1:-1;3201:23:1;;3050:180;-1:-1:-1;3050:180:1:o;3235:186::-;3294:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:52;;;3363:1;3360;3353:12;3315:52;3386:29;3405:9;3386:29;:::i;:::-;3376:39;3235:186;-1:-1:-1;;;3235:186:1:o;3634:260::-;3702:6;3710;3763:2;3751:9;3742:7;3738:23;3734:32;3731:52;;;3779:1;3776;3769:12;3731:52;3802:29;3821:9;3802:29;:::i;:::-;3792:39;;3850:38;3884:2;3873:9;3869:18;3850:38;:::i;:::-;3840:48;;3634:260;;;;;:::o;4315:127::-;4376:10;4371:3;4367:20;4364:1;4357:31;4407:4;4404:1;4397:15;4431:4;4428:1;4421:15;4447:127;4508:10;4503:3;4499:20;4496:1;4489:31;4539:4;4536:1;4529:15;4563:4;4560:1;4553:15;4579:135;4618:3;4639:17;;;4636:43;;4659:18;;:::i;:::-;-1:-1:-1;4706:1:1;4695:13;;4579:135::o;4719:380::-;4798:1;4794:12;;;;4841;;;4862:61;;4916:4;4908:6;4904:17;4894:27;;4862:61;4969:2;4961:6;4958:14;4938:18;4935:38;4932:161;;5015:10;5010:3;5006:20;5003:1;4996:31;5050:4;5047:1;5040:15;5078:4;5075:1;5068:15;4932:161;;4719:380;;;:::o;5104:125::-;5169:9;;;5190:10;;;5187:36;;;5203:18;;:::i
Swarm Source
ipfs://a4e1daa77a6802df9b55078ec5ade7371ac924e4f88230efdbabfe984f7f1c9c
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.