ERC-20
Source Code
Overview
Max Total Supply
100,000,000 BDOGE
Holders
115
Transfers
-
3
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Source Code Verified (Exact Match)
Contract Name:
BattleDogeToken
Compiler Version
v0.8.33+commit.64118f21
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2026-01-06
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.33;
/*
BattleDogeToken.sol (single file, no imports)
Purpose:
- Minimal, fixed-supply ERC-20 token for the BattleDoge ecosystem.
- Uses OpenZeppelin Contracts v5.4.0 ERC20 logic embedded directly (no imports).
Key Properties:
- Name: Battle Doge
- Symbol: BDOGE
- Decimals: 18 (OpenZeppelin default)
- Total supply: 100,000,000 * 1e18 (fully minted once, in the constructor)
- Minting: one-time mint in constructor to deployer (msg.sender)
- No Permit, no Ownable/admin surface, no token-level sales/airdrop logic
- "Burn" is done by sink-transfer at the application layer (token does not implement burn())
- Reject accidental ETH transfers via receive()/fallback()
NOTE: no contract can fully prevent forced ETH via SELFDESTRUCT; this only blocks normal sends.
Security stance:
- Keep ERC-20 surface area small and familiar.
- No privileged roles or upgrade hooks.
*/
/**
* @dev Custom error used to revert if someone tries to send ETH to this token contract.
* Using a custom error is cheaper than revert strings.
*/
error ETHNotAccepted();
/* ============ OpenZeppelin Contracts (v5.4.0) — embedded ============ */
/* Source basis: OpenZeppelin Contracts v5.4.0 ERC20 + dependencies. */
/**
* @dev Provides information about the current execution context (msg.sender, msg.data).
* In meta-transaction systems, msg.sender may differ from the account paying gas.
* Here we keep it standard, but inheriting this matches OpenZeppelin's structure.
*/
abstract contract Context {
/// @dev Returns the sender of the transaction (or the relayer in meta-tx contexts).
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
/// @dev Returns the full calldata of the transaction.
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
/**
* @dev Used by some advanced meta-transaction patterns in OZ to strip context suffixes.
* Default is zero; retained for compatibility with OZ's internal patterns.
*/
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
/**
* @dev Interface of the ERC-20 standard (EIP-20).
* This is the minimal external surface: transfer, approve, allowance, transferFrom, balances, totalSupply.
*/
interface IERC20 {
/// @dev Emitted when `value` tokens move from `from` to `to`.
event Transfer(address indexed from, address indexed to, uint256 value);
/// @dev Emitted when `owner` sets `spender` allowance to `value`.
event Approval(address indexed owner, address indexed spender, uint256 value);
/// @dev Total token supply in existence.
function totalSupply() external view returns (uint256);
/// @dev Balance of a given account.
function balanceOf(address account) external view returns (uint256);
/// @dev Transfer tokens from caller to `to`.
function transfer(address to, uint256 value) external returns (bool);
/// @dev Allowance `spender` has from `owner`.
function allowance(address owner, address spender) external view returns (uint256);
/// @dev Approve `spender` to spend `value` from caller.
function approve(address spender, uint256 value) external returns (bool);
/// @dev Transfer tokens from `from` to `to` using allowance mechanism.
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
/**
* @dev Optional metadata functions from the ERC-20 standard (name/symbol/decimals).
*/
interface IERC20Metadata is IERC20 {
/// @dev Human-readable token name.
function name() external view returns (string memory);
/// @dev Human-readable token symbol.
function symbol() external view returns (string memory);
/// @dev Number of decimals used to get the user representation (commonly 18).
function decimals() external view returns (uint8);
}
/**
* @dev ERC-6093 custom errors for ERC-20 tokens (the ERC-20 subset only).
* These are standardized error names used by OpenZeppelin v5.x for clear revert reasons.
*/
interface IERC20Errors {
/// @dev Thrown when an account tries to transfer/burn more tokens than it owns.
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
/// @dev Thrown when a transfer/burn is initiated from the zero address.
error ERC20InvalidSender(address sender);
/// @dev Thrown when a transfer/mint is directed to the zero address.
error ERC20InvalidReceiver(address receiver);
/// @dev Thrown when allowance is insufficient for transferFrom / spendAllowance.
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
/// @dev Thrown when approve is attempted from the zero address.
error ERC20InvalidApprover(address approver);
/// @dev Thrown when approve is attempted to the zero address.
error ERC20InvalidSpender(address spender);
}
/**
* @dev OpenZeppelin ERC20 implementation (v5.4.0).
*
* Notes:
* - v5.x centralizes all balance/supply changes in `_update(from, to, value)`:
* - mint: from = address(0)
* - burn: to = address(0)
* - transfer: neither is zero
* - This contract intentionally does NOT include EIP-2612 Permit or Ownable.
*/
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
/// @dev Mapping from account to balance.
mapping(address account => uint256) private _balances;
/// @dev Mapping owner => (spender => allowance).
mapping(address account => mapping(address spender => uint256)) private _allowances;
/// @dev Total token supply tracked by the contract.
uint256 private _totalSupply;
/// @dev Token name and symbol (immutable after construction).
string private _name;
string private _symbol;
/**
* @dev Sets token name and symbol at deployment time.
* The derived token contract calls this via `ERC20("Name","SYM")`.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/// @inheritdoc IERC20Metadata
function name() public view virtual returns (string memory) {
return _name;
}
/// @inheritdoc IERC20Metadata
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @inheritdoc IERC20Metadata
*/
/*
* OpenZeppelin default is 18, matching the common ERC-20 convention.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/// @inheritdoc IERC20
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/// @inheritdoc IERC20
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @inheritdoc IERC20
*/
/*
* Moves `value` tokens from caller to `to`.
* Returns true on success per ERC-20 convention.
*/
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
/// @inheritdoc IERC20
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @inheritdoc IERC20
*/
/*
* Sets allowance for `spender` to spend caller's tokens.
*/
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
/**
* @inheritdoc IERC20
*/
/*
* Spends allowance from `from` by caller (spender), then transfers to `to`.
*/
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
/**
* @dev Internal transfer primitive.
* Reverts if `from` or `to` is the zero address.
* Actual balance/supply bookkeeping is performed in `_update`.
*/
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
/**
* @dev Central accounting hook for transfers/mints/burns.
*
* Cases:
* - Mint: from == address(0), to != address(0)
* - Burn: from != address(0), to == address(0)
* - Transfer: from != address(0), to != address(0)
*
* Emits a Transfer event in all cases (including mint/burn), per ERC-20 conventions.
*/
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Mint path: increase total supply
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
// Transfer/Burn path: decrease `from` balance
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
// Burn path: reduce total supply
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
// Transfer/Mint path: increase `to` balance
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
// ERC-20 canonical event for all token movements.
emit Transfer(from, to, value);
}
/**
* @dev Creates `value` tokens and assigns them to `account`.
* Reverts if `account` is the zero address.
*/
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
/**
* @dev Destroys `value` tokens from `account`, reducing total supply.
* Reverts if `account` is the zero address.
*/
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
/**
* @dev Internal approve with default behavior: emits Approval event.
*/
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
/**
* @dev Internal approve primitive.
* - `emitEvent` is used by `_spendAllowance` to avoid emitting Approval on transferFrom,
* saving gas and matching OZ v5 behavior.
*/
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
/**
* @dev Spends `value` from the allowance of `owner` toward `spender`.
*
* Special case:
* - If allowance is `type(uint256).max`, it is treated as "infinite" and not decreased.
*/
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance < type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
// Update allowance without emitting Approval to save gas.
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
/* ======================= BattleDogeToken ======================= */
/**
* @title BattleDogeToken
* @dev Fixed-supply ERC-20 token for the BattleDoge ecosystem.
*
* Deployment notes:
* - Deployer address receives the full supply.
* - There are no administrative functions after deployment.
* - ETH sends are rejected (receive/fallback revert).
*/
contract BattleDogeToken is ERC20 {
/**
* @dev Total supply constant (100M tokens with 18 decimals).
* Declared as a compile-time constant so it cannot be changed.
*/
uint256 public constant TOTAL_SUPPLY = 100_000_000 * 1e18;
/**
* @dev Initializes the token name/symbol and mints the full supply to the deployer.
*/
constructor() ERC20("Battle Doge", "BDOGE") {
_mint(_msgSender(), TOTAL_SUPPLY);
}
/**
* @dev Reject direct ETH transfers.
* Users should not send ETH to an ERC-20 token contract.
*/
receive() external payable {
revert ETHNotAccepted();
}
/**
* @dev Reject unknown calls and ETH transfers to non-existent functions.
*/
fallback() external payable {
revert ETHNotAccepted();
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ETHNotAccepted","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"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":"value","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561000f575f5ffd5b506040518060400160405280600b81526020017f426174746c6520446f67650000000000000000000000000000000000000000008152506040518060400160405280600581526020017f42444f4745000000000000000000000000000000000000000000000000000000815250816003908161008b91906105be565b50806004908161009b91906105be565b5050506100c66100af6100cb60201b60201c565b6a52b7d2dcc80cd2e40000006100d260201b60201c565b6107a2565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610142575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161013991906106cc565b60405180910390fd5b6101535f838361015760201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036101a7578060025f82825461019b9190610712565b92505081905550610275565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610230578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161022793929190610754565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102bc578060025f8282540392505081905550610306565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103639190610789565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103eb57607f821691505b6020821081036103fe576103fd6103a7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610425565b61046a8683610425565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104ae6104a96104a484610482565b61048b565b610482565b9050919050565b5f819050919050565b6104c783610494565b6104db6104d3826104b5565b848454610431565b825550505050565b5f5f905090565b6104f26104e3565b6104fd8184846104be565b505050565b5f5b82811015610523576105185f8284016104ea565b600181019050610504565b505050565b601f82111561057657828211156105755761054281610404565b61054b83610416565b61055485610416565b6020861015610561575f90505b80830161057082840382610502565b505050505b5b505050565b5f82821c905092915050565b5f6105965f198460080261057b565b1980831691505092915050565b5f6105ae8383610587565b9150826002028217905092915050565b6105c782610370565b67ffffffffffffffff8111156105e0576105df61037a565b5b6105ea82546103d4565b6105f5828285610528565b5f60209050601f831160018114610626575f8415610614578287015190505b61061e85826105a3565b865550610685565b601f19841661063486610404565b5f5b8281101561065b57848901518255600182019150602085019450602081019050610636565b868310156106785784890151610674601f891682610587565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106b68261068d565b9050919050565b6106c6816106ac565b82525050565b5f6020820190506106df5f8301846106bd565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61071c82610482565b915061072783610482565b925082820190508082111561073f5761073e6106e5565b5b92915050565b61074e81610482565b82525050565b5f6060820190506107675f8301866106bd565b6107746020830185610745565b6107816040830184610745565b949350505050565b5f60208201905061079c5f830184610745565b92915050565b610eef806107af5f395ff3fe608060405260043610610094575f3560e01c806370a082311161005857806370a08231146101f3578063902d55a51461022f57806395d89b4114610259578063a9059cbb14610283578063dd62ed3e146102bf576100cb565b806306fdde03146100fd578063095ea7b31461012757806318160ddd1461016357806323b872dd1461018d578063313ce567146101c9576100cb565b366100cb576040517f1231ae4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1231ae4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610108575f5ffd5b506101116102fb565b60405161011e9190610b68565b60405180910390f35b348015610132575f5ffd5b5061014d60048036038101906101489190610c19565b61038b565b60405161015a9190610c71565b60405180910390f35b34801561016e575f5ffd5b506101776103ad565b6040516101849190610c99565b60405180910390f35b348015610198575f5ffd5b506101b360048036038101906101ae9190610cb2565b6103b6565b6040516101c09190610c71565b60405180910390f35b3480156101d4575f5ffd5b506101dd6103e4565b6040516101ea9190610d1d565b60405180910390f35b3480156101fe575f5ffd5b5061021960048036038101906102149190610d36565b6103ec565b6040516102269190610c99565b60405180910390f35b34801561023a575f5ffd5b50610243610431565b6040516102509190610c99565b60405180910390f35b348015610264575f5ffd5b5061026d610440565b60405161027a9190610b68565b60405180910390f35b34801561028e575f5ffd5b506102a960048036038101906102a49190610c19565b6104d0565b6040516102b69190610c71565b60405180910390f35b3480156102ca575f5ffd5b506102e560048036038101906102e09190610d61565b6104f2565b6040516102f29190610c99565b60405180910390f35b60606003805461030a90610dcc565b80601f016020809104026020016040519081016040528092919081815260200182805461033690610dcc565b80156103815780601f1061035857610100808354040283529160200191610381565b820191905f5260205f20905b81548152906001019060200180831161036457829003601f168201915b5050505050905090565b5f5f610395610574565b90506103a281858561057b565b600191505092915050565b5f600254905090565b5f5f6103c0610574565b90506103cd85828561058d565b6103d8858585610620565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6a52b7d2dcc80cd2e400000081565b60606004805461044f90610dcc565b80601f016020809104026020016040519081016040528092919081815260200182805461047b90610dcc565b80156104c65780601f1061049d576101008083540402835291602001916104c6565b820191905f5260205f20905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b5f5f6104da610574565b90506104e7818585610620565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105888383836001610710565b505050565b5f61059884846104f2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561061a578181101561060b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161060293929190610e0b565b60405180910390fd5b61061984848484035f610710565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610690575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106879190610e40565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610700575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106f79190610e40565b60405180910390fd5b61070b8383836108df565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610780575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107779190610e40565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107f0575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107e79190610e40565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156108d9578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108d09190610c99565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361092f578060025f8282546109239190610e86565b925050819055506109fd565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109b8578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109af93929190610e0b565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a44578060025f8282540392505081905550610a8e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aeb9190610c99565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b3a82610af8565b610b448185610b02565b9350610b54818560208601610b12565b610b5d81610b20565b840191505092915050565b5f6020820190508181035f830152610b808184610b30565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bb582610b8c565b9050919050565b610bc581610bab565b8114610bcf575f5ffd5b50565b5f81359050610be081610bbc565b92915050565b5f819050919050565b610bf881610be6565b8114610c02575f5ffd5b50565b5f81359050610c1381610bef565b92915050565b5f5f60408385031215610c2f57610c2e610b88565b5b5f610c3c85828601610bd2565b9250506020610c4d85828601610c05565b9150509250929050565b5f8115159050919050565b610c6b81610c57565b82525050565b5f602082019050610c845f830184610c62565b92915050565b610c9381610be6565b82525050565b5f602082019050610cac5f830184610c8a565b92915050565b5f5f5f60608486031215610cc957610cc8610b88565b5b5f610cd686828701610bd2565b9350506020610ce786828701610bd2565b9250506040610cf886828701610c05565b9150509250925092565b5f60ff82169050919050565b610d1781610d02565b82525050565b5f602082019050610d305f830184610d0e565b92915050565b5f60208284031215610d4b57610d4a610b88565b5b5f610d5884828501610bd2565b91505092915050565b5f5f60408385031215610d7757610d76610b88565b5b5f610d8485828601610bd2565b9250506020610d9585828601610bd2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610de357607f821691505b602082108103610df657610df5610d9f565b5b50919050565b610e0581610bab565b82525050565b5f606082019050610e1e5f830186610dfc565b610e2b6020830185610c8a565b610e386040830184610c8a565b949350505050565b5f602082019050610e535f830184610dfc565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e9082610be6565b9150610e9b83610be6565b9250828201905080821115610eb357610eb2610e59565b5b9291505056fea264697066735822122060332ca42d782e6e16a0c9e8b456a894a0e09fcc1733e10fbb1bf2c7a4cd402864736f6c63430008210033
Deployed Bytecode
0x608060405260043610610094575f3560e01c806370a082311161005857806370a08231146101f3578063902d55a51461022f57806395d89b4114610259578063a9059cbb14610283578063dd62ed3e146102bf576100cb565b806306fdde03146100fd578063095ea7b31461012757806318160ddd1461016357806323b872dd1461018d578063313ce567146101c9576100cb565b366100cb576040517f1231ae4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1231ae4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610108575f5ffd5b506101116102fb565b60405161011e9190610b68565b60405180910390f35b348015610132575f5ffd5b5061014d60048036038101906101489190610c19565b61038b565b60405161015a9190610c71565b60405180910390f35b34801561016e575f5ffd5b506101776103ad565b6040516101849190610c99565b60405180910390f35b348015610198575f5ffd5b506101b360048036038101906101ae9190610cb2565b6103b6565b6040516101c09190610c71565b60405180910390f35b3480156101d4575f5ffd5b506101dd6103e4565b6040516101ea9190610d1d565b60405180910390f35b3480156101fe575f5ffd5b5061021960048036038101906102149190610d36565b6103ec565b6040516102269190610c99565b60405180910390f35b34801561023a575f5ffd5b50610243610431565b6040516102509190610c99565b60405180910390f35b348015610264575f5ffd5b5061026d610440565b60405161027a9190610b68565b60405180910390f35b34801561028e575f5ffd5b506102a960048036038101906102a49190610c19565b6104d0565b6040516102b69190610c71565b60405180910390f35b3480156102ca575f5ffd5b506102e560048036038101906102e09190610d61565b6104f2565b6040516102f29190610c99565b60405180910390f35b60606003805461030a90610dcc565b80601f016020809104026020016040519081016040528092919081815260200182805461033690610dcc565b80156103815780601f1061035857610100808354040283529160200191610381565b820191905f5260205f20905b81548152906001019060200180831161036457829003601f168201915b5050505050905090565b5f5f610395610574565b90506103a281858561057b565b600191505092915050565b5f600254905090565b5f5f6103c0610574565b90506103cd85828561058d565b6103d8858585610620565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6a52b7d2dcc80cd2e400000081565b60606004805461044f90610dcc565b80601f016020809104026020016040519081016040528092919081815260200182805461047b90610dcc565b80156104c65780601f1061049d576101008083540402835291602001916104c6565b820191905f5260205f20905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b5f5f6104da610574565b90506104e7818585610620565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105888383836001610710565b505050565b5f61059884846104f2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561061a578181101561060b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161060293929190610e0b565b60405180910390fd5b61061984848484035f610710565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610690575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106879190610e40565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610700575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106f79190610e40565b60405180910390fd5b61070b8383836108df565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610780575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107779190610e40565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107f0575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107e79190610e40565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156108d9578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108d09190610c99565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361092f578060025f8282546109239190610e86565b925050819055506109fd565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109b8578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109af93929190610e0b565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a44578060025f8282540392505081905550610a8e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aeb9190610c99565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b3a82610af8565b610b448185610b02565b9350610b54818560208601610b12565b610b5d81610b20565b840191505092915050565b5f6020820190508181035f830152610b808184610b30565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bb582610b8c565b9050919050565b610bc581610bab565b8114610bcf575f5ffd5b50565b5f81359050610be081610bbc565b92915050565b5f819050919050565b610bf881610be6565b8114610c02575f5ffd5b50565b5f81359050610c1381610bef565b92915050565b5f5f60408385031215610c2f57610c2e610b88565b5b5f610c3c85828601610bd2565b9250506020610c4d85828601610c05565b9150509250929050565b5f8115159050919050565b610c6b81610c57565b82525050565b5f602082019050610c845f830184610c62565b92915050565b610c9381610be6565b82525050565b5f602082019050610cac5f830184610c8a565b92915050565b5f5f5f60608486031215610cc957610cc8610b88565b5b5f610cd686828701610bd2565b9350506020610ce786828701610bd2565b9250506040610cf886828701610c05565b9150509250925092565b5f60ff82169050919050565b610d1781610d02565b82525050565b5f602082019050610d305f830184610d0e565b92915050565b5f60208284031215610d4b57610d4a610b88565b5b5f610d5884828501610bd2565b91505092915050565b5f5f60408385031215610d7757610d76610b88565b5b5f610d8485828601610bd2565b9250506020610d9585828601610bd2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610de357607f821691505b602082108103610df657610df5610d9f565b5b50919050565b610e0581610bab565b82525050565b5f606082019050610e1e5f830186610dfc565b610e2b6020830185610c8a565b610e386040830184610c8a565b949350505050565b5f602082019050610e535f830184610dfc565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e9082610be6565b9150610e9b83610be6565b9250828201905080821115610eb357610eb2610e59565b5b9291505056fea264697066735822122060332ca42d782e6e16a0c9e8b456a894a0e09fcc1733e10fbb1bf2c7a4cd402864736f6c63430008210033
Deployed Bytecode Sourcemap
13469:843:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14110:16;;;;;;;;;;;;;;13469:843;14285:16;;;;;;;;;;;;;;6394:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7821:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6898:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8164:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6778:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7033:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13664:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6529:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7327:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7545:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:91;6439:13;6472:5;6465:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6394:91;:::o;7821:190::-;7894:4;7911:13;7927:12;:10;:12::i;:::-;7911:28;;7950:31;7959:5;7966:7;7975:5;7950:8;:31::i;:::-;7999:4;7992:11;;;7821:190;;;;:::o;6898:99::-;6950:7;6977:12;;6970:19;;6898:99;:::o;8164:249::-;8251:4;8268:15;8286:12;:10;:12::i;:::-;8268:30;;8309:37;8325:4;8331:7;8340:5;8309:15;:37::i;:::-;8357:26;8367:4;8373:2;8377:5;8357:9;:26::i;:::-;8401:4;8394:11;;;8164:249;;;;;:::o;6778:84::-;6827:5;6852:2;6845:9;;6778:84;:::o;7033:118::-;7098:7;7125:9;:18;7135:7;7125:18;;;;;;;;;;;;;;;;7118:25;;7033:118;;;:::o;13664:57::-;13703:18;13664:57;:::o;6529:95::-;6576:13;6609:7;6602:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6529:95;:::o;7327:182::-;7396:4;7413:13;7429:12;:10;:12::i;:::-;7413:28;;7452:27;7462:5;7469:2;7473:5;7452:9;:27::i;:::-;7497:4;7490:11;;;7327:182;;;;:::o;7545:142::-;7625:7;7652:11;:18;7664:5;7652:18;;;;;;;;;;;;;;;:27;7671:7;7652:27;;;;;;;;;;;;;;;;7645:34;;7545:142;;;;:::o;1754:98::-;1807:7;1834:10;1827:17;;1754:98;:::o;11517:130::-;11602:37;11611:5;11618:7;11627:5;11634:4;11602:8;:37::i;:::-;11517:130;;;:::o;12532:562::-;12632:24;12659:25;12669:5;12676:7;12659:9;:25::i;:::-;12632:52;;12718:17;12699:16;:36;12695:392;;;12775:5;12756:16;:24;12752:132;;;12835:7;12844:16;12862:5;12808:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;12752:132;13003:57;13012:5;13019:7;13047:5;13028:16;:24;13054:5;13003:8;:57::i;:::-;12695:392;12621:473;12532:562;;;:::o;8605:308::-;8705:1;8689:18;;:4;:18;;;8685:88;;8758:1;8731:30;;;;;;;;;;;:::i;:::-;;;;;;;;8685:88;8801:1;8787:16;;:2;:16;;;8783:88;;8856:1;8827:32;;;;;;;;;;;:::i;:::-;;;;;;;;8783:88;8881:24;8889:4;8895:2;8899:5;8881:7;:24::i;:::-;8605:308;;;:::o;11859:447::-;11989:1;11972:19;;:5;:19;;;11968:91;;12044:1;12015:32;;;;;;;;;;;:::i;:::-;;;;;;;;11968:91;12092:1;12073:21;;:7;:21;;;12069:92;;12146:1;12118:31;;;;;;;;;;;:::i;:::-;;;;;;;;12069:92;12203:5;12173:11;:18;12185:5;12173:18;;;;;;;;;;;;;;;:27;12192:7;12173:27;;;;;;;;;;;;;;;:35;;;;12225:9;12221:78;;;12272:7;12256:31;;12265:5;12256:31;;;12281:5;12256:31;;;;;;:::i;:::-;;;;;;;;12221:78;11859:447;;;;:::o;9288:1409::-;9394:1;9378:18;;:4;:18;;;9374:661;;9581:5;9565:12;;:21;;;;;;;:::i;:::-;;;;;;;;9374:661;;;9679:19;9701:9;:15;9711:4;9701:15;;;;;;;;;;;;;;;;9679:37;;9749:5;9735:11;:19;9731:117;;;9807:4;9813:11;9826:5;9782:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;9731:117;10003:5;9989:11;:19;9971:9;:15;9981:4;9971:15;;;;;;;;;;;;;;;:37;;;;9604:431;9374:661;10065:1;10051:16;;:2;:16;;;10047:540;;10280:5;10264:12;;:21;;;;;;;;;;;10047:540;;;10555:5;10538:9;:13;10548:2;10538:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;10047:540;10679:2;10664:25;;10673:4;10664:25;;;10683:5;10664:25;;;;;;:::i;:::-;;;;;;;;9288:1409;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:180::-;5609:77;5606:1;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5791:6;5828:1;5822:4;5818:12;5808:22;;5875:1;5869:4;5865:12;5896:18;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5977:84;5798:269;5747:320;;;:::o;6073:118::-;6160:24;6178:5;6160:24;:::i;:::-;6155:3;6148:37;6073:118;;:::o;6197:442::-;6346:4;6384:2;6373:9;6369:18;6361:26;;6397:71;6465:1;6454:9;6450:17;6441:6;6397:71;:::i;:::-;6478:72;6546:2;6535:9;6531:18;6522:6;6478:72;:::i;:::-;6560;6628:2;6617:9;6613:18;6604:6;6560:72;:::i;:::-;6197:442;;;;;;:::o;6645:222::-;6738:4;6776:2;6765:9;6761:18;6753:26;;6789:71;6857:1;6846:9;6842:17;6833:6;6789:71;:::i;:::-;6645:222;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o
Swarm Source
ipfs://60332ca42d782e6e16a0c9e8b456a894a0e09fcc1733e10fbb1bf2c7a4cd4028
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)