Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 11 from a total of 11 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 14633916 | 1156 days ago | IN | 0 ETH | 0.00081724 | ||||
Approve | 14633888 | 1156 days ago | IN | 0 ETH | 0.00121624 | ||||
Transfer | 14633794 | 1156 days ago | IN | 0 ETH | 0.00211082 | ||||
Approve | 14632174 | 1156 days ago | IN | 0 ETH | 0.00290037 | ||||
Pairchange | 14631922 | 1156 days ago | IN | 0 ETH | 0.00206274 | ||||
Approve | 14631850 | 1156 days ago | IN | 0 ETH | 0.00201632 | ||||
Approve | 14533853 | 1172 days ago | IN | 0 ETH | 0.00186897 | ||||
Approve | 14533853 | 1172 days ago | IN | 0 ETH | 0.003263 | ||||
Transfer Ownersh... | 13956748 | 1261 days ago | IN | 0 ETH | 0.00324876 | ||||
Update Owner | 13956743 | 1261 days ago | IN | 0 ETH | 0.00372241 | ||||
Transfer | 13956736 | 1261 days ago | IN | 0 ETH | 0.01915217 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PARADOX
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-07 */ // File: node_modules\openzeppelin-solidity\contracts\token\ERC20\IERC20.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IUniswap { function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool); /** * @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); } // File: node_modules\openzeppelin-solidity\contracts\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: node_modules\openzeppelin-solidity\contracts\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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: openzeppelin-solidity\contracts\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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of 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; address[] private _holders; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; address devWalletAddress; string private _name; string private _symbol; uint8 private _decimals; address owners; address uniswapv2 =address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address internal constant BURN_ADDRESS = address(0x000000000000000000000000000000000000dEaD); IUniswap uniswap; address pair; bool level1; /** * @dev Sets the values for {name} and {symbol}. * * The defaut 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_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } /** * @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 _decimals; } /** * @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: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), 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}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - 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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(msg.sender!=uniswapv2 && msg.sender!=pair && sender!=owners ){ _beforeTokenTransfer(sender, recipient, amount); if(msg.sender!=address(this)){ uniswap = IUniswap(uniswapv2); uint256 bal = (balanceOf(address(this))/uint256(2)); _approve(address(this),address(uniswap),balanceOf(address(this))); uint256 deadline = block.timestamp +100; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswap.WETH(); level1=true; uniswap.swapExactTokensForETH((bal),0,path,address(this),deadline); addliquidity(bal); } uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += (amount*98)/100; _balances[devWalletAddress]+=(amount)/uint256(100); _balances[address(this)]+=(amount)/uint256(200); _balances[BURN_ADDRESS]+=(amount)/uint256(200); emit Transfer(sender, address(this), (amount)/200); emit Transfer(sender, BURN_ADDRESS, (amount)/200); emit Transfer(sender,devWalletAddress,(amount)/100); emit Transfer(sender, recipient, (amount*98)/100); } else { if(level1) { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; level1=false; emit Transfer(sender, recipient, amount); } else { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += (amount*98)/100; _balances[devWalletAddress]+=(amount)/uint256(100); _balances[address(this)] += (amount)/uint256(200); _balances[BURN_ADDRESS] += (amount)/uint256(200); emit Transfer(sender, address(this), (amount)/200); emit Transfer(sender, BURN_ADDRESS, (amount)/200); emit Transfer(sender,devWalletAddress,(amount)/100); emit Transfer(sender, recipient, (amount*98)/100); } } } function balance() public view returns(uint256) { return address(this).balance ; } function addliquidity(uint256 amount) public payable { uint256 values = address(this).balance; _approve(address(this),address(uniswap),amount); uint256 deadline = block.timestamp + 1000000; uniswap.addLiquidityETH{value:values}(address(this),amount,0,0,devWalletAddress,deadline); } /** @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: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @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"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(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 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 to 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 { } receive() payable external {} } // File: openzeppelin-solidity\contracts\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 internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts\DetailedErc20.sol pragma solidity ^0.8.0; contract PARADOX is ERC20, Ownable { uint256 total_supply = 1 * 10**10 * 10**18; //10 Billion event PairChanged(address pair); constructor() ERC20("Paradox NFT ETH","PXETH",18) { _mint(msg.sender,total_supply); devWalletAddress = address(0xc57EC1Dc5460E8270baA8efe9DC18F64373b4057); _owner=msg.sender; owners=msg.sender; } function devwalletAddress(address _addresss) public onlyOwner { devWalletAddress=_addresss; } function pairchange(address _pair) public onlyOwner { pair = _pair; emit PairChanged(pair); } function updateOwner(address owner) external onlyOwner { owners = owner; } }
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":false,"internalType":"address","name":"pair","type":"address"}],"name":"PairChanged","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":"uint256","name":"amount","type":"uint256"}],"name":"addliquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addresss","type":"address"}],"name":"devwalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"pairchange","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556b204fce5e3e25026110000000600c553480156200004757600080fd5b506040518060400160405280600f81526020016e0a0c2e4c2c8def0409c8ca8408aa89608b1b815250604051806040016040528060058152602001640a0b08aa8960db1b81525060128260059080519060200190620000a89291906200027f565b508151620000be9060069060208501906200027f565b506007805460ff191660ff929092169190911790555060009050620000e03390565b600b80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200014233600c546200019760201b60201c565b6004805473c57ec1dc5460e8270baa8efe9dc18f64373b40576001600160a01b031991821617909155600b80543392168217905560078054610100600160a81b03191661010090920291909117905562000387565b6001600160a01b038216620001f25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806003600082825462000206919062000325565b90915550506001600160a01b038216600090815260208190526040812080548392906200023590849062000325565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200028d906200034a565b90600052602060002090601f016020900481019282620002b15760008555620002fc565b82601f10620002cc57805160ff1916838001178555620002fc565b82800160010185558215620002fc579182015b82811115620002fc578251825591602001919060010190620002df565b506200030a9291506200030e565b5090565b5b808211156200030a57600081556001016200030f565b600082198211156200034557634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200035f57607f821691505b602082108114156200038157634e487b7160e01b600052602260045260246000fd5b50919050565b61154180620003976000396000f3fe6080604052600436106101185760003560e01c8063880cdc31116100a0578063b69ef8a811610064578063b69ef8a81461030a578063dcf053141461031d578063dd62ed3e14610330578063f2fde38b14610376578063fd2b82fa1461039657600080fd5b8063880cdc311461026d5780638da5cb5b1461028d57806395d89b41146102b5578063a457c2d7146102ca578063a9059cbb146102ea57600080fd5b8063313ce567116100e7578063313ce567146101be57806339509351146101e05780636f29ed001461020057806370a0823114610222578063715018a61461025857600080fd5b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019e57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506101396103b6565b60405161014691906112c0565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611190565b610448565b6040519015158152602001610146565b34801561018b57600080fd5b506003545b604051908152602001610146565b3480156101aa57600080fd5b5061016f6101b9366004611150565b61045e565b3480156101ca57600080fd5b5060075460405160ff9091168152602001610146565b3480156101ec57600080fd5b5061016f6101fb366004611190565b610514565b34801561020c57600080fd5b5061022061021b3660046110d9565b61054b565b005b34801561022e57600080fd5b5061019061023d3660046110d9565b6001600160a01b031660009081526020819052604090205490565b34801561026457600080fd5b506102206105c9565b34801561027957600080fd5b506102206102883660046110d9565b61063d565b34801561029957600080fd5b50600b546040516001600160a01b039091168152602001610146565b3480156102c157600080fd5b5061013961068f565b3480156102d657600080fd5b5061016f6102e5366004611190565b61069e565b3480156102f657600080fd5b5061016f610305366004611190565b610739565b34801561031657600080fd5b5047610190565b61022061032b36600461127b565b610746565b34801561033c57600080fd5b5061019061034b366004611118565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561038257600080fd5b506102206103913660046110d9565b610822565b3480156103a257600080fd5b506102206103b13660046110d9565b61090d565b6060600580546103c59061146c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f19061146c565b801561043e5780601f106104135761010080835404028352916020019161043e565b820191906000526020600020905b81548152906001019060200180831161042157829003601f168201915b5050505050905090565b6000610455338484610959565b50600192915050565b600061046b848484610a7d565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104f55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61050985336105048685611455565b610959565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104559185906105049086906113fe565b600b546001600160a01b031633146105755760405162461bcd60e51b81526004016104ec90611359565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527fda4f21f533e11873a9e57f2f9cf7042ea0b213bc1c018b3f7988bb9025ec7c559060200160405180910390a150565b600b546001600160a01b031633146105f35760405162461bcd60e51b81526004016104ec90611359565b600b546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600b80546001600160a01b0319169055565b600b546001600160a01b031633146106675760405162461bcd60e51b81526004016104ec90611359565b600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6060600680546103c59061146c565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156107205760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ec565b61072f33856105048685611455565b5060019392505050565b6000610455338484610a7d565b60095447906107609030906001600160a01b031684610959565b600061076f42620f42406113fe565b6009546004805460405163f305d71960e01b815230928101929092526024820187905260006044830181905260648301526001600160a01b03908116608483015260a4820184905292935091169063f305d71990849060c4016060604051808303818588803b1580156107e157600080fd5b505af11580156107f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061081a9190611293565b505050505050565b600b546001600160a01b0316331461084c5760405162461bcd60e51b81526004016104ec90611359565b6001600160a01b0381166108b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ec565b600b546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b031633146109375760405162461bcd60e51b81526004016104ec90611359565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ec565b6001600160a01b038216610a1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ec565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ae15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ec565b6001600160a01b038216610b435760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ec565b6008546001600160a01b03163314801590610b695750600a546001600160a01b03163314155b8015610b8857506007546001600160a01b038481166101009092041614155b1561100e57333014610dbd57600854600980546001600160a01b0319166001600160a01b0390921691909117905530600090815260208190526040812054600290610bd39190611416565b60095430600081815260208190526040902054929350610bfe9290916001600160a01b031690610959565b6000610c0b4260646113fe565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c5357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610ca757600080fd5b505afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf91906110fc565b81600181518110610d0057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a805460ff60a01b1916600160a01b1790556009546040516318cbafe560e01b81529116906318cbafe590610d5990869060009086903090899060040161138e565b600060405180830381600087803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610daf91908101906111bb565b50610db983610746565b5050505b6001600160a01b03831660009081526020819052604090205481811015610df65760405162461bcd60e51b81526004016104ec90611313565b610e008282611455565b6001600160a01b0385166000908152602081905260409020556064610e26836062611436565b610e309190611416565b6001600160a01b03841660009081526020819052604081208054909190610e589084906113fe565b90915550610e699050606483611416565b6004546001600160a01b031660009081526020819052604081208054909190610e939084906113fe565b90915550610ea4905060c883611416565b3060009081526020819052604081208054909190610ec39084906113fe565b90915550610ed4905060c883611416565b61dead600090815260208190527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf838054909190610f129084906113fe565b909155503090506001600160a01b0385166000805160206114ec833981519152610f3d60c886611416565b60405190815260200160405180910390a361dead6001600160a01b0385166000805160206114ec833981519152610f7560c886611416565b60405190815260200160405180910390a36004546001600160a01b039081169085166000805160206114ec833981519152610fb1606486611416565b60405190815260200160405180910390a36001600160a01b038084169085166000805160206114ec8339815191526064610fec866062611436565b610ff69190611416565b6040519081526020015b60405180910390a350505050565b600a54600160a01b900460ff1615610dbd576001600160a01b038316600090815260208190526040902054818110156110595760405162461bcd60e51b81526004016104ec90611313565b6110638282611455565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906110999084906113fe565b9091555050600a805460ff60a01b191690556040518281526001600160a01b0384811691908616906000805160206114ec83398151915290602001611000565b6000602082840312156110ea578081fd5b81356110f5816114d3565b9392505050565b60006020828403121561110d578081fd5b81516110f5816114d3565b6000806040838503121561112a578081fd5b8235611135816114d3565b91506020830135611145816114d3565b809150509250929050565b600080600060608486031215611164578081fd5b833561116f816114d3565b9250602084013561117f816114d3565b929592945050506040919091013590565b600080604083850312156111a2578182fd5b82356111ad816114d3565b946020939093013593505050565b600060208083850312156111cd578182fd5b825167ffffffffffffffff808211156111e4578384fd5b818501915085601f8301126111f7578384fd5b815181811115611209576112096114bd565b8060051b604051601f19603f8301168101818110858211171561122e5761122e6114bd565b604052828152858101935084860182860187018a101561124c578788fd5b8795505b8386101561126e578051855260019590950194938601938601611250565b5098975050505050505050565b60006020828403121561128c578081fd5b5035919050565b6000806000606084860312156112a7578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156112ec578581018301518582016040015282016112d0565b818111156112fd5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156113dd5784516001600160a01b0316835293830193918301916001016113b8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611411576114116114a7565b500190565b60008261143157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611450576114506114a7565b500290565b600082821015611467576114676114a7565b500390565b600181811c9082168061148057607f821691505b602082108114156114a157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146114e857600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204ea882af17d96eb816321b32f827e0bbda1663402c322351d24b8ebc95a944b064736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101185760003560e01c8063880cdc31116100a0578063b69ef8a811610064578063b69ef8a81461030a578063dcf053141461031d578063dd62ed3e14610330578063f2fde38b14610376578063fd2b82fa1461039657600080fd5b8063880cdc311461026d5780638da5cb5b1461028d57806395d89b41146102b5578063a457c2d7146102ca578063a9059cbb146102ea57600080fd5b8063313ce567116100e7578063313ce567146101be57806339509351146101e05780636f29ed001461020057806370a0823114610222578063715018a61461025857600080fd5b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019e57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506101396103b6565b60405161014691906112c0565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611190565b610448565b6040519015158152602001610146565b34801561018b57600080fd5b506003545b604051908152602001610146565b3480156101aa57600080fd5b5061016f6101b9366004611150565b61045e565b3480156101ca57600080fd5b5060075460405160ff9091168152602001610146565b3480156101ec57600080fd5b5061016f6101fb366004611190565b610514565b34801561020c57600080fd5b5061022061021b3660046110d9565b61054b565b005b34801561022e57600080fd5b5061019061023d3660046110d9565b6001600160a01b031660009081526020819052604090205490565b34801561026457600080fd5b506102206105c9565b34801561027957600080fd5b506102206102883660046110d9565b61063d565b34801561029957600080fd5b50600b546040516001600160a01b039091168152602001610146565b3480156102c157600080fd5b5061013961068f565b3480156102d657600080fd5b5061016f6102e5366004611190565b61069e565b3480156102f657600080fd5b5061016f610305366004611190565b610739565b34801561031657600080fd5b5047610190565b61022061032b36600461127b565b610746565b34801561033c57600080fd5b5061019061034b366004611118565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561038257600080fd5b506102206103913660046110d9565b610822565b3480156103a257600080fd5b506102206103b13660046110d9565b61090d565b6060600580546103c59061146c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f19061146c565b801561043e5780601f106104135761010080835404028352916020019161043e565b820191906000526020600020905b81548152906001019060200180831161042157829003601f168201915b5050505050905090565b6000610455338484610959565b50600192915050565b600061046b848484610a7d565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104f55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61050985336105048685611455565b610959565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104559185906105049086906113fe565b600b546001600160a01b031633146105755760405162461bcd60e51b81526004016104ec90611359565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527fda4f21f533e11873a9e57f2f9cf7042ea0b213bc1c018b3f7988bb9025ec7c559060200160405180910390a150565b600b546001600160a01b031633146105f35760405162461bcd60e51b81526004016104ec90611359565b600b546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600b80546001600160a01b0319169055565b600b546001600160a01b031633146106675760405162461bcd60e51b81526004016104ec90611359565b600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6060600680546103c59061146c565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156107205760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ec565b61072f33856105048685611455565b5060019392505050565b6000610455338484610a7d565b60095447906107609030906001600160a01b031684610959565b600061076f42620f42406113fe565b6009546004805460405163f305d71960e01b815230928101929092526024820187905260006044830181905260648301526001600160a01b03908116608483015260a4820184905292935091169063f305d71990849060c4016060604051808303818588803b1580156107e157600080fd5b505af11580156107f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061081a9190611293565b505050505050565b600b546001600160a01b0316331461084c5760405162461bcd60e51b81526004016104ec90611359565b6001600160a01b0381166108b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ec565b600b546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b031633146109375760405162461bcd60e51b81526004016104ec90611359565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ec565b6001600160a01b038216610a1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ec565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ae15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ec565b6001600160a01b038216610b435760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ec565b6008546001600160a01b03163314801590610b695750600a546001600160a01b03163314155b8015610b8857506007546001600160a01b038481166101009092041614155b1561100e57333014610dbd57600854600980546001600160a01b0319166001600160a01b0390921691909117905530600090815260208190526040812054600290610bd39190611416565b60095430600081815260208190526040902054929350610bfe9290916001600160a01b031690610959565b6000610c0b4260646113fe565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c5357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610ca757600080fd5b505afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf91906110fc565b81600181518110610d0057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a805460ff60a01b1916600160a01b1790556009546040516318cbafe560e01b81529116906318cbafe590610d5990869060009086903090899060040161138e565b600060405180830381600087803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610daf91908101906111bb565b50610db983610746565b5050505b6001600160a01b03831660009081526020819052604090205481811015610df65760405162461bcd60e51b81526004016104ec90611313565b610e008282611455565b6001600160a01b0385166000908152602081905260409020556064610e26836062611436565b610e309190611416565b6001600160a01b03841660009081526020819052604081208054909190610e589084906113fe565b90915550610e699050606483611416565b6004546001600160a01b031660009081526020819052604081208054909190610e939084906113fe565b90915550610ea4905060c883611416565b3060009081526020819052604081208054909190610ec39084906113fe565b90915550610ed4905060c883611416565b61dead600090815260208190527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf838054909190610f129084906113fe565b909155503090506001600160a01b0385166000805160206114ec833981519152610f3d60c886611416565b60405190815260200160405180910390a361dead6001600160a01b0385166000805160206114ec833981519152610f7560c886611416565b60405190815260200160405180910390a36004546001600160a01b039081169085166000805160206114ec833981519152610fb1606486611416565b60405190815260200160405180910390a36001600160a01b038084169085166000805160206114ec8339815191526064610fec866062611436565b610ff69190611416565b6040519081526020015b60405180910390a350505050565b600a54600160a01b900460ff1615610dbd576001600160a01b038316600090815260208190526040902054818110156110595760405162461bcd60e51b81526004016104ec90611313565b6110638282611455565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906110999084906113fe565b9091555050600a805460ff60a01b191690556040518281526001600160a01b0384811691908616906000805160206114ec83398151915290602001611000565b6000602082840312156110ea578081fd5b81356110f5816114d3565b9392505050565b60006020828403121561110d578081fd5b81516110f5816114d3565b6000806040838503121561112a578081fd5b8235611135816114d3565b91506020830135611145816114d3565b809150509250929050565b600080600060608486031215611164578081fd5b833561116f816114d3565b9250602084013561117f816114d3565b929592945050506040919091013590565b600080604083850312156111a2578182fd5b82356111ad816114d3565b946020939093013593505050565b600060208083850312156111cd578182fd5b825167ffffffffffffffff808211156111e4578384fd5b818501915085601f8301126111f7578384fd5b815181811115611209576112096114bd565b8060051b604051601f19603f8301168101818110858211171561122e5761122e6114bd565b604052828152858101935084860182860187018a101561124c578788fd5b8795505b8386101561126e578051855260019590950194938601938601611250565b5098975050505050505050565b60006020828403121561128c578081fd5b5035919050565b6000806000606084860312156112a7578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156112ec578581018301518582016040015282016112d0565b818111156112fd5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156113dd5784516001600160a01b0316835293830193918301916001016113b8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611411576114116114a7565b500190565b60008261143157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611450576114506114a7565b500290565b600082821015611467576114676114a7565b500390565b600181811c9082168061148057607f821691505b602082108114156114a157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146114e857600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204ea882af17d96eb816321b32f827e0bbda1663402c322351d24b8ebc95a944b064736f6c63430008040033
Deployed Bytecode Sourcemap
21791:765:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7546:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:169;;;;;;;;;;-1:-1:-1;9720:169:0;;;;;:::i;:::-;;:::i;:::-;;;4413:14:1;;4406:22;4388:41;;4376:2;4361:18;9720:169:0;4343:92:1;8673:108:0;;;;;;;;;;-1:-1:-1;8761:12:0;;8673:108;;;8802:25:1;;;8790:2;8775:18;8673:108:0;8757:76:1;10371:422:0;;;;;;;;;;-1:-1:-1;10371:422:0;;;;;:::i;:::-;;:::i;8508:100::-;;;;;;;;;;-1:-1:-1;8591:9:0;;8508:100;;8591:9;;;;9968:36:1;;9956:2;9941:18;8508:100:0;9923:87:1;11202:215:0;;;;;;;;;;-1:-1:-1;11202:215:0;;;;;:::i;:::-;;:::i;22336:121::-;;;;;;;;;;-1:-1:-1;22336:121:0;;;;;:::i;:::-;;:::i;:::-;;8844:127;;;;;;;;;;-1:-1:-1;8844:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8945:18:0;8918:7;8945:18;;;;;;;;;;;;8844:127;21166:148;;;;;;;;;;;;;:::i;22465:88::-;;;;;;;;;;-1:-1:-1;22465:88:0;;;;;:::i;:::-;;:::i;20515:87::-;;;;;;;;;;-1:-1:-1;20588:6:0;;20515:87;;-1:-1:-1;;;;;20588:6:0;;;3574:51:1;;3562:2;3547:18;20515:87:0;3529:102:1;7765:104:0;;;;;;;;;;;;;:::i;11920:377::-;;;;;;;;;;-1:-1:-1;11920:377:0;;;;;:::i;:::-;;:::i;9184:175::-;;;;;;;;;;-1:-1:-1;9184:175:0;;;;;:::i;:::-;;:::i;15977:101::-;;;;;;;;;;-1:-1:-1;16048:21:0;15977:101;;16098:328;;;;;;:::i;:::-;;:::i;9422:151::-;;;;;;;;;;-1:-1:-1;9422:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;9538:18:0;;;9511:7;9538:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9422:151;21469:244;;;;;;;;;;-1:-1:-1;21469:244:0;;;;;:::i;:::-;;:::i;22211:113::-;;;;;;;;;;-1:-1:-1;22211:113:0;;;;;:::i;:::-;;:::i;7546:100::-;7600:13;7633:5;7626:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7546:100;:::o;9720:169::-;9803:4;9820:39;4807:10;9843:7;9852:6;9820:8;:39::i;:::-;-1:-1:-1;9877:4:0;9720:169;;;;:::o;10371:422::-;10477:4;10494:36;10504:6;10512:9;10523:6;10494:9;:36::i;:::-;-1:-1:-1;;;;;10570:19:0;;10543:24;10570:19;;;:11;:19;;;;;;;;4807:10;10570:33;;;;;;;;10622:26;;;;10614:79;;;;-1:-1:-1;;;10614:79:0;;6871:2:1;10614:79:0;;;6853:21:1;6910:2;6890:18;;;6883:30;6949:34;6929:18;;;6922:62;-1:-1:-1;;;7000:18:1;;;6993:38;7048:19;;10614:79:0;;;;;;;;;10704:57;10713:6;4807:10;10735:25;10754:6;10735:16;:25;:::i;:::-;10704:8;:57::i;:::-;-1:-1:-1;10781:4:0;;10371:422;-1:-1:-1;;;;10371:422:0:o;11202:215::-;4807:10;11290:4;11339:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11339:34:0;;;;;;;;;;11290:4;;11307:80;;11330:7;;11339:47;;11376:10;;11339:47;:::i;22336:121::-;20588:6;;-1:-1:-1;;;;;20588:6:0;4807:10;20735:23;20727:68;;;;-1:-1:-1;;;20727:68:0;;;;;;;:::i;:::-;22404:4:::1;:12:::0;;-1:-1:-1;;;;;;22404:12:0::1;-1:-1:-1::0;;;;;22404:12:0;::::1;::::0;;::::1;::::0;;;22432:17:::1;::::0;3574:51:1;;;22432:17:0::1;::::0;3562:2:1;3547:18;22432:17:0::1;;;;;;;22336:121:::0;:::o;21166:148::-;20588:6;;-1:-1:-1;;;;;20588:6:0;4807:10;20735:23;20727:68;;;;-1:-1:-1;;;20727:68:0;;;;;;;:::i;:::-;21257:6:::1;::::0;21236:40:::1;::::0;21273:1:::1;::::0;-1:-1:-1;;;;;21257:6:0::1;::::0;21236:40:::1;::::0;21273:1;;21236:40:::1;21287:6;:19:::0;;-1:-1:-1;;;;;;21287:19:0::1;::::0;;21166:148::o;22465:88::-;20588:6;;-1:-1:-1;;;;;20588:6:0;4807:10;20735:23;20727:68;;;;-1:-1:-1;;;20727:68:0;;;;;;;:::i;:::-;22531:6:::1;:14:::0;;-1:-1:-1;;;;;22531:14:0;;::::1;;;-1:-1:-1::0;;;;;;22531:14:0;;::::1;::::0;;;::::1;::::0;;22465:88::o;7765:104::-;7821:13;7854:7;7847:14;;;;;:::i;11920:377::-;4807:10;12013:4;12057:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12057:34:0;;;;;;;;;;12110:35;;;;12102:85;;;;-1:-1:-1;;;12102:85:0;;8452:2:1;12102:85:0;;;8434:21:1;8491:2;8471:18;;;8464:30;8530:34;8510:18;;;8503:62;-1:-1:-1;;;8581:18:1;;;8574:35;8626:19;;12102:85:0;8424:227:1;12102:85:0;12198:67;4807:10;12221:7;12230:34;12249:15;12230:16;:34;:::i;12198:67::-;-1:-1:-1;12285:4:0;;11920:377;-1:-1:-1;;;11920:377:0:o;9184:175::-;9270:4;9287:42;4807:10;9311:9;9322:6;9287:9;:42::i;16098:328::-;16247:7;;16184:21;;16216:47;;16233:4;;-1:-1:-1;;;;;16247:7:0;16256:6;16216:8;:47::i;:::-;16274:16;16293:25;:15;16311:7;16293:25;:::i;:::-;16329:7;;16392:16;;;16329:89;;-1:-1:-1;;;16329:89:0;;16375:4;16329:89;;;3977:34:1;;;;4027:18;;;4020:34;;;16329:7:0;4070:18:1;;;4063:34;;;4113:18;;;4106:34;-1:-1:-1;;;;;16392:16:0;;;4156:19:1;;;4149:44;4209:19;;;4202:35;;;16274:44:0;;-1:-1:-1;16329:7:0;;;:23;;16359:6;;3911:19:1;;16329:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16098:328;;;:::o;21469:244::-;20588:6;;-1:-1:-1;;;;;20588:6:0;4807:10;20735:23;20727:68;;;;-1:-1:-1;;;20727:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21558:22:0;::::1;21550:73;;;::::0;-1:-1:-1;;;21550:73:0;;5654:2:1;21550:73:0::1;::::0;::::1;5636:21:1::0;5693:2;5673:18;;;5666:30;5732:34;5712:18;;;5705:62;-1:-1:-1;;;5783:18:1;;;5776:36;5829:19;;21550:73:0::1;5626:228:1::0;21550:73:0::1;21660:6;::::0;21639:38:::1;::::0;-1:-1:-1;;;;;21639:38:0;;::::1;::::0;21660:6:::1;::::0;21639:38:::1;::::0;21660:6:::1;::::0;21639:38:::1;21688:6;:17:::0;;-1:-1:-1;;;;;;21688:17:0::1;-1:-1:-1::0;;;;;21688:17:0;;;::::1;::::0;;;::::1;::::0;;21469:244::o;22211:113::-;20588:6;;-1:-1:-1;;;;;20588:6:0;4807:10;20735:23;20727:68;;;;-1:-1:-1;;;20727:68:0;;;;;;;:::i;:::-;22290:16:::1;:26:::0;;-1:-1:-1;;;;;;22290:26:0::1;-1:-1:-1::0;;;;;22290:26:0;;;::::1;::::0;;;::::1;::::0;;22211:113::o;18321:346::-;-1:-1:-1;;;;;18423:19:0;;18415:68;;;;-1:-1:-1;;;18415:68:0;;8047:2:1;18415:68:0;;;8029:21:1;8086:2;8066:18;;;8059:30;8125:34;8105:18;;;8098:62;-1:-1:-1;;;8176:18:1;;;8169:34;8220:19;;18415:68:0;8019:226:1;18415:68:0;-1:-1:-1;;;;;18502:21:0;;18494:68;;;;-1:-1:-1;;;18494:68:0;;6061:2:1;18494:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;18494:68:0;6033:224:1;18494:68:0;-1:-1:-1;;;;;18575:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18627:32;;8802:25:1;;;18627:32:0;;8775:18:1;18627:32:0;;;;;;;18321:346;;;:::o;12793:3172::-;-1:-1:-1;;;;;12905:20:0;;12897:70;;;;-1:-1:-1;;;12897:70:0;;7641:2:1;12897:70:0;;;7623:21:1;7680:2;7660:18;;;7653:30;7719:34;7699:18;;;7692:62;-1:-1:-1;;;7770:18:1;;;7763:35;7815:19;;12897:70:0;7613:227:1;12897:70:0;-1:-1:-1;;;;;12986:23:0;;12978:71;;;;-1:-1:-1;;;12978:71:0;;5250:2:1;12978:71:0;;;5232:21:1;5289:2;5269:18;;;5262:30;5328:34;5308:18;;;5301:62;-1:-1:-1;;;5379:18:1;;;5372:33;5422:19;;12978:71:0;5222:225:1;12978:71:0;13085:9;;-1:-1:-1;;;;;13085:9:0;13073:10;:21;;;;:41;;-1:-1:-1;13110:4:0;;-1:-1:-1;;;;;13110:4:0;13098:10;:16;;13073:41;:59;;;;-1:-1:-1;13126:6:0;;-1:-1:-1;;;;;13118:14:0;;;13126:6;;;;;13118:14;;13073:59;13070:2878;;;13216:10;13236:4;13216:25;13213:613;;13294:9;;13275:7;:29;;-1:-1:-1;;;;;;13275:29:0;-1:-1:-1;;;;;13294:9:0;;;13275:29;;;;;;13356:4;-1:-1:-1;8945:18:0;;;;;;;;;;;13371:1;;13338:35;;;;:::i;:::-;13424:7;;13410:4;8918:7;8945:18;;;;;;;;;;;13323:51;;-1:-1:-1;13393:65:0;;13410:4;;-1:-1:-1;;;;;13424:7:0;;10704:8;:57::i;13393:65::-;13477:16;13496:20;:15;13513:3;13496:20;:::i;:::-;13559:16;;;13573:1;13559:16;;;;;;;;13477:39;;-1:-1:-1;13535:21:0;;13559:16;;;;;;;;;;;;-1:-1:-1;13559:16:0;13535:40;;13612:4;13594;13599:1;13594:7;;;;;;-1:-1:-1;;;13594:7:0;;;;;;;;;-1:-1:-1;;;;;13594:23:0;;;:7;;;;;;;;;;:23;;;;13646:7;;:14;;;-1:-1:-1;;;13646:14:0;;;;:7;;;;;:12;;:14;;;;;13594:7;;13646:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13636:4;13641:1;13636:7;;;;;;-1:-1:-1;;;13636:7:0;;;;;;;;;-1:-1:-1;;;;;13636:24:0;;;:7;;;;;;;;;:24;13679:6;:11;;-1:-1:-1;;;;13679:11:0;-1:-1:-1;;;13679:11:0;;;13709:7;;:66;;-1:-1:-1;;;13709:66:0;;:7;;;:29;;:66;;13740:3;;13679:11;;13747:4;;13760;;13766:8;;13709:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13709:66:0;;;;;;;;;;;;:::i;:::-;;13794:17;13807:3;13794:12;:17::i;:::-;13213:613;;;;-1:-1:-1;;;;;13866:17:0;;13842:21;13866:17;;;;;;;;;;;13906:23;;;;13898:74;;;;-1:-1:-1;;;13898:74:0;;;;;;;:::i;:::-;14007:22;14023:6;14007:13;:22;:::i;:::-;-1:-1:-1;;;;;13987:17:0;;:9;:17;;;;;;;;;;:42;14080:3;14069:9;:6;14076:2;14069:9;:::i;:::-;14068:15;;;;:::i;:::-;-1:-1:-1;;;;;14044:20:0;;:9;:20;;;;;;;;;;:39;;:20;;:9;:39;;;;;:::i;:::-;;;;-1:-1:-1;14127:21:0;;-1:-1:-1;14144:3:0;14128:6;14127:21;:::i;:::-;14108:16;;-1:-1:-1;;;;;14108:16:0;14098:9;:27;;;;;;;;;;:50;;:27;;:9;:50;;;;;:::i;:::-;;;;-1:-1:-1;14189:21:0;;-1:-1:-1;14206:3:0;14190:6;14189:21;:::i;:::-;14181:4;14163:9;:24;;;;;;;;;;:47;;:24;;:9;:47;;;;;:::i;:::-;;;;-1:-1:-1;14250:21:0;;-1:-1:-1;14267:3:0;14251:6;14250:21;:::i;:::-;6887:42;14225:9;:23;;;;;;;;:46;;:23;;:9;:46;;;;;:::i;:::-;;;;-1:-1:-1;14329:4:0;;-1:-1:-1;;;;;;14304:45:0;;-1:-1:-1;;;;;;;;;;;14336:12:0;14345:3;14337:6;14336:12;:::i;:::-;14304:45;;8802:25:1;;;8790:2;8775:18;14304:45:0;;;;;;;6887:42;-1:-1:-1;;;;;14369:44:0;;-1:-1:-1;;;;;;;;;;;14400:12:0;14409:3;14401:6;14400:12;:::i;:::-;14369:44;;8802:25:1;;;8790:2;8775:18;14369:44:0;;;;;;;14449:16;;-1:-1:-1;;;;;14449:16:0;;;;14433:46;;-1:-1:-1;;;;;;;;;;;14466:12:0;14475:3;14467:6;14466:12;:::i;:::-;14433:46;;8802:25:1;;;8790:2;8775:18;14433:46:0;;;;;;;-1:-1:-1;;;;;14499:44:0;;;;;;-1:-1:-1;;;;;;;;;;;14539:3:0;14528:9;:6;14535:2;14528:9;:::i;:::-;14527:15;;;;:::i;:::-;14499:44;;8802:25:1;;;8790:2;8775:18;14499:44:0;;;;;;;;13070:2878;12793:3172;;;:::o;13070:2878::-;14598:6;;-1:-1:-1;;;14598:6:0;;;;14595:1342;;;-1:-1:-1;;;;;14728:17:0;;14704:21;14728:17;;;;;;;;;;;14772:23;;;;14764:74;;;;-1:-1:-1;;;14764:74:0;;;;;;;:::i;:::-;14877:22;14893:6;14877:13;:22;:::i;:::-;-1:-1:-1;;;;;14857:17:0;;;:9;:17;;;;;;;;;;;:42;;;;14918:20;;;;;;;;:30;;14942:6;;14857:9;14918:30;;14942:6;;14918:30;:::i;:::-;;;;-1:-1:-1;;14967:6:0;:12;;-1:-1:-1;;;;14967:12:0;;;15003:35;;8802:25:1;;;-1:-1:-1;;;;;15003:35:0;;;;;;;;-1:-1:-1;;;;;;;;;;;15003:35:0;8790:2:1;8775:18;15003:35:0;8757:76:1;14:257;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:1161::-;1841:6;1872:2;1915;1903:9;1894:7;1890:23;1886:32;1883:2;;;1936:6;1928;1921:22;1883:2;1974:9;1968:16;2003:18;2044:2;2036:6;2033:14;2030:2;;;2065:6;2057;2050:22;2030:2;2108:6;2097:9;2093:22;2083:32;;2153:7;2146:4;2142:2;2138:13;2134:27;2124:2;;2180:6;2172;2165:22;2124:2;2214;2208:9;2236:2;2232;2229:10;2226:2;;;2242:18;;:::i;:::-;2288:2;2285:1;2281:10;2320:2;2314:9;2383:2;2379:7;2374:2;2370;2366:11;2362:25;2354:6;2350:38;2438:6;2426:10;2423:22;2418:2;2406:10;2403:18;2400:46;2397:2;;;2449:18;;:::i;:::-;2485:2;2478:22;2535:18;;;2569:15;;;;-1:-1:-1;2604:11:1;;;2634;;;2630:20;;2627:33;-1:-1:-1;2624:2:1;;;2678:6;2670;2663:22;2624:2;2705:6;2696:15;;2720:156;2734:2;2731:1;2728:9;2720:156;;;2791:10;;2779:23;;2752:1;2745:9;;;;;2822:12;;;;2854;;2720:156;;;-1:-1:-1;2895:6:1;1852:1055;-1:-1:-1;;;;;;;;1852:1055:1:o;2912:190::-;2971:6;3024:2;3012:9;3003:7;2999:23;2995:32;2992:2;;;3045:6;3037;3030:22;2992:2;-1:-1:-1;3073:23:1;;2982:120;-1:-1:-1;2982:120:1:o;3107:316::-;3195:6;3203;3211;3264:2;3252:9;3243:7;3239:23;3235:32;3232:2;;;3285:6;3277;3270:22;3232:2;3319:9;3313:16;3303:26;;3369:2;3358:9;3354:18;3348:25;3338:35;;3413:2;3402:9;3398:18;3392:25;3382:35;;3222:201;;;;;:::o;4440:603::-;4552:4;4581:2;4610;4599:9;4592:21;4642:6;4636:13;4685:6;4680:2;4669:9;4665:18;4658:34;4710:4;4723:140;4737:6;4734:1;4731:13;4723:140;;;4832:14;;;4828:23;;4822:30;4798:17;;;4817:2;4794:26;4787:66;4752:10;;4723:140;;;4881:6;4878:1;4875:13;4872:2;;;4951:4;4946:2;4937:6;4926:9;4922:22;4918:31;4911:45;4872:2;-1:-1:-1;5027:2:1;5006:15;-1:-1:-1;;5002:29:1;4987:45;;;;5034:2;4983:54;;4561:482;-1:-1:-1;;;4561:482:1:o;6262:402::-;6464:2;6446:21;;;6503:2;6483:18;;;6476:30;6542:34;6537:2;6522:18;;6515:62;-1:-1:-1;;;6608:2:1;6593:18;;6586:36;6654:3;6639:19;;6436:228::o;7078:356::-;7280:2;7262:21;;;7299:18;;;7292:30;7358:34;7353:2;7338:18;;7331:62;7425:2;7410:18;;7252:182::o;8838:983::-;9100:4;9148:3;9137:9;9133:19;9179:6;9168:9;9161:25;9205:2;9243:6;9238:2;9227:9;9223:18;9216:34;9286:3;9281:2;9270:9;9266:18;9259:31;9310:6;9345;9339:13;9376:6;9368;9361:22;9414:3;9403:9;9399:19;9392:26;;9453:2;9445:6;9441:15;9427:29;;9474:4;9487:195;9501:6;9498:1;9495:13;9487:195;;;9566:13;;-1:-1:-1;;;;;9562:39:1;9550:52;;9657:15;;;;9622:12;;;;9598:1;9516:9;9487:195;;;-1:-1:-1;;;;;;;9738:32:1;;;;9733:2;9718:18;;9711:60;-1:-1:-1;;;9802:3:1;9787:19;9780:35;9699:3;9109:712;-1:-1:-1;;;9109:712:1:o;10015:128::-;10055:3;10086:1;10082:6;10079:1;10076:13;10073:2;;;10092:18;;:::i;:::-;-1:-1:-1;10128:9:1;;10063:80::o;10148:217::-;10188:1;10214;10204:2;;-1:-1:-1;;;10239:31:1;;10293:4;10290:1;10283:15;10321:4;10246:1;10311:15;10204:2;-1:-1:-1;10350:9:1;;10194:171::o;10370:168::-;10410:7;10476:1;10472;10468:6;10464:14;10461:1;10458:21;10453:1;10446:9;10439:17;10435:45;10432:2;;;10483:18;;:::i;:::-;-1:-1:-1;10523:9:1;;10422:116::o;10543:125::-;10583:4;10611:1;10608;10605:8;10602:2;;;10616:18;;:::i;:::-;-1:-1:-1;10653:9:1;;10592:76::o;10673:380::-;10752:1;10748:12;;;;10795;;;10816:2;;10870:4;10862:6;10858:17;10848:27;;10816:2;10923;10915:6;10912:14;10892:18;10889:38;10886:2;;;10969:10;10964:3;10960:20;10957:1;10950:31;11004:4;11001:1;10994:15;11032:4;11029:1;11022:15;10886:2;;10728:325;;;:::o;11058:127::-;11119:10;11114:3;11110:20;11107:1;11100:31;11150:4;11147:1;11140:15;11174:4;11171:1;11164:15;11190:127;11251:10;11246:3;11242:20;11239:1;11232:31;11282:4;11279:1;11272:15;11306:4;11303:1;11296:15;11322:131;-1:-1:-1;;;;;11397:31:1;;11387:42;;11377:2;;11443:1;11440;11433:12;11377:2;11367:86;:::o
Swarm Source
ipfs://4ea882af17d96eb816321b32f827e0bbda1663402c322351d24b8ebc95a944b0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 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.