Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 28 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20434651 | 64 days ago | IN | 0 ETH | 0.00045889 | ||||
Approve | 17233350 | 513 days ago | IN | 0 ETH | 0.00561778 | ||||
Approve | 17233350 | 513 days ago | IN | 0 ETH | 0.00561778 | ||||
Approve | 17233350 | 513 days ago | IN | 0 ETH | 0.00561778 | ||||
Approve | 17233350 | 513 days ago | IN | 0 ETH | 0.00561778 | ||||
Approve | 17233350 | 513 days ago | IN | 0 ETH | 0.00561778 | ||||
Approve | 17233350 | 513 days ago | IN | 0 ETH | 0.00561778 | ||||
Approve | 17233348 | 513 days ago | IN | 0 ETH | 0.00509231 | ||||
Approve | 17233348 | 513 days ago | IN | 0 ETH | 0.0057926 | ||||
Approve | 17233346 | 513 days ago | IN | 0 ETH | 0.00499764 | ||||
Approve | 17233346 | 513 days ago | IN | 0 ETH | 0.00520773 | ||||
Approve | 17233345 | 513 days ago | IN | 0 ETH | 0.0050963 | ||||
Approve | 17233345 | 513 days ago | IN | 0 ETH | 0.00528305 | ||||
Approve | 17233345 | 513 days ago | IN | 0 ETH | 0.00528305 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00464172 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.0047351 | ||||
Approve | 17233342 | 513 days ago | IN | 0 ETH | 0.00548646 | ||||
Approve | 17233337 | 513 days ago | IN | 0 ETH | 0.00422106 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Fomo
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-10 */ /** FOMO.erc */ // 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); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: contracts/Fomo.sol //SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Fomo is ERC20, Ownable { address public pair; uint public immutable burnFee = 10; bool public isFirstAddLiq = false; constructor() ERC20("Fomo","FOMO"){ uint tSuppl = 1_000_000_000*10**decimals(); // starting total supply super._mint(msg.sender,tSuppl); // mint totalSupply, will never be used again address uniRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswap routerv2 address IUniswapV2Router02 _pancakeV2Router = IUniswapV2Router02(uniRouter); IUniswapV2Factory factoryUni = IUniswapV2Factory(_pancakeV2Router.factory()); pair = factoryUni.createPair(address(this), _pancakeV2Router.WETH()); //create pair with ETH } function publicBurn(uint amount) external { // public func if anyone want burn some of their tokens super._burn(msg.sender,amount); } function _transfer(address from, address to, uint256 amount) internal override { if(to == pair){ if(!isFirstAddLiq){ // to avoid tax on the first add liquidity, this if will not be executed ever again isFirstAddLiq = true; super._transfer(from,to,amount); return; } uint burnPart = amount * burnFee / 100; // calculate burn fee amount -= burnPart; // remove burn part from amount super._burn(from,burnPart); } super._transfer(from,to,amount); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[],"name":"burnFee","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":"isFirstAddLiq","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"publicBurn","outputs":[],"stateMutability":"nonpayable","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
60a0604052600a6080526006805460ff60a01b191690553480156200002357600080fd5b5060405180604001604052806004815260200163466f6d6f60e01b81525060405180604001604052806004815260200163464f4d4f60e01b815250816003908051906020019062000076929190620003c9565b5080516200008c906004906020840190620003c9565b505050620000a9620000a3620002a760201b60201c565b620002ab565b6000620000b5620002fd565b620000c290600a62000561565b620000d290633b9aca006200064c565b9050620000eb33826200030260201b620004df1760201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014557600080fd5b505afa1580156200015a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018091906200046f565b9050806001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001cc57600080fd5b505afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020791906200046f565b6040518363ffffffff1660e01b8152600401620002269291906200049f565b602060405180830381600087803b1580156200024157600080fd5b505af115801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c91906200046f565b600680546001600160a01b0319166001600160a01b039290921691909117905550620006c192505050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601290565b6001600160a01b038216620003345760405162461bcd60e51b81526004016200032b90620004b9565b60405180910390fd5b6200034260008383620003c4565b8060026000828254620003569190620004f9565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620003aa908590620004f0565b60405180910390a3620003c060008383620003c4565b5050565b505050565b828054620003d7906200066e565b90600052602060002090601f016020900481019282620003fb576000855562000446565b82601f106200041657805160ff191683800117855562000446565b8280016001018555821562000446579182015b828111156200044657825182559160200191906001019062000429565b506200045492915062000458565b5090565b5b8082111562000454576000815560010162000459565b60006020828403121562000481578081fd5b81516001600160a01b038116811462000498578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200050f576200050f620006ab565b500190565b80825b600180861162000528575062000558565b8187048211156200053d576200053d620006ab565b808616156200054b57918102915b9490941c93800262000517565b94509492505050565b60006200049860001960ff851684600082620005805750600162000498565b816200058f5750600062000498565b8160018114620005a85760028114620005b357620005e7565b600191505062000498565b60ff841115620005c757620005c7620006ab565b6001841b915084821115620005e057620005e0620006ab565b5062000498565b5060208310610133831016604e8410600b84101617156200061f575081810a83811115620006195762000619620006ab565b62000498565b6200062e848484600162000514565b808604821115620006435762000643620006ab565b02949350505050565b6000816000190483118215151615620006695762000669620006ab565b500290565b6002810460018216806200068357607f821691505b60208210811415620006a557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b608051610f0d620006e4600039600081816104bd01526106e20152610f0d6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a8aa1b3111610071578063a8aa1b3114610211578063a9059cbb14610219578063dd62ed3e1461022c578063f2fde38b1461023f578063fce589d81461025257610116565b8063715018a6146101d95780638da5cb5b146101e157806395d89b41146101f6578063a457c2d7146101fe57610116565b80632b8b3475116100e95780632b8b347514610181578063313ce5671461019657806339509351146101ab57806368a3e5b3146101be57806370a08231146101c657610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b61012361025a565b6040516101309190610aa9565b60405180910390f35b61014c610147366004610a49565b6102ec565b6040516101309190610a9e565b61016161030e565b6040516101309190610e01565b61014c61017c366004610a0e565b610314565b61019461018f366004610a72565b610342565b005b61019e61034f565b6040516101309190610e0a565b61014c6101b9366004610a49565b610354565b61014c610380565b6101616101d43660046109bb565b610390565b6101946103af565b6101e96103c3565b6040516101309190610a8a565b6101236103d2565b61014c61020c366004610a49565b6103e1565b6101e9610432565b61014c610227366004610a49565b610441565b61016161023a3660046109dc565b610459565b61019461024d3660046109bb565b610484565b6101616104bb565b60606003805461026990610e86565b80601f016020809104026020016040519081016040528092919081815260200182805461029590610e86565b80156102e25780601f106102b7576101008083540402835291602001916102e2565b820191906000526020600020905b8154815290600101906020018083116102c557829003601f168201915b5050505050905090565b6000806102f761058d565b9050610304818585610591565b5060019392505050565b60025490565b60008061031f61058d565b905061032c858285610645565b61033785858561068f565b506001949350505050565b61034c338261073b565b50565b601290565b60008061035f61058d565b90506103048185856103718589610459565b61037b9190610e18565b610591565b600654600160a01b900460ff1681565b6001600160a01b0381166000908152602081905260409020545b919050565b6103b7610812565b6103c16000610851565b565b6005546001600160a01b031690565b60606004805461026990610e86565b6000806103ec61058d565b905060006103fa8286610459565b9050838110156104255760405162461bcd60e51b815260040161041c90610d85565b60405180910390fd5b6103378286868403610591565b6006546001600160a01b031681565b60008061044c61058d565b905061030481858561068f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61048c610812565b6001600160a01b0381166104b25760405162461bcd60e51b815260040161041c90610b81565b61034c81610851565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0382166105055760405162461bcd60e51b815260040161041c90610dca565b61051160008383610736565b80600260008282546105239190610e18565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610575908590610e01565b60405180910390a361058960008383610736565b5050565b3390565b6001600160a01b0383166105b75760405162461bcd60e51b815260040161041c90610d41565b6001600160a01b0382166105dd5760405162461bcd60e51b815260040161041c90610bc7565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610638908590610e01565b60405180910390a3505050565b60006106518484610459565b90506000198114610689578181101561067c5760405162461bcd60e51b815260040161041c90610c09565b6106898484848403610591565b50505050565b6006546001600160a01b038381169116141561072b57600654600160a01b900460ff166106d9576006805460ff60a01b1916600160a01b1790556106d48383836108a3565b610736565b600060646107077f000000000000000000000000000000000000000000000000000000000000000084610e50565b6107119190610e30565b905061071d8183610e6f565b9150610729848261073b565b505b6107368383836108a3565b505050565b6001600160a01b0382166107615760405162461bcd60e51b815260040161041c90610cbb565b61076d82600083610736565b6001600160a01b038216600090815260208190526040902054818110156107a65760405162461bcd60e51b815260040161041c90610b3f565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107fe908690610e01565b60405180910390a361073683600084610736565b61081a61058d565b6001600160a01b031661082b6103c3565b6001600160a01b0316146103c15760405162461bcd60e51b815260040161041c90610c86565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166108c95760405162461bcd60e51b815260040161041c90610cfc565b6001600160a01b0382166108ef5760405162461bcd60e51b815260040161041c90610afc565b6108fa838383610736565b6001600160a01b038316600090815260208190526040902054818110156109335760405162461bcd60e51b815260040161041c90610c40565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610991908690610e01565b60405180910390a3610689848484610736565b80356001600160a01b03811681146103aa57600080fd5b6000602082840312156109cc578081fd5b6109d5826109a4565b9392505050565b600080604083850312156109ee578081fd5b6109f7836109a4565b9150610a05602084016109a4565b90509250929050565b600080600060608486031215610a22578081fd5b610a2b846109a4565b9250610a39602085016109a4565b9150604084013590509250925092565b60008060408385031215610a5b578182fd5b610a64836109a4565b946020939093013593505050565b600060208284031215610a83578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610ad557858101830151858201604001528201610ab9565b81811115610ae65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610e2b57610e2b610ec1565b500190565b600082610e4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610e6a57610e6a610ec1565b500290565b600082821015610e8157610e81610ec1565b500390565b600281046001821680610e9a57607f821691505b60208210811415610ebb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212202f3d8b39caf2b64ed5f5662f84385a99d864ff75f0195e1bbfd02c6d2ad2bd3264736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a8aa1b3111610071578063a8aa1b3114610211578063a9059cbb14610219578063dd62ed3e1461022c578063f2fde38b1461023f578063fce589d81461025257610116565b8063715018a6146101d95780638da5cb5b146101e157806395d89b41146101f6578063a457c2d7146101fe57610116565b80632b8b3475116100e95780632b8b347514610181578063313ce5671461019657806339509351146101ab57806368a3e5b3146101be57806370a08231146101c657610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b61012361025a565b6040516101309190610aa9565b60405180910390f35b61014c610147366004610a49565b6102ec565b6040516101309190610a9e565b61016161030e565b6040516101309190610e01565b61014c61017c366004610a0e565b610314565b61019461018f366004610a72565b610342565b005b61019e61034f565b6040516101309190610e0a565b61014c6101b9366004610a49565b610354565b61014c610380565b6101616101d43660046109bb565b610390565b6101946103af565b6101e96103c3565b6040516101309190610a8a565b6101236103d2565b61014c61020c366004610a49565b6103e1565b6101e9610432565b61014c610227366004610a49565b610441565b61016161023a3660046109dc565b610459565b61019461024d3660046109bb565b610484565b6101616104bb565b60606003805461026990610e86565b80601f016020809104026020016040519081016040528092919081815260200182805461029590610e86565b80156102e25780601f106102b7576101008083540402835291602001916102e2565b820191906000526020600020905b8154815290600101906020018083116102c557829003601f168201915b5050505050905090565b6000806102f761058d565b9050610304818585610591565b5060019392505050565b60025490565b60008061031f61058d565b905061032c858285610645565b61033785858561068f565b506001949350505050565b61034c338261073b565b50565b601290565b60008061035f61058d565b90506103048185856103718589610459565b61037b9190610e18565b610591565b600654600160a01b900460ff1681565b6001600160a01b0381166000908152602081905260409020545b919050565b6103b7610812565b6103c16000610851565b565b6005546001600160a01b031690565b60606004805461026990610e86565b6000806103ec61058d565b905060006103fa8286610459565b9050838110156104255760405162461bcd60e51b815260040161041c90610d85565b60405180910390fd5b6103378286868403610591565b6006546001600160a01b031681565b60008061044c61058d565b905061030481858561068f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61048c610812565b6001600160a01b0381166104b25760405162461bcd60e51b815260040161041c90610b81565b61034c81610851565b7f000000000000000000000000000000000000000000000000000000000000000a81565b6001600160a01b0382166105055760405162461bcd60e51b815260040161041c90610dca565b61051160008383610736565b80600260008282546105239190610e18565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610575908590610e01565b60405180910390a361058960008383610736565b5050565b3390565b6001600160a01b0383166105b75760405162461bcd60e51b815260040161041c90610d41565b6001600160a01b0382166105dd5760405162461bcd60e51b815260040161041c90610bc7565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610638908590610e01565b60405180910390a3505050565b60006106518484610459565b90506000198114610689578181101561067c5760405162461bcd60e51b815260040161041c90610c09565b6106898484848403610591565b50505050565b6006546001600160a01b038381169116141561072b57600654600160a01b900460ff166106d9576006805460ff60a01b1916600160a01b1790556106d48383836108a3565b610736565b600060646107077f000000000000000000000000000000000000000000000000000000000000000a84610e50565b6107119190610e30565b905061071d8183610e6f565b9150610729848261073b565b505b6107368383836108a3565b505050565b6001600160a01b0382166107615760405162461bcd60e51b815260040161041c90610cbb565b61076d82600083610736565b6001600160a01b038216600090815260208190526040902054818110156107a65760405162461bcd60e51b815260040161041c90610b3f565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107fe908690610e01565b60405180910390a361073683600084610736565b61081a61058d565b6001600160a01b031661082b6103c3565b6001600160a01b0316146103c15760405162461bcd60e51b815260040161041c90610c86565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166108c95760405162461bcd60e51b815260040161041c90610cfc565b6001600160a01b0382166108ef5760405162461bcd60e51b815260040161041c90610afc565b6108fa838383610736565b6001600160a01b038316600090815260208190526040902054818110156109335760405162461bcd60e51b815260040161041c90610c40565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610991908690610e01565b60405180910390a3610689848484610736565b80356001600160a01b03811681146103aa57600080fd5b6000602082840312156109cc578081fd5b6109d5826109a4565b9392505050565b600080604083850312156109ee578081fd5b6109f7836109a4565b9150610a05602084016109a4565b90509250929050565b600080600060608486031215610a22578081fd5b610a2b846109a4565b9250610a39602085016109a4565b9150604084013590509250925092565b60008060408385031215610a5b578182fd5b610a64836109a4565b946020939093013593505050565b600060208284031215610a83578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610ad557858101830151858201604001528201610ab9565b81811115610ae65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610e2b57610e2b610ec1565b500190565b600082610e4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610e6a57610e6a610ec1565b500290565b600082821015610e8157610e81610ec1565b500390565b600281046001821680610e9a57607f821691505b60208210811415610ebb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212202f3d8b39caf2b64ed5f5662f84385a99d864ff75f0195e1bbfd02c6d2ad2bd3264736f6c63430008000033
Deployed Bytecode Sourcemap
20653:1485:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9373:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11724:201;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10493:108::-;;;:::i;:::-;;;;;;;:::i;12505:295::-;;;;;;:::i;:::-;;:::i;21390:147::-;;;;;;:::i;:::-;;:::i;:::-;;10335:93;;;:::i;:::-;;;;;;;:::i;13209:238::-;;;;;;:::i;:::-;;:::i;20759:33::-;;;:::i;10664:127::-;;;;;;:::i;:::-;;:::i;2798:103::-;;;:::i;2150:87::-;;;:::i;:::-;;;;;;;:::i;9592:104::-;;;:::i;13950:436::-;;;;;;:::i;:::-;;:::i;20692:19::-;;;:::i;10997:193::-;;;;;;:::i;:::-;;:::i;11253:151::-;;;;;;:::i;:::-;;:::i;3056:201::-;;;;;;:::i;:::-;;:::i;20718:34::-;;;:::i;9373:100::-;9427:13;9460:5;9453:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9373:100;:::o;11724:201::-;11807:4;11824:13;11840:12;:10;:12::i;:::-;11824:28;;11863:32;11872:5;11879:7;11888:6;11863:8;:32::i;:::-;-1:-1:-1;11913:4:0;;11724:201;-1:-1:-1;;;11724:201:0:o;10493:108::-;10581:12;;10493:108;:::o;12505:295::-;12636:4;12653:15;12671:12;:10;:12::i;:::-;12653:30;;12694:38;12710:4;12716:7;12725:6;12694:15;:38::i;:::-;12743:27;12753:4;12759:2;12763:6;12743:9;:27::i;:::-;-1:-1:-1;12788:4:0;;12505:295;-1:-1:-1;;;;12505:295:0:o;21390:147::-;21499:30;21511:10;21522:6;21499:11;:30::i;:::-;21390:147;:::o;10335:93::-;10418:2;10335:93;:::o;13209:238::-;13297:4;13314:13;13330:12;:10;:12::i;:::-;13314:28;;13353:64;13362:5;13369:7;13406:10;13378:25;13388:5;13395:7;13378:9;:25::i;:::-;:38;;;;:::i;:::-;13353:8;:64::i;20759:33::-;;;-1:-1:-1;;;20759:33:0;;;;;:::o;10664:127::-;-1:-1:-1;;;;;10765:18:0;;10738:7;10765:18;;;;;;;;;;;10664:127;;;;:::o;2798:103::-;2036:13;:11;:13::i;:::-;2863:30:::1;2890:1;2863:18;:30::i;:::-;2798:103::o:0;2150:87::-;2223:6;;-1:-1:-1;;;;;2223:6:0;2150:87;:::o;9592:104::-;9648:13;9681:7;9674:14;;;;;:::i;13950:436::-;14043:4;14060:13;14076:12;:10;:12::i;:::-;14060:28;;14099:24;14126:25;14136:5;14143:7;14126:9;:25::i;:::-;14099:52;;14190:15;14170:16;:35;;14162:85;;;;-1:-1:-1;;;14162:85:0;;;;;;;:::i;:::-;;;;;;;;;14283:60;14292:5;14299:7;14327:15;14308:16;:34;14283:8;:60::i;20692:19::-;;;-1:-1:-1;;;;;20692:19:0;;:::o;10997:193::-;11076:4;11093:13;11109:12;:10;:12::i;:::-;11093:28;;11132;11142:5;11149:2;11153:6;11132:9;:28::i;11253:151::-;-1:-1:-1;;;;;11369:18:0;;;11342:7;11369:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11253:151::o;3056:201::-;2036:13;:11;:13::i;:::-;-1:-1:-1;;;;;3145:22:0;::::1;3137:73;;;;-1:-1:-1::0;;;3137:73:0::1;;;;;;;:::i;:::-;3221:28;3240:8;3221:18;:28::i;20718:34::-:0;;;:::o;15983:548::-;-1:-1:-1;;;;;16067:21:0;;16059:65;;;;-1:-1:-1;;;16059:65:0;;;;;;;:::i;:::-;16137:49;16166:1;16170:7;16179:6;16137:20;:49::i;:::-;16215:6;16199:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16370:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;16425:37;;;;;16392:6;;16425:37;:::i;:::-;;;;;;;;16475:48;16503:1;16507:7;16516:6;16475:19;:48::i;:::-;15983:548;;:::o;701:98::-;781:10;701:98;:::o;17977:380::-;-1:-1:-1;;;;;18113:19:0;;18105:68;;;;-1:-1:-1;;;18105:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18192:21:0;;18184:68;;;;-1:-1:-1;;;18184:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18265:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;18317:32;;;;;18295:6;;18317:32;:::i;:::-;;;;;;;;17977:380;;;:::o;18648:453::-;18783:24;18810:25;18820:5;18827:7;18810:9;:25::i;:::-;18783:52;;-1:-1:-1;;18850:16:0;:37;18846:248;;18932:6;18912:16;:26;;18904:68;;;;-1:-1:-1;;;18904:68:0;;;;;;;:::i;:::-;19016:51;19025:5;19032:7;19060:6;19041:16;:25;19016:8;:51::i;:::-;18648:453;;;;:::o;21543:592::-;21642:4;;-1:-1:-1;;;;;21636:10:0;;;21642:4;;21636:10;21633:453;;;21666:13;;-1:-1:-1;;;21666:13:0;;;;21662:232;;21783:13;:20;;-1:-1:-1;;;;21783:20:0;-1:-1:-1;;;21783:20:0;;;21822:31;21838:4;21843:2;21846:6;21822:15;:31::i;:::-;21872:7;;21662:232;21908:13;21943:3;21924:16;21933:7;21924:6;:16;:::i;:::-;:22;;;;:::i;:::-;21908:38;-1:-1:-1;21983:18:0;21908:38;21983:18;;:::i;:::-;;;22048:26;22060:4;22065:8;22048:11;:26::i;:::-;21633:453;;22096:31;22112:4;22117:2;22120:6;22096:15;:31::i;:::-;21543:592;;;:::o;16864:675::-;-1:-1:-1;;;;;16948:21:0;;16940:67;;;;-1:-1:-1;;;16940:67:0;;;;;;;:::i;:::-;17020:49;17041:7;17058:1;17062:6;17020:20;:49::i;:::-;-1:-1:-1;;;;;17107:18:0;;17082:22;17107:18;;;;;;;;;;;17144:24;;;;17136:71;;;;-1:-1:-1;;;17136:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17243:18:0;;:9;:18;;;;;;;;;;;17264:23;;;17243:44;;17382:12;:22;;;;;;;17433:37;17243:9;;:18;17433:37;;;;17281:6;;17433:37;:::i;:::-;;;;;;;;17483:48;17503:7;17520:1;17524:6;17483:19;:48::i;2315:132::-;2390:12;:10;:12::i;:::-;-1:-1:-1;;;;;2379:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2379:23:0;;2371:68;;;;-1:-1:-1;;;2371:68:0;;;;;;;:::i;3417:191::-;3510:6;;;-1:-1:-1;;;;;3527:17:0;;;-1:-1:-1;;;;;;3527:17:0;;;;;;;3560:40;;3510:6;;;3527:17;3510:6;;3560:40;;3491:16;;3560:40;3417:191;;:::o;14856:840::-;-1:-1:-1;;;;;14987:18:0;;14979:68;;;;-1:-1:-1;;;14979:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15066:16:0;;15058:64;;;;-1:-1:-1;;;15058:64:0;;;;;;;:::i;:::-;15135:38;15156:4;15162:2;15166:6;15135:20;:38::i;:::-;-1:-1:-1;;;;;15208:15:0;;15186:19;15208:15;;;;;;;;;;;15242:21;;;;15234:72;;;;-1:-1:-1;;;15234:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15342:15:0;;;:9;:15;;;;;;;;;;;15360:20;;;15342:38;;15560:13;;;;;;;;;;:23;;;;;;15612:26;;;;;;15374:6;;15612:26;:::i;:::-;;;;;;;;15651:37;15671:4;15677:2;15681:6;15651:19;:37::i;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:1;;1364:120;-1:-1:-1;1364:120:1:o;1489:203::-;-1:-1:-1;;;;;1653:32:1;;;;1635:51;;1623:2;1608:18;;1590:102::o;1697:187::-;1862:14;;1855:22;1837:41;;1825:2;1810:18;;1792:92::o;1889:603::-;;2030:2;2059;2048:9;2041:21;2091:6;2085:13;2134:6;2129:2;2118:9;2114:18;2107:34;2159:4;2172:140;2186:6;2183:1;2180:13;2172:140;;;2281:14;;;2277:23;;2271:30;2247:17;;;2266:2;2243:26;2236:66;2201:10;;2172:140;;;2330:6;2327:1;2324:13;2321:2;;;2400:4;2395:2;2386:6;2375:9;2371:22;2367:31;2360:45;2321:2;-1:-1:-1;2476:2:1;2455:15;-1:-1:-1;;2451:29:1;2436:45;;;;2483:2;2432:54;;2010:482;-1:-1:-1;;;2010:482:1:o;2497:399::-;2699:2;2681:21;;;2738:2;2718:18;;;2711:30;2777:34;2772:2;2757:18;;2750:62;-1:-1:-1;;;2843:2:1;2828:18;;2821:33;2886:3;2871:19;;2671:225::o;2901:398::-;3103:2;3085:21;;;3142:2;3122:18;;;3115:30;3181:34;3176:2;3161:18;;3154:62;-1:-1:-1;;;3247:2:1;3232:18;;3225:32;3289:3;3274:19;;3075:224::o;3304:402::-;3506:2;3488:21;;;3545:2;3525:18;;;3518:30;3584:34;3579:2;3564:18;;3557:62;-1:-1:-1;;;3650:2:1;3635:18;;3628:36;3696:3;3681:19;;3478:228::o;3711:398::-;3913:2;3895:21;;;3952:2;3932:18;;;3925:30;3991:34;3986:2;3971:18;;3964:62;-1:-1:-1;;;4057:2:1;4042:18;;4035:32;4099:3;4084:19;;3885:224::o;4114:353::-;4316:2;4298:21;;;4355:2;4335:18;;;4328:30;4394:31;4389:2;4374:18;;4367:59;4458:2;4443:18;;4288:179::o;4472:402::-;4674:2;4656:21;;;4713:2;4693:18;;;4686:30;4752:34;4747:2;4732:18;;4725:62;-1:-1:-1;;;4818:2:1;4803:18;;4796:36;4864:3;4849:19;;4646:228::o;4879:356::-;5081:2;5063:21;;;5100:18;;;5093:30;5159:34;5154:2;5139:18;;5132:62;5226:2;5211:18;;5053:182::o;5240:397::-;5442:2;5424:21;;;5481:2;5461:18;;;5454:30;5520:34;5515:2;5500:18;;5493:62;-1:-1:-1;;;5586:2:1;5571:18;;5564:31;5627:3;5612:19;;5414:223::o;5642:401::-;5844:2;5826:21;;;5883:2;5863:18;;;5856:30;5922:34;5917:2;5902:18;;5895:62;-1:-1:-1;;;5988:2:1;5973:18;;5966:35;6033:3;6018:19;;5816:227::o;6048:400::-;6250:2;6232:21;;;6289:2;6269:18;;;6262:30;6328:34;6323:2;6308:18;;6301:62;-1:-1:-1;;;6394:2:1;6379:18;;6372:34;6438:3;6423:19;;6222:226::o;6453:401::-;6655:2;6637:21;;;6694:2;6674:18;;;6667:30;6733:34;6728:2;6713:18;;6706:62;-1:-1:-1;;;6799:2:1;6784:18;;6777:35;6844:3;6829:19;;6627:227::o;6859:355::-;7061:2;7043:21;;;7100:2;7080:18;;;7073:30;7139:33;7134:2;7119:18;;7112:61;7205:2;7190:18;;7033:181::o;7219:177::-;7365:25;;;7353:2;7338:18;;7320:76::o;7401:184::-;7573:4;7561:17;;;;7543:36;;7531:2;7516:18;;7498:87::o;7590:128::-;;7661:1;7657:6;7654:1;7651:13;7648:2;;;7667:18;;:::i;:::-;-1:-1:-1;7703:9:1;;7638:80::o;7723:217::-;;7789:1;7779:2;;-1:-1:-1;;;7814:31:1;;7868:4;7865:1;7858:15;7896:4;7821:1;7886:15;7779:2;-1:-1:-1;7925:9:1;;7769:171::o;7945:168::-;;8051:1;8047;8043:6;8039:14;8036:1;8033:21;8028:1;8021:9;8014:17;8010:45;8007:2;;;8058:18;;:::i;:::-;-1:-1:-1;8098:9:1;;7997:116::o;8118:125::-;;8186:1;8183;8180:8;8177:2;;;8191:18;;:::i;:::-;-1:-1:-1;8228:9:1;;8167:76::o;8248:380::-;8333:1;8323:12;;8380:1;8370:12;;;8391:2;;8445:4;8437:6;8433:17;8423:27;;8391:2;8498;8490:6;8487:14;8467:18;8464:38;8461:2;;;8544:10;8539:3;8535:20;8532:1;8525:31;8579:4;8576:1;8569:15;8607:4;8604:1;8597:15;8461:2;;8303:325;;;:::o;8633:127::-;8694:10;8689:3;8685:20;8682:1;8675:31;8725:4;8722:1;8715:15;8749:4;8746:1;8739:15
Swarm Source
ipfs://2f3d8b39caf2b64ed5f5662f84385a99d864ff75f0195e1bbfd02c6d2ad2bd32
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.