Source Code
Overview
ETH Balance
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 2,214 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 28709317 | 4 hrs ago | IN | 0 ETH | 0.00000025 | ||||
| Approve | 27937415 | 12 days ago | IN | 0 ETH | 0.00000013 | ||||
| Approve | 27937372 | 12 days ago | IN | 0 ETH | 0.00000013 | ||||
| Approve | 27937336 | 12 days ago | IN | 0 ETH | 0.00000013 | ||||
| Approve | 27937323 | 12 days ago | IN | 0 ETH | 0.00000013 | ||||
| Approve | 27937062 | 12 days ago | IN | 0 ETH | 0.00000013 | ||||
| Transfer | 27808806 | 15 days ago | IN | 0 ETH | 0.00000009 | ||||
| Transfer | 27808805 | 15 days ago | IN | 0 ETH | 0.00000009 | ||||
| Transfer | 27803029 | 16 days ago | IN | 0 ETH | 0.00000006 | ||||
| Transfer | 27803008 | 16 days ago | IN | 0 ETH | 0.00000006 | ||||
| Transfer | 27803007 | 16 days ago | IN | 0 ETH | 0.00000006 | ||||
| Transfer | 27803006 | 16 days ago | IN | 0 ETH | 0.00000006 | ||||
| Transfer | 27803005 | 16 days ago | IN | 0 ETH | 0.00000006 | ||||
| Transfer | 27803005 | 16 days ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 27663664 | 19 days ago | IN | 0 ETH | 0.00000015 | ||||
| Approve | 27645297 | 19 days ago | IN | 0 ETH | 0.00000013 | ||||
| Approve | 27645277 | 19 days ago | IN | 0 ETH | 0.00000013 | ||||
| Approve | 27592022 | 20 days ago | IN | 0 ETH | 0.00000015 | ||||
| Approve | 27591416 | 21 days ago | IN | 0 ETH | 0.00000014 | ||||
| Approve | 27591188 | 21 days ago | IN | 0 ETH | 0.00000014 | ||||
| Approve | 27504225 | 22 days ago | IN | 0 ETH | 0.00000003 | ||||
| Approve | 27503881 | 23 days ago | IN | 0 ETH | 0.00000003 | ||||
| Approve | 27503783 | 23 days ago | IN | 0 ETH | 0.00000015 | ||||
| Approve | 27503738 | 23 days ago | IN | 0 ETH | 0.00000015 | ||||
| Approve | 27287863 | 26 days ago | IN | 0 ETH | 0.00000013 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
WASSIE
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/**
*Submitted for verification at scrollscan.com on 2024-03-08
*/
// SPDX-License-Identifier: MIT
// https://t.me/WassieScroll
// https://twitter.com/WassieScroll
// https://www.wassiescroll.pro/
pragma solidity ^0.8.0;
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;
}
}
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);
}
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);
}
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract ERC20 is Context, IERC20, IERC20Metadata {
using SafeMath for uint256;
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:
*
* - `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);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
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].add(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) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
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");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, 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 = _totalSupply.add(amount);
_balances[account] = _balances[account].add(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);
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(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 {}
}
contract WASSIE is ERC20 {
uint256 public constant TOTAL_SUPPLY = 10 * 10**9 * 10**18; // 10 billion tokens with 18 decimals
uint256 public maxWalletBalance = TOTAL_SUPPLY / 50; // 2% of total supply
mapping(address => bool) public exemptFromMax;
address public owner;
modifier onlyOwner() {
require(msg.sender == owner, "Caller is not the owner");
_;
}
constructor() ERC20("Wassie", "WASSIE") {
owner = msg.sender;
exemptFromMax[owner] = true;
_mint(owner, TOTAL_SUPPLY);
}
function updateOwner(address _owner) external onlyOwner {
owner = _owner;
exemptFromMax[owner] = true;
}
function updateMaxWallet(uint256 amount) external onlyOwner {
require(amount > maxWalletBalance, "New max must be greater than current max wallet balance");
maxWalletBalance = amount;
}
function setExemptFromMax(address account) external onlyOwner {
exemptFromMax[account] = true;
}
function _transfer(address sender, address recipient, uint256 amount) internal override {
if (sender != owner && !exemptFromMax[recipient]) {
require(balanceOf(recipient) + amount <= maxWalletBalance, "Recipient balance would exceeds max wallet balance");
}
super._transfer(sender, recipient, amount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"setExemptFromMax","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":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040526200001d60326b204fce5e3e2502611000000062000363565b6005553480156200002d57600080fd5b506040518060400160405280600681526020016557617373696560d01b8152506040518060400160405280600681526020016557415353494560d01b81525081600390805190602001906200008492919062000221565b5080516200009a90600490602084019062000221565b5050600780546001600160a01b03191633178082556001600160a01b039081166000908152600660205260409020805460ff191660011790559054620000ef9250166b204fce5e3e25026110000000620000f5565b620003c1565b6001600160a01b038216620001275760405162461bcd60e51b81526004016200011e90620002fe565b60405180910390fd5b6200013560008383620001e1565b6200015181600254620001e660201b620006191790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200018491839062000619620001e6821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d590859062000335565b60405180910390a35050565b505050565b600080620001f583856200033e565b9050838110156200021a5760405162461bcd60e51b81526004016200011e90620002c7565b9392505050565b8280546200022f9062000384565b90600052602060002090601f0160209004810192826200025357600085556200029e565b82601f106200026e57805160ff19168380011785556200029e565b828001600101855582156200029e579182015b828111156200029e57825182559160200191906001019062000281565b50620002ac929150620002b0565b5090565b5b80821115620002ac5760008155600101620002b1565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200035e57634e487b7160e01b81526011600452602481fd5b500190565b6000826200037f57634e487b7160e01b81526012600452602481fd5b500490565b6002810460018216806200039957607f821691505b60208210811415620003bb57634e487b7160e01b600052602260045260246000fd5b50919050565b610d9380620003d16000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063880cdc31116100a2578063a457c2d711610071578063a457c2d71461021c578063a9059cbb1461022f578063bbde77c114610242578063dd62ed3e1461024a578063fb60e0bc1461025d57610116565b8063880cdc31146101e45780638da5cb5b146101f7578063902d55a51461020c57806395d89b411461021457610116565b80631c499ab0116100e95780631c499ab01461018357806323b872dd14610196578063313ce567146101a957806339509351146101be57806370a08231146101d157610116565b806306fdde031461011b578063093feb5114610139578063095ea7b31461014e57806318160ddd1461016e575b600080fd5b610123610270565b60405161013091906109d5565b60405180910390f35b61014c6101473660046108ee565b610302565b005b61016161015c366004610975565b610359565b60405161013091906109ca565b610176610376565b6040516101309190610c53565b61014c61019136600461099e565b61037c565b6101616101a436600461093a565b6103cc565b6101b1610453565b6040516101309190610c5c565b6101616101cc366004610975565b610458565b6101766101df3660046108ee565b6104a6565b61014c6101f23660046108ee565b6104c5565b6101ff610529565b60405161013091906109b6565b610176610538565b610123610548565b61016161022a366004610975565b610557565b61016161023d366004610975565b6105bf565b6101766105d3565b610176610258366004610908565b6105d9565b61016161026b3660046108ee565b610604565b60606003805461027f90610c99565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610c99565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b6007546001600160a01b031633146103355760405162461bcd60e51b815260040161032c90610b1a565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b600061036d61036661064f565b8484610653565b50600192915050565b60025490565b6007546001600160a01b031633146103a65760405162461bcd60e51b815260040161032c90610b1a565b60055481116103c75760405162461bcd60e51b815260040161032c90610a28565b600555565b60006103d9848484610707565b610449846103e561064f565b61044485604051806060016040528060288152602001610d11602891396001600160a01b038a1660009081526001602052604081209061042361064f565b6001600160a01b031681526020810191909152604001600020549190610788565b610653565b5060019392505050565b601290565b600061036d61046561064f565b84610444856001600061047661064f565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610619565b6001600160a01b0381166000908152602081905260409020545b919050565b6007546001600160a01b031633146104ef5760405162461bcd60e51b815260040161032c90610b1a565b600780546001600160a01b0319166001600160a01b039283161790819055166000908152600660205260409020805460ff19166001179055565b6007546001600160a01b031681565b6b204fce5e3e2502611000000081565b60606004805461027f90610c99565b600061036d61056461064f565b8461044485604051806060016040528060258152602001610d39602591396001600061058e61064f565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610788565b600061036d6105cc61064f565b8484610707565b60055481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60066020526000908152604090205460ff1681565b6000806106268385610c6a565b9050838110156106485760405162461bcd60e51b815260040161032c90610b93565b9392505050565b3390565b6001600160a01b0383166106795760405162461bcd60e51b815260040161032c90610c0f565b6001600160a01b03821661069f5760405162461bcd60e51b815260040161032c90610b51565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fa908590610c53565b60405180910390a3505050565b6007546001600160a01b0384811691161480159061073e57506001600160a01b03821660009081526006602052604090205460ff16155b156107785760055481610750846104a6565b61075a9190610c6a565b11156107785760405162461bcd60e51b815260040161032c90610ac8565b6107838383836107c2565b505050565b600081848411156107ac5760405162461bcd60e51b815260040161032c91906109d5565b5060006107b98486610c82565b95945050505050565b6001600160a01b0383166107e85760405162461bcd60e51b815260040161032c90610bca565b6001600160a01b03821661080e5760405162461bcd60e51b815260040161032c90610a85565b610819838383610783565b61085681604051806060016040528060268152602001610ceb602691396001600160a01b0386166000908152602081905260409020549190610788565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546108859082610619565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106fa908590610c53565b80356001600160a01b03811681146104c057600080fd5b6000602082840312156108ff578081fd5b610648826108d7565b6000806040838503121561091a578081fd5b610923836108d7565b9150610931602084016108d7565b90509250929050565b60008060006060848603121561094e578081fd5b610957846108d7565b9250610965602085016108d7565b9150604084013590509250925092565b60008060408385031215610987578182fd5b610990836108d7565b946020939093013593505050565b6000602082840312156109af578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a01578581018301518582016040015282016109e5565b81811115610a125783604083870101525b50601f01601f1916929092016040019392505050565b60208082526037908201527f4e6577206d6178206d7573742062652067726561746572207468616e2063757260408201527f72656e74206d61782077616c6c65742062616c616e6365000000000000000000606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526032908201527f526563697069656e742062616c616e636520776f756c642065786365656473206040820152716d61782077616c6c65742062616c616e636560701b606082015260800190565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610c7d57610c7d610cd4565b500190565b600082821015610c9457610c94610cd4565b500390565b600281046001821680610cad57607f821691505b60208210811415610cce57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220af8c0aaa07bb32dd9f4251bd563523366a3c1e80f0034d48d770fae91887d66564736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063880cdc31116100a2578063a457c2d711610071578063a457c2d71461021c578063a9059cbb1461022f578063bbde77c114610242578063dd62ed3e1461024a578063fb60e0bc1461025d57610116565b8063880cdc31146101e45780638da5cb5b146101f7578063902d55a51461020c57806395d89b411461021457610116565b80631c499ab0116100e95780631c499ab01461018357806323b872dd14610196578063313ce567146101a957806339509351146101be57806370a08231146101d157610116565b806306fdde031461011b578063093feb5114610139578063095ea7b31461014e57806318160ddd1461016e575b600080fd5b610123610270565b60405161013091906109d5565b60405180910390f35b61014c6101473660046108ee565b610302565b005b61016161015c366004610975565b610359565b60405161013091906109ca565b610176610376565b6040516101309190610c53565b61014c61019136600461099e565b61037c565b6101616101a436600461093a565b6103cc565b6101b1610453565b6040516101309190610c5c565b6101616101cc366004610975565b610458565b6101766101df3660046108ee565b6104a6565b61014c6101f23660046108ee565b6104c5565b6101ff610529565b60405161013091906109b6565b610176610538565b610123610548565b61016161022a366004610975565b610557565b61016161023d366004610975565b6105bf565b6101766105d3565b610176610258366004610908565b6105d9565b61016161026b3660046108ee565b610604565b60606003805461027f90610c99565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610c99565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b6007546001600160a01b031633146103355760405162461bcd60e51b815260040161032c90610b1a565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b600061036d61036661064f565b8484610653565b50600192915050565b60025490565b6007546001600160a01b031633146103a65760405162461bcd60e51b815260040161032c90610b1a565b60055481116103c75760405162461bcd60e51b815260040161032c90610a28565b600555565b60006103d9848484610707565b610449846103e561064f565b61044485604051806060016040528060288152602001610d11602891396001600160a01b038a1660009081526001602052604081209061042361064f565b6001600160a01b031681526020810191909152604001600020549190610788565b610653565b5060019392505050565b601290565b600061036d61046561064f565b84610444856001600061047661064f565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610619565b6001600160a01b0381166000908152602081905260409020545b919050565b6007546001600160a01b031633146104ef5760405162461bcd60e51b815260040161032c90610b1a565b600780546001600160a01b0319166001600160a01b039283161790819055166000908152600660205260409020805460ff19166001179055565b6007546001600160a01b031681565b6b204fce5e3e2502611000000081565b60606004805461027f90610c99565b600061036d61056461064f565b8461044485604051806060016040528060258152602001610d39602591396001600061058e61064f565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610788565b600061036d6105cc61064f565b8484610707565b60055481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60066020526000908152604090205460ff1681565b6000806106268385610c6a565b9050838110156106485760405162461bcd60e51b815260040161032c90610b93565b9392505050565b3390565b6001600160a01b0383166106795760405162461bcd60e51b815260040161032c90610c0f565b6001600160a01b03821661069f5760405162461bcd60e51b815260040161032c90610b51565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fa908590610c53565b60405180910390a3505050565b6007546001600160a01b0384811691161480159061073e57506001600160a01b03821660009081526006602052604090205460ff16155b156107785760055481610750846104a6565b61075a9190610c6a565b11156107785760405162461bcd60e51b815260040161032c90610ac8565b6107838383836107c2565b505050565b600081848411156107ac5760405162461bcd60e51b815260040161032c91906109d5565b5060006107b98486610c82565b95945050505050565b6001600160a01b0383166107e85760405162461bcd60e51b815260040161032c90610bca565b6001600160a01b03821661080e5760405162461bcd60e51b815260040161032c90610a85565b610819838383610783565b61085681604051806060016040528060268152602001610ceb602691396001600160a01b0386166000908152602081905260409020549190610788565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546108859082610619565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106fa908590610c53565b80356001600160a01b03811681146104c057600080fd5b6000602082840312156108ff578081fd5b610648826108d7565b6000806040838503121561091a578081fd5b610923836108d7565b9150610931602084016108d7565b90509250929050565b60008060006060848603121561094e578081fd5b610957846108d7565b9250610965602085016108d7565b9150604084013590509250925092565b60008060408385031215610987578182fd5b610990836108d7565b946020939093013593505050565b6000602082840312156109af578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a01578581018301518582016040015282016109e5565b81811115610a125783604083870101525b50601f01601f1916929092016040019392505050565b60208082526037908201527f4e6577206d6178206d7573742062652067726561746572207468616e2063757260408201527f72656e74206d61782077616c6c65742062616c616e6365000000000000000000606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526032908201527f526563697069656e742062616c616e636520776f756c642065786365656473206040820152716d61782077616c6c65742062616c616e636560701b606082015260800190565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610c7d57610c7d610cd4565b500190565b600082821015610c9457610c94610cd4565b500390565b600281046001821680610cad57607f821691505b60208210811415610cce57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220af8c0aaa07bb32dd9f4251bd563523366a3c1e80f0034d48d770fae91887d66564736f6c63430008000033
Deployed Bytecode Sourcemap
17785:1393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9179:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18709:110;;;;;;:::i;:::-;;:::i;:::-;;11346:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10299:108::-;;;:::i;:::-;;;;;;;:::i;18493:208::-;;;;;;:::i;:::-;;:::i;11997:355::-;;;;;;:::i;:::-;;:::i;10141:93::-;;;:::i;:::-;;;;;;;:::i;12761:218::-;;;;;;:::i;:::-;;:::i;10470:127::-;;;;;;:::i;:::-;;:::i;18358:::-;;;;;;:::i;:::-;;:::i;18054:20::-;;;:::i;:::-;;;;;;;:::i;17817:58::-;;;:::i;9398:104::-;;;:::i;13482:269::-;;;;;;:::i;:::-;;:::i;10810:175::-;;;;;;:::i;:::-;;:::i;17920:51::-;;;:::i;11048:151::-;;;;;;:::i;:::-;;:::i;18002:45::-;;;;;;:::i;:::-;;:::i;9179:100::-;9233:13;9266:5;9259:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9179:100;:::o;18709:110::-;18137:5;;-1:-1:-1;;;;;18137:5:0;18123:10;:19;18115:55;;;;-1:-1:-1;;;18115:55:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;18782:22:0::1;;::::0;;;:13:::1;:22;::::0;;;;:29;;-1:-1:-1;;18782:29:0::1;18807:4;18782:29;::::0;;18709:110::o;11346:169::-;11429:4;11446:39;11455:12;:10;:12::i;:::-;11469:7;11478:6;11446:8;:39::i;:::-;-1:-1:-1;11503:4:0;11346:169;;;;:::o;10299:108::-;10387:12;;10299:108;:::o;18493:208::-;18137:5;;-1:-1:-1;;;;;18137:5:0;18123:10;:19;18115:55;;;;-1:-1:-1;;;18115:55:0;;;;;;;:::i;:::-;18581:16:::1;;18572:6;:25;18564:93;;;;-1:-1:-1::0;;;18564:93:0::1;;;;;;;:::i;:::-;18668:16;:25:::0;18493:208::o;11997:355::-;12137:4;12154:36;12164:6;12172:9;12183:6;12154:9;:36::i;:::-;12201:121;12210:6;12218:12;:10;:12::i;:::-;12232:89;12270:6;12232:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12232:19:0;;;;;;:11;:19;;;;;;12252:12;:10;:12::i;:::-;-1:-1:-1;;;;;12232:33:0;;;;;;;;;;;;-1:-1:-1;12232:33:0;;;:89;:37;:89::i;:::-;12201:8;:121::i;:::-;-1:-1:-1;12340:4:0;11997:355;;;;;:::o;10141:93::-;10224:2;10141:93;:::o;12761:218::-;12849:4;12866:83;12875:12;:10;:12::i;:::-;12889:7;12898:50;12937:10;12898:11;:25;12910:12;:10;:12::i;:::-;-1:-1:-1;;;;;12898:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;12898:25:0;;;:34;;;;;;;;;;;:38;:50::i;10470:127::-;-1:-1:-1;;;;;10571:18:0;;10544:7;10571:18;;;;;;;;;;;10470:127;;;;:::o;18358:::-;18137:5;;-1:-1:-1;;;;;18137:5:0;18123:10;:19;18115:55;;;;-1:-1:-1;;;18115:55:0;;;;;;;:::i;:::-;18425:5:::1;:14:::0;;-1:-1:-1;;;;;;18425:14:0::1;-1:-1:-1::0;;;;;18425:14:0;;::::1;;::::0;;;;18464:5:::1;-1:-1:-1::0;18450:20:0;;;:13:::1;:20;::::0;;;;:27;;-1:-1:-1;;18450:27:0::1;-1:-1:-1::0;18450:27:0::1;::::0;;18358:127::o;18054:20::-;;;-1:-1:-1;;;;;18054:20:0;;:::o;17817:58::-;17856:19;17817:58;:::o;9398:104::-;9454:13;9487:7;9480:14;;;;;:::i;13482:269::-;13575:4;13592:129;13601:12;:10;:12::i;:::-;13615:7;13624:96;13663:15;13624:96;;;;;;;;;;;;;;;;;:11;:25;13636:12;:10;:12::i;:::-;-1:-1:-1;;;;;13624:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;13624:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;10810:175::-;10896:4;10913:42;10923:12;:10;:12::i;:::-;10937:9;10948:6;10913:9;:42::i;17920:51::-;;;;:::o;11048:151::-;-1:-1:-1;;;;;11164:18:0;;;11137:7;11164:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11048:151::o;18002:45::-;;;;;;;;;;;;;;;:::o;3902:181::-;3960:7;;3992:5;3996:1;3992;:5;:::i;:::-;3980:17;;4021:1;4016;:6;;4008:46;;;;-1:-1:-1;;;4008:46:0;;;;;;;:::i;:::-;4074:1;3902:181;-1:-1:-1;;;3902:181:0:o;194:98::-;274:10;194:98;:::o;16668:380::-;-1:-1:-1;;;;;16804:19:0;;16796:68;;;;-1:-1:-1;;;16796:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16883:21:0;;16875:68;;;;-1:-1:-1;;;16875:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16956:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;17008:32;;;;;16986:6;;17008:32;:::i;:::-;;;;;;;;16668:380;;;:::o;18827:348::-;18940:5;;-1:-1:-1;;;;;18930:15:0;;;18940:5;;18930:15;;;;:44;;-1:-1:-1;;;;;;18950:24:0;;;;;;:13;:24;;;;;;;;18949:25;18930:44;18926:189;;;19032:16;;19022:6;18999:20;19009:9;18999;:20::i;:::-;:29;;;;:::i;:::-;:49;;18991:112;;;;-1:-1:-1;;;18991:112:0;;;;;;;:::i;:::-;19125:42;19141:6;19149:9;19160:6;19125:15;:42::i;:::-;18827:348;;;:::o;4805:192::-;4891:7;4927:12;4919:6;;;;4911:29;;;;-1:-1:-1;;;4911:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4951:9:0;4963:5;4967:1;4963;:5;:::i;:::-;4951:17;4805:192;-1:-1:-1;;;;;4805:192:0:o;14241:573::-;-1:-1:-1;;;;;14381:20:0;;14373:70;;;;-1:-1:-1;;;14373:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14462:23:0;;14454:71;;;;-1:-1:-1;;;14454:71:0;;;;;;;:::i;:::-;14538:47;14559:6;14567:9;14578:6;14538:20;:47::i;:::-;14618:71;14640:6;14618:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14618:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;14598:17:0;;;:9;:17;;;;;;;;;;;:91;;;;14723:20;;;;;;;:32;;14748:6;14723:24;:32::i;:::-;-1:-1:-1;;;;;14700:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;14771:35;;;;;;;;;;14799:6;;14771:35;:::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;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:419::-;2699:2;2681:21;;;2738:2;2718:18;;;2711:30;2777:34;2772:2;2757:18;;2750:62;2848:25;2843:2;2828:18;;2821:53;2906:3;2891:19;;2671:245::o;2921:399::-;3123:2;3105:21;;;3162:2;3142:18;;;3135:30;3201:34;3196:2;3181:18;;3174:62;-1:-1:-1;;;3267:2:1;3252:18;;3245:33;3310:3;3295:19;;3095:225::o;3325:414::-;3527:2;3509:21;;;3566:2;3546:18;;;3539:30;3605:34;3600:2;3585:18;;3578:62;-1:-1:-1;;;3671:2:1;3656:18;;3649:48;3729:3;3714:19;;3499:240::o;3744:347::-;3946:2;3928:21;;;3985:2;3965:18;;;3958:30;4024:25;4019:2;4004:18;;3997:53;4082:2;4067:18;;3918:173::o;4096:398::-;4298:2;4280:21;;;4337:2;4317:18;;;4310:30;4376:34;4371:2;4356:18;;4349:62;-1:-1:-1;;;4442:2:1;4427:18;;4420:32;4484:3;4469:19;;4270:224::o;4499:351::-;4701:2;4683:21;;;4740:2;4720:18;;;4713:30;4779:29;4774:2;4759:18;;4752:57;4841:2;4826:18;;4673:177::o;4855:401::-;5057:2;5039:21;;;5096:2;5076:18;;;5069:30;5135:34;5130:2;5115:18;;5108:62;-1:-1:-1;;;5201:2:1;5186:18;;5179:35;5246:3;5231:19;;5029:227::o;5261:400::-;5463:2;5445:21;;;5502:2;5482:18;;;5475:30;5541:34;5536:2;5521:18;;5514:62;-1:-1:-1;;;5607:2:1;5592:18;;5585:34;5651:3;5636:19;;5435:226::o;5666:177::-;5812:25;;;5800:2;5785:18;;5767:76::o;5848:184::-;6020:4;6008:17;;;;5990:36;;5978:2;5963:18;;5945:87::o;6037:128::-;;6108:1;6104:6;6101:1;6098:13;6095:2;;;6114:18;;:::i;:::-;-1:-1:-1;6150:9:1;;6085:80::o;6170:125::-;;6238:1;6235;6232:8;6229:2;;;6243:18;;:::i;:::-;-1:-1:-1;6280:9:1;;6219:76::o;6300:380::-;6385:1;6375:12;;6432:1;6422:12;;;6443:2;;6497:4;6489:6;6485:17;6475:27;;6443:2;6550;6542:6;6539:14;6519:18;6516:38;6513:2;;;6596:10;6591:3;6587:20;6584:1;6577:31;6631:4;6628:1;6621:15;6659:4;6656:1;6649:15;6513:2;;6355:325;;;:::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15
Swarm Source
ipfs://af8c0aaa07bb32dd9f4251bd563523366a3c1e80f0034d48d770fae91887d665
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
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.