ERC-20
DeFi
Overview
Max Total Supply
181,520,856.067461042834578832 MIM
Holders
6,058 ( 0.017%)
Market
Price
$1.00 @ 0.000287 ETH (+0.23%)
Onchain Market Cap
$180,998,345.97
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000007194044314 MIMValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MagicInternetMoneyV1
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-05-25 */ // SPDX-License-Identifier: MIXED // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; /// @notice A library for performing overflow-/underflow-safe math, /// updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math). library BoringMath { function add(uint256 a, uint256 b) internal pure returns (uint256 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint256 a, uint256 b) internal pure returns (uint256 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { require(b == 0 || (c = a * b) / b == a, "BoringMath: Mul Overflow"); } function to128(uint256 a) internal pure returns (uint128 c) { require(a <= uint128(-1), "BoringMath: uint128 Overflow"); c = uint128(a); } function to64(uint256 a) internal pure returns (uint64 c) { require(a <= uint64(-1), "BoringMath: uint64 Overflow"); c = uint64(a); } function to32(uint256 a) internal pure returns (uint32 c) { require(a <= uint32(-1), "BoringMath: uint32 Overflow"); c = uint32(a); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint128. library BoringMath128 { function add(uint128 a, uint128 b) internal pure returns (uint128 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint128 a, uint128 b) internal pure returns (uint128 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint64. library BoringMath64 { function add(uint64 a, uint64 b) internal pure returns (uint64 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint64 a, uint64 b) internal pure returns (uint64 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint32. library BoringMath32 { function add(uint32 a, uint32 b) internal pure returns (uint32 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint32 a, uint32 b) internal pure returns (uint32 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } // File @boringcrypto/boring-solidity/contracts/interfaces/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /// @notice EIP 2612 function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; } // File @boringcrypto/boring-solidity/contracts/[email protected] // License-Identifier: MIT // Based on code and smartness by Ross Campbell and Keno // Uses immutable to store the domain separator to reduce gas usage // If the chain id changes due to a fork, the forked chain will calculate on the fly. pragma solidity 0.6.12; // solhint-disable no-inline-assembly contract Domain { bytes32 private constant DOMAIN_SEPARATOR_SIGNATURE_HASH = keccak256("EIP712Domain(uint256 chainId,address verifyingContract)"); // See https://eips.ethereum.org/EIPS/eip-191 string private constant EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA = "\x19\x01"; // solhint-disable var-name-mixedcase bytes32 private immutable _DOMAIN_SEPARATOR; uint256 private immutable DOMAIN_SEPARATOR_CHAIN_ID; /// @dev Calculate the DOMAIN_SEPARATOR function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) { return keccak256(abi.encode(DOMAIN_SEPARATOR_SIGNATURE_HASH, chainId, address(this))); } constructor() public { uint256 chainId; assembly { chainId := chainid() } _DOMAIN_SEPARATOR = _calculateDomainSeparator(DOMAIN_SEPARATOR_CHAIN_ID = chainId); } /// @dev Return the DOMAIN_SEPARATOR // It's named internal to allow making it public from the contract that uses it by creating a simple view function // with the desired public name, such as DOMAIN_SEPARATOR or domainSeparator. // solhint-disable-next-line func-name-mixedcase function _domainSeparator() internal view returns (bytes32) { uint256 chainId; assembly { chainId := chainid() } return chainId == DOMAIN_SEPARATOR_CHAIN_ID ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId); } function _getDigest(bytes32 dataHash) internal view returns (bytes32 digest) { digest = keccak256(abi.encodePacked(EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA, _domainSeparator(), dataHash)); } } // File @boringcrypto/boring-solidity/contracts/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; // solhint-disable no-inline-assembly // solhint-disable not-rely-on-time // Data part taken out for building of contracts that receive delegate calls contract ERC20Data { /// @notice owner > balance mapping. mapping(address => uint256) public balanceOf; /// @notice owner > spender > allowance mapping. mapping(address => mapping(address => uint256)) public allowance; /// @notice owner > nonce mapping. Used in `permit`. mapping(address => uint256) public nonces; } abstract contract ERC20 is IERC20, Domain { /// @notice owner > balance mapping. mapping(address => uint256) public override balanceOf; /// @notice owner > spender > allowance mapping. mapping(address => mapping(address => uint256)) public override allowance; /// @notice owner > nonce mapping. Used in `permit`. mapping(address => uint256) public nonces; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); /// @notice Transfers `amount` tokens from `msg.sender` to `to`. /// @param to The address to move the tokens. /// @param amount of the tokens to move. /// @return (bool) Returns True if succeeded. function transfer(address to, uint256 amount) public returns (bool) { // If `amount` is 0, or `msg.sender` is `to` nothing happens if (amount != 0 || msg.sender == to) { uint256 srcBalance = balanceOf[msg.sender]; require(srcBalance >= amount, "ERC20: balance too low"); if (msg.sender != to) { require(to != address(0), "ERC20: no zero address"); // Moved down so low balance calls safe some gas balanceOf[msg.sender] = srcBalance - amount; // Underflow is checked balanceOf[to] += amount; } } emit Transfer(msg.sender, to, amount); return true; } /// @notice Transfers `amount` tokens from `from` to `to`. Caller needs approval for `from`. /// @param from Address to draw tokens from. /// @param to The address to move the tokens. /// @param amount The token amount to move. /// @return (bool) Returns True if succeeded. function transferFrom( address from, address to, uint256 amount ) public returns (bool) { // If `amount` is 0, or `from` is `to` nothing happens if (amount != 0) { uint256 srcBalance = balanceOf[from]; require(srcBalance >= amount, "ERC20: balance too low"); if (from != to) { uint256 spenderAllowance = allowance[from][msg.sender]; // If allowance is infinite, don't decrease it to save on gas (breaks with EIP-20). if (spenderAllowance != type(uint256).max) { require(spenderAllowance >= amount, "ERC20: allowance too low"); allowance[from][msg.sender] = spenderAllowance - amount; // Underflow is checked } require(to != address(0), "ERC20: no zero address"); // Moved down so other failed calls safe some gas balanceOf[from] = srcBalance - amount; // Underflow is checked balanceOf[to] += amount; } } emit Transfer(from, to, amount); return true; } /// @notice Approves `amount` from sender to be spend by `spender`. /// @param spender Address of the party that can draw from msg.sender's account. /// @param amount The maximum collective amount that `spender` can draw. /// @return (bool) Returns True if approved. function approve(address spender, uint256 amount) public override returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } // solhint-disable-next-line func-name-mixedcase function DOMAIN_SEPARATOR() external view returns (bytes32) { return _domainSeparator(); } // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 private constant PERMIT_SIGNATURE_HASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; /// @notice Approves `value` from `owner_` to be spend by `spender`. /// @param owner_ Address of the owner. /// @param spender The address of the spender that gets approved to draw from `owner_`. /// @param value The maximum collective amount that `spender` can draw. /// @param deadline This permit must be redeemed before this deadline (UTC timestamp in seconds). function permit( address owner_, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external override { require(owner_ != address(0), "ERC20: Owner cannot be 0"); require(block.timestamp < deadline, "ERC20: Expired"); require( ecrecover(_getDigest(keccak256(abi.encode(PERMIT_SIGNATURE_HASH, owner_, spender, value, nonces[owner_]++, deadline))), v, r, s) == owner_, "ERC20: Invalid Signature" ); allowance[owner_][spender] = value; emit Approval(owner_, spender, value); } } contract ERC20WithSupply is IERC20, ERC20 { uint256 public override totalSupply; function _mint(address user, uint256 amount) private { uint256 newTotalSupply = totalSupply + amount; require(newTotalSupply >= totalSupply, "Mint overflow"); totalSupply = newTotalSupply; balanceOf[user] += amount; } function _burn(address user, uint256 amount) private { require(balanceOf[user] >= amount, "Burn too much"); totalSupply -= amount; balanceOf[user] -= amount; } } // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; struct Rebase { uint128 elastic; uint128 base; } /// @notice A rebasing library using overflow-/underflow-safe math. library RebaseLibrary { using BoringMath for uint256; using BoringMath128 for uint128; /// @notice Calculates the base value in relationship to `elastic` and `total`. function toBase( Rebase memory total, uint256 elastic, bool roundUp ) internal pure returns (uint256 base) { if (total.elastic == 0) { base = elastic; } else { base = elastic.mul(total.base) / total.elastic; if (roundUp && base.mul(total.elastic) / total.base < elastic) { base = base.add(1); } } } /// @notice Calculates the elastic value in relationship to `base` and `total`. function toElastic( Rebase memory total, uint256 base, bool roundUp ) internal pure returns (uint256 elastic) { if (total.base == 0) { elastic = base; } else { elastic = base.mul(total.elastic) / total.base; if (roundUp && elastic.mul(total.base) / total.elastic < base) { elastic = elastic.add(1); } } } /// @notice Add `elastic` to `total` and doubles `total.base`. /// @return (Rebase) The new total. /// @return base in relationship to `elastic`. function add( Rebase memory total, uint256 elastic, bool roundUp ) internal pure returns (Rebase memory, uint256 base) { base = toBase(total, elastic, roundUp); total.elastic = total.elastic.add(elastic.to128()); total.base = total.base.add(base.to128()); return (total, base); } /// @notice Sub `base` from `total` and update `total.elastic`. /// @return (Rebase) The new total. /// @return elastic in relationship to `base`. function sub( Rebase memory total, uint256 base, bool roundUp ) internal pure returns (Rebase memory, uint256 elastic) { elastic = toElastic(total, base, roundUp); total.elastic = total.elastic.sub(elastic.to128()); total.base = total.base.sub(base.to128()); return (total, elastic); } /// @notice Add `elastic` and `base` to `total`. function add( Rebase memory total, uint256 elastic, uint256 base ) internal pure returns (Rebase memory) { total.elastic = total.elastic.add(elastic.to128()); total.base = total.base.add(base.to128()); return total; } /// @notice Subtract `elastic` and `base` to `total`. function sub( Rebase memory total, uint256 elastic, uint256 base ) internal pure returns (Rebase memory) { total.elastic = total.elastic.sub(elastic.to128()); total.base = total.base.sub(base.to128()); return total; } /// @notice Add `elastic` to `total` and update storage. /// @return newElastic Returns updated `elastic`. function addElastic(Rebase storage total, uint256 elastic) internal returns (uint256 newElastic) { newElastic = total.elastic = total.elastic.add(elastic.to128()); } /// @notice Subtract `elastic` from `total` and update storage. /// @return newElastic Returns updated `elastic`. function subElastic(Rebase storage total, uint256 elastic) internal returns (uint256 newElastic) { newElastic = total.elastic = total.elastic.sub(elastic.to128()); } } // File @sushiswap/bentobox-sdk/contracts/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; interface IBatchFlashBorrower { function onBatchFlashLoan( address sender, IERC20[] calldata tokens, uint256[] calldata amounts, uint256[] calldata fees, bytes calldata data ) external; } // File @sushiswap/bentobox-sdk/contracts/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; interface IFlashBorrower { function onFlashLoan( address sender, IERC20 token, uint256 amount, uint256 fee, bytes calldata data ) external; } // File @sushiswap/bentobox-sdk/contracts/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; interface IStrategy { // Send the assets to the Strategy and call skim to invest them function skim(uint256 amount) external; // Harvest any profits made converted to the asset and pass them to the caller function harvest(uint256 balance, address sender) external returns (int256 amountAdded); // Withdraw assets. The returned amount can differ from the requested amount due to rounding. // The actualAmount should be very close to the amount. The difference should NOT be used to report a loss. That's what harvest is for. function withdraw(uint256 amount) external returns (uint256 actualAmount); // Withdraw all assets in the safest way possible. This shouldn't fail. function exit(uint256 balance) external returns (int256 amountAdded); } // File @sushiswap/bentobox-sdk/contracts/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; pragma experimental ABIEncoderV2; interface IBentoBoxV1 { event LogDeploy(address indexed masterContract, bytes data, address indexed cloneAddress); event LogDeposit(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 share); event LogFlashLoan(address indexed borrower, address indexed token, uint256 amount, uint256 feeAmount, address indexed receiver); event LogRegisterProtocol(address indexed protocol); event LogSetMasterContractApproval(address indexed masterContract, address indexed user, bool approved); event LogStrategyDivest(address indexed token, uint256 amount); event LogStrategyInvest(address indexed token, uint256 amount); event LogStrategyLoss(address indexed token, uint256 amount); event LogStrategyProfit(address indexed token, uint256 amount); event LogStrategyQueued(address indexed token, address indexed strategy); event LogStrategySet(address indexed token, address indexed strategy); event LogStrategyTargetPercentage(address indexed token, uint256 targetPercentage); event LogTransfer(address indexed token, address indexed from, address indexed to, uint256 share); event LogWhiteListMasterContract(address indexed masterContract, bool approved); event LogWithdraw(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 share); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function balanceOf(IERC20, address) external view returns (uint256); function batch(bytes[] calldata calls, bool revertOnFail) external payable returns (bool[] memory successes, bytes[] memory results); function batchFlashLoan( IBatchFlashBorrower borrower, address[] calldata receivers, IERC20[] calldata tokens, uint256[] calldata amounts, bytes calldata data ) external; function claimOwnership() external; function deploy( address masterContract, bytes calldata data, bool useCreate2 ) external payable; function deposit( IERC20 token_, address from, address to, uint256 amount, uint256 share ) external payable returns (uint256 amountOut, uint256 shareOut); function flashLoan( IFlashBorrower borrower, address receiver, IERC20 token, uint256 amount, bytes calldata data ) external; function harvest( IERC20 token, bool balance, uint256 maxChangeAmount ) external; function masterContractApproved(address, address) external view returns (bool); function masterContractOf(address) external view returns (address); function nonces(address) external view returns (uint256); function owner() external view returns (address); function pendingOwner() external view returns (address); function pendingStrategy(IERC20) external view returns (IStrategy); function permitToken( IERC20 token, address from, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function registerProtocol() external; function setMasterContractApproval( address user, address masterContract, bool approved, uint8 v, bytes32 r, bytes32 s ) external; function setStrategy(IERC20 token, IStrategy newStrategy) external; function setStrategyTargetPercentage(IERC20 token, uint64 targetPercentage_) external; function strategy(IERC20) external view returns (IStrategy); function strategyData(IERC20) external view returns ( uint64 strategyStartDate, uint64 targetPercentage, uint128 balance ); function toAmount( IERC20 token, uint256 share, bool roundUp ) external view returns (uint256 amount); function toShare( IERC20 token, uint256 amount, bool roundUp ) external view returns (uint256 share); function totals(IERC20) external view returns (Rebase memory totals_); function transfer( IERC20 token, address from, address to, uint256 share ) external; function transferMultiple( IERC20 token, address from, address[] calldata tos, uint256[] calldata shares ) external; function transferOwnership( address newOwner, bool direct, bool renounce ) external; function whitelistMasterContract(address masterContract, bool approved) external; function whitelistedMasterContracts(address) external view returns (bool); function withdraw( IERC20 token_, address from, address to, uint256 amount, uint256 share ) external returns (uint256 amountOut, uint256 shareOut); } // File @boringcrypto/boring-solidity/contracts/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; // Audit on 5-Jan-2021 by Keno and BoringCrypto // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol // Edited by BoringCrypto contract BoringOwnableData { address public owner; address public pendingOwner; } contract BoringOwnable is BoringOwnableData { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /// @notice `owner` defaults to msg.sender on construction. constructor() public { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /// @notice Transfers ownership to `newOwner`. Either directly or claimable by the new pending owner. /// Can only be invoked by the current `owner`. /// @param newOwner Address of the new owner. /// @param direct True if `newOwner` should be set immediately. False if `newOwner` needs to use `claimOwnership`. /// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect otherwise. function transferOwnership( address newOwner, bool direct, bool renounce ) public onlyOwner { if (direct) { // Checks require(newOwner != address(0) || renounce, "Ownable: zero address"); // Effects emit OwnershipTransferred(owner, newOwner); owner = newOwner; pendingOwner = address(0); } else { // Effects pendingOwner = newOwner; } } /// @notice Needs to be called by `pendingOwner` to claim ownership. function claimOwnership() public { address _pendingOwner = pendingOwner; // Checks require(msg.sender == _pendingOwner, "Ownable: caller != pending owner"); // Effects emit OwnershipTransferred(owner, _pendingOwner); owner = _pendingOwner; pendingOwner = address(0); } /// @notice Only allows the `owner` to execute the function. modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } } // File contracts/MagicInternetMoney.sol // License-Identifier: MIT // Magic Internet Money // ███╗ ███╗██╗███╗ ███╗ // ████╗ ████║██║████╗ ████║ // ██╔████╔██║██║██╔████╔██║ // ██║╚██╔╝██║██║██║╚██╔╝██║ // ██║ ╚═╝ ██║██║██║ ╚═╝ ██║ // ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ // BoringCrypto, 0xMerlin pragma solidity 0.6.12; /// @title Cauldron /// @dev This contract allows contract calls to any contract (except BentoBox) /// from arbitrary callers thus, don't trust calls from this contract in any circumstances. contract MagicInternetMoneyV1 is ERC20, BoringOwnable { using BoringMath for uint256; // ERC20 'variables' string public constant symbol = "MIM"; string public constant name = "Magic Internet Money"; uint8 public constant decimals = 18; uint256 public override totalSupply; struct Minting { uint128 time; uint128 amount; } Minting public lastMint; uint256 private constant MINTING_PERIOD = 24 hours; uint256 private constant MINTING_INCREASE = 15000; uint256 private constant MINTING_PRECISION = 1e5; function mint(address to, uint256 amount) public onlyOwner { require(to != address(0), "MIM: no mint to zero address"); // Limits the amount minted per period to a convergence function, with the period duration restarting on every mint uint256 totalMintedAmount = uint256(lastMint.time < block.timestamp - MINTING_PERIOD ? 0 : lastMint.amount).add(amount); require(totalSupply == 0 || totalSupply.mul(MINTING_INCREASE) / MINTING_PRECISION >= totalMintedAmount); lastMint.time = block.timestamp.to128(); lastMint.amount = totalMintedAmount.to128(); totalSupply = totalSupply + amount; balanceOf[to] += amount; emit Transfer(address(0), to, amount); } function mintToBentoBox( address clone, uint256 amount, IBentoBoxV1 bentoBox ) public onlyOwner { mint(address(bentoBox), amount); bentoBox.deposit(IERC20(address(this)), address(bentoBox), clone, amount, 0); } function burn(uint256 amount) public { require(amount <= balanceOf[msg.sender], "MIM: not enough"); balanceOf[msg.sender] -= amount; totalSupply -= amount; emit Transfer(msg.sender, address(0), amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastMint","outputs":[{"internalType":"uint128","name":"time","type":"uint128"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"clone","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"contract IBentoBoxV1","name":"bentoBox","type":"address"}],"name":"mintToBentoBox","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b504660a081905261002081610069565b60805250600380546001600160a01b031916339081179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36100dc565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921882306040516020016100a0939291906100bd565b604051602081830303815290604052805190602001209050919050565b92835260208301919091526001600160a01b0316604082015260600190565b60805160a051611a306100ff6000398061111952508061114e5250611a306000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063586fc5b5116100cd57806395d89b4111610081578063d505accf11610066578063d505accf146102b6578063dd62ed3e146102c9578063e30c3978146102dc5761016c565b806395d89b411461029b578063a9059cbb146102a35761016c565b806370a08231116100b257806370a08231146102605780637ecebe00146102735780638da5cb5b146102865761016c565b8063586fc5b51461023757806369e402651461024d5761016c565b8063313ce5671161012457806340c10f191161010957806340c10f191461020957806342966c681461021c5780634e71e0c81461022f5761016c565b8063313ce567146101ec5780633644e515146102015761016c565b8063095ea7b311610155578063095ea7b3146101a457806318160ddd146101c457806323b872dd146101d95761016c565b806306fdde0314610171578063078dfbe71461018f575b600080fd5b6101796102e4565b6040516101869190611617565b60405180910390f35b6101a261019d366004611409565b61031d565b005b6101b76101b2366004611453565b6104b2565b6040516101869190611537565b6101cc61052a565b6040516101869190611542565b6101b76101e7366004611354565b610530565b6101f461078b565b6040516101869190611989565b6101cc610790565b6101a2610217366004611453565b61079f565b6101a261022a3660046114b4565b610a01565b6101a2610aa6565b61023f610b8d565b604051610186929190611966565b6101a261025b36600461147e565b610bbd565b6101cc61026e3660046112f9565b610ccb565b6101cc6102813660046112f9565b610cdd565b61028e610cef565b6040516101869190611516565b610179610d0b565b6101b76102b1366004611453565b610d44565b6101a26102c4366004611394565b610eb8565b6101cc6102d736600461131c565b6110db565b61028e6110f8565b6040518060400160405280601481526020017f4d6167696320496e7465726e6574204d6f6e657900000000000000000000000081525081565b60035473ffffffffffffffffffffffffffffffffffffffff163314610377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117e9565b60405180910390fd5b811561046c5773ffffffffffffffffffffffffffffffffffffffff831615158061039e5750805b6103d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061169f565b60035460405173ffffffffffffffffffffffffffffffffffffffff8086169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff85167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556004805490911690556104ad565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610518908690611542565b60405180910390a35060015b92915050565b60055481565b6000811561071c5773ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205482811015610598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906118c1565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461071a5773ffffffffffffffffffffffffffffffffffffffff851660009081526001602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610693578381101561065d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611744565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600160209081526040808320338452909152902084820390555b73ffffffffffffffffffffffffffffffffffffffff85166106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611668565b5073ffffffffffffffffffffffffffffffffffffffff80861660009081526020819052604080822086850390559186168152208054840190555b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107799190611542565b60405180910390a35060019392505050565b601281565b600061079a611114565b905090565b60035473ffffffffffffffffffffffffffffffffffffffff1633146107f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117e9565b73ffffffffffffffffffffffffffffffffffffffff821661083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611853565b6006546000906108ce9083907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeae8042016fffffffffffffffffffffffffffffffff909116106108b35760065470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166108b6565b60005b6fffffffffffffffffffffffffffffffff1690611174565b905060055460001480610903575080620186a06108f8613a986005546111b190919063ffffffff16565b816108ff57fe5b0410155b61090c57600080fd5b61091542611202565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561095f81611202565b600680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055600580548301905573ffffffffffffffffffffffffffffffffffffffff8316600081815260208190526040808220805486019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109f4908690611542565b60405180910390a3505050565b33600090815260208190526040902054811115610a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061177b565b3360008181526020819052604080822080548590039055600580548590039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a9b908590611542565b60405180910390a350565b60045473ffffffffffffffffffffffffffffffffffffffff16338114610af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061181e565b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600480549091169055565b6006546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60035473ffffffffffffffffffffffffffffffffffffffff163314610c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117e9565b610c18818361079f565b6040517f02b9446c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906302b9446c90610c739030908590889088906000906004016115d6565b6040805180830381600087803b158015610c8c57600080fd5b505af1158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc491906114cc565b5050505050565b60006020819052908152604090205481565b60026020526000908152604090205481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f4d494d000000000000000000000000000000000000000000000000000000000081525081565b600081151580610d6957503373ffffffffffffffffffffffffffffffffffffffff8416145b15610e5b573360009081526020819052604090205482811015610db8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906118c1565b3373ffffffffffffffffffffffffffffffffffffffff851614610e595773ffffffffffffffffffffffffffffffffffffffff8416610e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611668565b33600090815260208190526040808220858403905573ffffffffffffffffffffffffffffffffffffffff8616825290208054840190555b505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105189190611542565b73ffffffffffffffffffffffffffffffffffffffff8716610f05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061188a565b834210610f3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117b2565b73ffffffffffffffffffffffffffffffffffffffff87166000818152600260209081526040918290208054600181810190925592519092610fc992610fae927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e92918e910161154b565b60405160208183030381529060405280519060200120611252565b85858560405160008152602001604052604051610fe994939291906115b8565b6020604051602081039080840390855afa15801561100b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061192f565b73ffffffffffffffffffffffffffffffffffffffff8088166000818152600160209081526040808320948b168084529490915290819020889055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906110ca908990611542565b60405180910390a350505050505050565b600160209081526000928352604080842090915290825290205481565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6000467f0000000000000000000000000000000000000000000000000000000000000000811461114c57611147816112c2565b61116e565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b81810181811015610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061170d565b60008115806111cc575050808202828282816111c957fe5b04145b610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906118f8565b60006fffffffffffffffffffffffffffffffff82111561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906116d6565b5090565b60006040518060400160405280600281526020017f1901000000000000000000000000000000000000000000000000000000000000815250611292611114565b836040516020016112a5939291906114ef565b604051602081830303815290604052805190602001209050919050565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921882306040516020016112a59392919061158c565b60006020828403121561130a578081fd5b8135611315816119c7565b9392505050565b6000806040838503121561132e578081fd5b8235611339816119c7565b91506020830135611349816119c7565b809150509250929050565b600080600060608486031215611368578081fd5b8335611373816119c7565b92506020840135611383816119c7565b929592945050506040919091013590565b600080600080600080600060e0888a0312156113ae578283fd5b87356113b9816119c7565b965060208801356113c9816119c7565b95506040880135945060608801359350608088013560ff811681146113ec578384fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060006060848603121561141d578283fd5b8335611428816119c7565b92506020840135611438816119ec565b91506040840135611448816119ec565b809150509250925092565b60008060408385031215611465578182fd5b8235611470816119c7565b946020939093013593505050565b600080600060608486031215611492578283fd5b833561149d816119c7565b9250602084013591506040840135611448816119c7565b6000602082840312156114c5578081fd5b5035919050565b600080604083850312156114de578182fd5b505080516020909101519092909150565b60008451611501818460208901611997565b91909101928352506020820152604001919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b928352602083019190915273ffffffffffffffffffffffffffffffffffffffff16604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b73ffffffffffffffffffffffffffffffffffffffff958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b6000602082528251806020840152611636816040850160208701611997565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526016908201527f45524332303a206e6f207a65726f206164647265737300000000000000000000604082015260600190565b60208082526015908201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20616c6c6f77616e636520746f6f206c6f770000000000000000604082015260600190565b6020808252600f908201527f4d494d3a206e6f7420656e6f7567680000000000000000000000000000000000604082015260600190565b6020808252600e908201527f45524332303a2045787069726564000000000000000000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601c908201527f4d494d3a206e6f206d696e7420746f207a65726f206164647265737300000000604082015260600190565b60208082526018908201527f45524332303a204f776e65722063616e6e6f7420626520300000000000000000604082015260600190565b60208082526016908201527f45524332303a2062616c616e636520746f6f206c6f7700000000000000000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20496e76616c6964205369676e61747572650000000000000000604082015260600190565b6fffffffffffffffffffffffffffffffff92831681529116602082015260400190565b60ff91909116815260200190565b60005b838110156119b257818101518382015260200161199a565b838111156119c1576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119e957600080fd5b50565b80151581146119e957600080fdfea2646970667358221220e98cc5840c217883fec6085f37f8bf1aec9c9edfdb3868aed3e7e8a4bfb059fb64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063586fc5b5116100cd57806395d89b4111610081578063d505accf11610066578063d505accf146102b6578063dd62ed3e146102c9578063e30c3978146102dc5761016c565b806395d89b411461029b578063a9059cbb146102a35761016c565b806370a08231116100b257806370a08231146102605780637ecebe00146102735780638da5cb5b146102865761016c565b8063586fc5b51461023757806369e402651461024d5761016c565b8063313ce5671161012457806340c10f191161010957806340c10f191461020957806342966c681461021c5780634e71e0c81461022f5761016c565b8063313ce567146101ec5780633644e515146102015761016c565b8063095ea7b311610155578063095ea7b3146101a457806318160ddd146101c457806323b872dd146101d95761016c565b806306fdde0314610171578063078dfbe71461018f575b600080fd5b6101796102e4565b6040516101869190611617565b60405180910390f35b6101a261019d366004611409565b61031d565b005b6101b76101b2366004611453565b6104b2565b6040516101869190611537565b6101cc61052a565b6040516101869190611542565b6101b76101e7366004611354565b610530565b6101f461078b565b6040516101869190611989565b6101cc610790565b6101a2610217366004611453565b61079f565b6101a261022a3660046114b4565b610a01565b6101a2610aa6565b61023f610b8d565b604051610186929190611966565b6101a261025b36600461147e565b610bbd565b6101cc61026e3660046112f9565b610ccb565b6101cc6102813660046112f9565b610cdd565b61028e610cef565b6040516101869190611516565b610179610d0b565b6101b76102b1366004611453565b610d44565b6101a26102c4366004611394565b610eb8565b6101cc6102d736600461131c565b6110db565b61028e6110f8565b6040518060400160405280601481526020017f4d6167696320496e7465726e6574204d6f6e657900000000000000000000000081525081565b60035473ffffffffffffffffffffffffffffffffffffffff163314610377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117e9565b60405180910390fd5b811561046c5773ffffffffffffffffffffffffffffffffffffffff831615158061039e5750805b6103d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061169f565b60035460405173ffffffffffffffffffffffffffffffffffffffff8086169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff85167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556004805490911690556104ad565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610518908690611542565b60405180910390a35060015b92915050565b60055481565b6000811561071c5773ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205482811015610598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906118c1565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461071a5773ffffffffffffffffffffffffffffffffffffffff851660009081526001602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610693578381101561065d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611744565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600160209081526040808320338452909152902084820390555b73ffffffffffffffffffffffffffffffffffffffff85166106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611668565b5073ffffffffffffffffffffffffffffffffffffffff80861660009081526020819052604080822086850390559186168152208054840190555b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107799190611542565b60405180910390a35060019392505050565b601281565b600061079a611114565b905090565b60035473ffffffffffffffffffffffffffffffffffffffff1633146107f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117e9565b73ffffffffffffffffffffffffffffffffffffffff821661083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611853565b6006546000906108ce9083907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeae8042016fffffffffffffffffffffffffffffffff909116106108b35760065470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166108b6565b60005b6fffffffffffffffffffffffffffffffff1690611174565b905060055460001480610903575080620186a06108f8613a986005546111b190919063ffffffff16565b816108ff57fe5b0410155b61090c57600080fd5b61091542611202565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561095f81611202565b600680546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055600580548301905573ffffffffffffffffffffffffffffffffffffffff8316600081815260208190526040808220805486019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109f4908690611542565b60405180910390a3505050565b33600090815260208190526040902054811115610a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061177b565b3360008181526020819052604080822080548590039055600580548590039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a9b908590611542565b60405180910390a350565b60045473ffffffffffffffffffffffffffffffffffffffff16338114610af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061181e565b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600480549091169055565b6006546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60035473ffffffffffffffffffffffffffffffffffffffff163314610c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117e9565b610c18818361079f565b6040517f02b9446c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906302b9446c90610c739030908590889088906000906004016115d6565b6040805180830381600087803b158015610c8c57600080fd5b505af1158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc491906114cc565b5050505050565b60006020819052908152604090205481565b60026020526000908152604090205481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f4d494d000000000000000000000000000000000000000000000000000000000081525081565b600081151580610d6957503373ffffffffffffffffffffffffffffffffffffffff8416145b15610e5b573360009081526020819052604090205482811015610db8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906118c1565b3373ffffffffffffffffffffffffffffffffffffffff851614610e595773ffffffffffffffffffffffffffffffffffffffff8416610e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611668565b33600090815260208190526040808220858403905573ffffffffffffffffffffffffffffffffffffffff8616825290208054840190555b505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105189190611542565b73ffffffffffffffffffffffffffffffffffffffff8716610f05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061188a565b834210610f3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906117b2565b73ffffffffffffffffffffffffffffffffffffffff87166000818152600260209081526040918290208054600181810190925592519092610fc992610fae927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e92918e910161154b565b60405160208183030381529060405280519060200120611252565b85858560405160008152602001604052604051610fe994939291906115b8565b6020604051602081039080840390855afa15801561100b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061192f565b73ffffffffffffffffffffffffffffffffffffffff8088166000818152600160209081526040808320948b168084529490915290819020889055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906110ca908990611542565b60405180910390a350505050505050565b600160209081526000928352604080842090915290825290205481565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6000467f0000000000000000000000000000000000000000000000000000000000000001811461114c57611147816112c2565b61116e565b7fe74a8076e040bfbe129b49167f9dbd846fc96d9178ae69b1d72a42ae33339acb5b91505090565b81810181811015610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e9061170d565b60008115806111cc575050808202828282816111c957fe5b04145b610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906118f8565b60006fffffffffffffffffffffffffffffffff82111561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e906116d6565b5090565b60006040518060400160405280600281526020017f1901000000000000000000000000000000000000000000000000000000000000815250611292611114565b836040516020016112a5939291906114ef565b604051602081830303815290604052805190602001209050919050565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921882306040516020016112a59392919061158c565b60006020828403121561130a578081fd5b8135611315816119c7565b9392505050565b6000806040838503121561132e578081fd5b8235611339816119c7565b91506020830135611349816119c7565b809150509250929050565b600080600060608486031215611368578081fd5b8335611373816119c7565b92506020840135611383816119c7565b929592945050506040919091013590565b600080600080600080600060e0888a0312156113ae578283fd5b87356113b9816119c7565b965060208801356113c9816119c7565b95506040880135945060608801359350608088013560ff811681146113ec578384fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060006060848603121561141d578283fd5b8335611428816119c7565b92506020840135611438816119ec565b91506040840135611448816119ec565b809150509250925092565b60008060408385031215611465578182fd5b8235611470816119c7565b946020939093013593505050565b600080600060608486031215611492578283fd5b833561149d816119c7565b9250602084013591506040840135611448816119c7565b6000602082840312156114c5578081fd5b5035919050565b600080604083850312156114de578182fd5b505080516020909101519092909150565b60008451611501818460208901611997565b91909101928352506020820152604001919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b928352602083019190915273ffffffffffffffffffffffffffffffffffffffff16604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b73ffffffffffffffffffffffffffffffffffffffff958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b6000602082528251806020840152611636816040850160208701611997565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526016908201527f45524332303a206e6f207a65726f206164647265737300000000000000000000604082015260600190565b60208082526015908201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20616c6c6f77616e636520746f6f206c6f770000000000000000604082015260600190565b6020808252600f908201527f4d494d3a206e6f7420656e6f7567680000000000000000000000000000000000604082015260600190565b6020808252600e908201527f45524332303a2045787069726564000000000000000000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601c908201527f4d494d3a206e6f206d696e7420746f207a65726f206164647265737300000000604082015260600190565b60208082526018908201527f45524332303a204f776e65722063616e6e6f7420626520300000000000000000604082015260600190565b60208082526016908201527f45524332303a2062616c616e636520746f6f206c6f7700000000000000000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20496e76616c6964205369676e61747572650000000000000000604082015260600190565b6fffffffffffffffffffffffffffffffff92831681529116602082015260400190565b60ff91909116815260200190565b60005b838110156119b257818101518382015260200161199a565b838111156119c1576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119e957600080fd5b50565b80151581146119e957600080fdfea2646970667358221220e98cc5840c217883fec6085f37f8bf1aec9c9edfdb3868aed3e7e8a4bfb059fb64736f6c634300060c0033
Deployed Bytecode Sourcemap
25383:1862:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25549:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23471:506;;;;;;:::i;:::-;;:::i;:::-;;9354:214;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25650:35::-;;;:::i;:::-;;;;;;;:::i;7908:1151::-;;;;;;:::i;:::-;;:::i;25608:35::-;;;:::i;:::-;;;;;;;:::i;9630:104::-;;;:::i;25973:741::-;;;;;;:::i;:::-;;:::i;26995:247::-;;;;;;:::i;:::-;;:::i;24059:340::-;;;:::i;25773:23::-;;;:::i;:::-;;;;;;;;:::i;26722:265::-;;;;;;:::i;:::-;;:::i;6208:53::-;;;;;;:::i;:::-;;:::i;6460:41::-;;;;;;:::i;:::-;;:::i;22617:20::-;;;:::i;:::-;;;;;;;:::i;25505:37::-;;;:::i;6898:703::-;;;;;;:::i;:::-;;:::i;10363:674::-;;;;;;:::i;:::-;;:::i;6322:73::-;;;;;;:::i;:::-;;:::i;22644:27::-;;;:::i;25549:52::-;;;;;;;;;;;;;;;;;;;:::o;23471:506::-;24527:5;;;;24513:10;:19;24505:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23610:6:::1;23606:364;;;23664:22;::::0;::::1;::::0;::::1;::::0;:34:::1;;;23690:8;23664:34;23656:68;;;;;;;;;;;;:::i;:::-;23791:5;::::0;23770:37:::1;::::0;::::1;::::0;;::::1;::::0;23791:5:::1;::::0;23770:37:::1;::::0;23791:5:::1;::::0;23770:37:::1;23822:5;:16:::0;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;23853:12:::1;:25:::0;;;;::::1;::::0;;23606:364:::1;;;23935:12;:23:::0;;;::::1;;::::0;::::1;;::::0;;23606:364:::1;23471:506:::0;;;:::o;9354:214::-;9456:10;9429:4;9446:21;;;:9;:21;;;;;;;;;:30;;;;;;;;;;:39;;;9501:37;9429:4;;9446:30;;9501:37;;;;9479:6;;9501:37;:::i;:::-;;;;;;;;-1:-1:-1;9556:4:0;9354:214;;;;;:::o;25650:35::-;;;;:::o;7908:1151::-;8022:4;8107:11;;8103:885;;8156:15;;;8135:18;8156:15;;;;;;;;;;;8194:20;;;;8186:55;;;;;;;;;;;;:::i;:::-;8270:2;8262:10;;:4;:10;;;8258:719;;8320:15;;;8293:24;8320:15;;;:9;:15;;;;;;;;8336:10;8320:27;;;;;;;;8491:17;8471:37;;8467:251;;8561:6;8541:16;:26;;8533:63;;;;;;;;;;;;:::i;:::-;8619:15;;;;;;;:9;:15;;;;;;;;8635:10;8619:27;;;;;;;8649:25;;;8619:55;;8467:251;8744:16;;;8736:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8858:15:0;;;;:9;:15;;;;;;;;;;;8876:19;;;8858:37;;8938:13;;;;;;:23;;;;;;8258:719;8103:885;;9018:2;9003:26;;9012:4;9003:26;;;9022:6;9003:26;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;9047:4:0;7908:1151;;;;;:::o;25608:35::-;25641:2;25608:35;:::o;9630:104::-;9681:7;9708:18;:16;:18::i;:::-;9701:25;;9630:104;:::o;25973:741::-;24527:5;;;;24513:10;:19;24505:64;;;;;;;;;;;;:::i;:::-;26051:16:::1;::::0;::::1;26043:57;;;;;;;;;;;;:::i;:::-;26274:8;:13:::0;26238:25:::1;::::0;26266:91:::1;::::0;26350:6;;26290:32;:15:::1;:32:::0;26274:13:::1;::::0;;::::1;:48;:70;;26329:8;:15:::0;;;::::1;;;26274:70;;;26325:1;26274:70;26266:79;;::::0;:83:::1;:91::i;:::-;26238:119;;26376:11;;26391:1;26376:16;:94;;;;26453:17;25961:3;26396:33;25904:5;26396:11;;:15;;:33;;;;:::i;:::-;:53;;;;;;:74;;26376:94;26368:103;;;::::0;::::1;;26500:23;:15;:21;:23::i;:::-;26484:8;:39:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;26552:25:::1;:17:::0;:23:::1;:25::i;:::-;26534:8;:43:::0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;26604:11:::1;::::0;;:20;::::1;26590:34:::0;;26635:13:::1;::::0;::::1;26534:15;26635:13:::0;;;::::1;::::0;;;;;;;:23;;;::::1;::::0;;26674:32;::::1;::::0;::::1;::::0;26618:6;;26674:32:::1;:::i;:::-;;;;;;;;24580:1;25973:741:::0;;:::o;26995:247::-;27071:10;27061:9;:21;;;;;;;;;;;27051:31;;;27043:59;;;;;;;;;;;;:::i;:::-;27125:10;27115:9;:21;;;;;;;;;;;:31;;;;;;;27157:11;:21;;;;;;;27194:40;27115:9;;27125:10;27194:40;;;;27140:6;;27194:40;:::i;:::-;;;;;;;;26995:247;:::o;24059:340::-;24127:12;;;;24179:10;:27;;24171:72;;;;;;;;;;;;:::i;:::-;24302:5;;24281:42;;;;;;;24302:5;;24281:42;;24302:5;;24281:42;24334:5;:21;;;;;;;;;;;;;24366:12;:25;;;;;;;24059:340::o;25773:23::-;;;;;;;;;;;;;:::o;26722:265::-;24527:5;;;;24513:10;:19;24505:64;;;;;;;;;;;;:::i;:::-;26861:31:::1;26874:8;26885:6;26861:4;:31::i;:::-;26903:76;::::0;;;;:16:::1;::::0;::::1;::::0;::::1;::::0;:76:::1;::::0;26935:4:::1;::::0;26903:8;;26962:5;;26969:6;;26977:1:::1;::::0;26903:76:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;26722:265:::0;;;:::o;6208:53::-;;;;;;;;;;;;;;:::o;6460:41::-;;;;;;;;;;;;;:::o;22617:20::-;;;;;;:::o;25505:37::-;;;;;;;;;;;;;;;;;;;:::o;6898:703::-;6960:4;7051:11;;;;:31;;-1:-1:-1;7066:10:0;:16;;;;7051:31;7047:477;;;7130:10;7099:18;7120:21;;;;;;;;;;;7164:20;;;;7156:55;;;;;;;;;;;;:::i;:::-;7230:10;:16;;;;7226:287;;7275:16;;;7267:51;;;;;;;;;;;;:::i;:::-;7398:10;7388:9;:21;;;;;;;;;;;7412:19;;;7388:43;;:21;7474:13;;;;;;:23;;;;;;7226:287;7047:477;;7560:2;7539:32;;7548:10;7539:32;;;7564:6;7539:32;;;;;;:::i;10363:674::-;10583:20;;;10575:57;;;;;;;;;;;;:::i;:::-;10669:8;10651:15;:26;10643:53;;;;;;;;;;;;:::i;:::-;10729:155;;;10771:21;10818:14;;;:6;:14;;;;;;;;;:16;;10729:128;10818:16;;;;;;10760:85;;10729:128;;10739:108;;10760:85;;9896:66;;10878:6;;10802:7;;10811:5;;10818:16;10836:8;;10760:85;;:::i;:::-;;;;;;;;;;;;;10750:96;;;;;;10739:10;:108::i;:::-;10849:1;10852;10855;10729:128;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:155;;;10707:229;;;;;;;;;;;;:::i;:::-;10947:17;;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;;:34;;;10997:32;;;;;10976:5;;10997:32;:::i;:::-;;;;;;;;10363:674;;;;;;;:::o;6322:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22644:27::-;;;;;;:::o;5000:270::-;5051:7;5132:9;5180:25;5169:36;;:93;;5228:34;5254:7;5228:25;:34::i;:::-;5169:93;;;5208:17;5169:93;5162:100;;;5000:270;:::o;352:141::-;445:5;;;440:16;;;;432:53;;;;;;;;;;;;:::i;647:155::-;705:9;735:6;;;:30;;-1:-1:-1;;750:5:0;;;764:1;759;750:5;759:1;745:15;;;;;:20;735:30;727:67;;;;;;;;;;;;:::i;810:161::-;859:9;889:16;;;;881:57;;;;;;;;;;;;:::i;:::-;-1:-1:-1;961:1:0;810:161::o;5278:204::-;5339:14;5402:40;;;;;;;;;;;;;;;;;5444:18;:16;:18::i;:::-;5464:8;5385:88;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5375:99;;;;;;5366:108;;5278:204;;;:::o;4285:187::-;4359:7;3875:68;4440:7;4457:4;4396:67;;;;;;;;;;:::i;998:241:-1:-;;1102:2;1090:9;1081:7;1077:23;1073:32;1070:2;;;-1:-1;;1108:12;1070:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1160:63;1064:175;-1:-1;;;1064:175::o;1246:366::-;;;1367:2;1355:9;1346:7;1342:23;1338:32;1335:2;;;-1:-1;;1373:12;1335:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1425:63;-1:-1;1525:2;1564:22;;72:20;97:33;72:20;97:33;:::i;:::-;1533:63;;;;1329:283;;;;;:::o;1619:491::-;;;;1757:2;1745:9;1736:7;1732:23;1728:32;1725:2;;;-1:-1;;1763:12;1725:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1815:63;-1:-1;1915:2;1954:22;;72:20;97:33;72:20;97:33;:::i;:::-;1719:391;;1923:63;;-1:-1;;;2023:2;2062:22;;;;654:20;;1719:391::o;2117:991::-;;;;;;;;2321:3;2309:9;2300:7;2296:23;2292:33;2289:2;;;-1:-1;;2328:12;2289:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2380:63;-1:-1;2480:2;2519:22;;72:20;97:33;72:20;97:33;:::i;:::-;2488:63;-1:-1;2588:2;2627:22;;654:20;;-1:-1;2696:2;2735:22;;654:20;;-1:-1;2804:3;2842:22;;930:20;23737:4;23726:16;;25336:33;;25326:2;;-1:-1;;25373:12;25326:2;2283:825;;;;-1:-1;2283:825;;;;2813:61;2911:3;2951:22;;340:20;;-1:-1;3020:3;3060:22;;;340:20;;2283:825;-1:-1;;2283:825::o;3115:479::-;;;;3247:2;3235:9;3226:7;3222:23;3218:32;3215:2;;;-1:-1;;3253:12;3215:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3305:63;-1:-1;3405:2;3441:22;;206:20;231:30;206:20;231:30;:::i;:::-;3413:60;-1:-1;3510:2;3546:22;;206:20;231:30;206:20;231:30;:::i;:::-;3518:60;;;;3209:385;;;;;:::o;3601:366::-;;;3722:2;3710:9;3701:7;3697:23;3693:32;3690:2;;;-1:-1;;3728:12;3690:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3780:63;3880:2;3919:22;;;;654:20;;-1:-1;;;3684:283::o;3974:531::-;;;;4132:2;4120:9;4111:7;4107:23;4103:32;4100:2;;;-1:-1;;4138:12;4100:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;4190:63;-1:-1;4290:2;4329:22;;654:20;;-1:-1;4398:2;4457:22;;497:20;522:53;497:20;522:53;:::i;4512:241::-;;4616:2;4604:9;4595:7;4591:23;4587:32;4584:2;;;-1:-1;;4622:12;4584:2;-1:-1;654:20;;4578:175;-1:-1;4578:175::o;4760:399::-;;;4892:2;4880:9;4871:7;4867:23;4863:32;4860:2;;;-1:-1;;4898:12;4860:2;-1:-1;;802:13;;5061:2;5111:22;;;802:13;;;;;-1:-1;4854:305::o;11721:553::-;;6503:5;22585:12;6615:52;6660:6;6655:3;6648:4;6641:5;6637:16;6615:52;:::i;:::-;6679:16;;;;5468:37;;;-1:-1;6648:4;12126:12;;5468:37;12237:12;;;11913:361;-1:-1;11913:361::o;12281:222::-;23532:42;23521:54;;;;5237:37;;12408:2;12393:18;;12379:124::o;12510:210::-;23116:13;;23109:21;5351:34;;12631:2;12616:18;;12602:118::o;12727:222::-;5468:37;;;12854:2;12839:18;;12825:124::o;12956:780::-;5468:37;;;23532:42;23521:54;;;13388:2;13373:18;;5237:37;23521:54;;;;13471:2;13456:18;;5237:37;13554:2;13539:18;;5468:37;13637:3;13622:19;;5468:37;;;;13721:3;13706:19;;5468:37;13223:3;13208:19;;13194:542::o;13743:444::-;5468:37;;;14090:2;14075:18;;5468:37;;;;23532:42;23521:54;14173:2;14158:18;;5237:37;13926:2;13911:18;;13897:290::o;14194:548::-;5468:37;;;23737:4;23726:16;;;;14562:2;14547:18;;11674:35;14645:2;14630:18;;5468:37;14728:2;14713:18;;5468:37;14401:3;14386:19;;14372:370::o;14749:712::-;23532:42;23521:54;;;5761:64;;23521:54;;;15189:2;15174:18;;5237:37;23521:54;;;;15272:2;15257:18;;5237:37;15355:2;15340:18;;5468:37;;;;15446:3;15431:19;;5916:58;;;;15010:3;14995:19;;14981:480::o;15468:310::-;;15615:2;15636:17;15629:47;6131:5;22585:12;22742:6;15615:2;15604:9;15600:18;22730:19;6225:52;6270:6;22770:14;15604:9;22770:14;15615:2;6251:5;6247:16;6225:52;:::i;:::-;24608:2;24588:14;24604:7;24584:28;6289:39;;;;22770:14;6289:39;;15586:192;-1:-1;;15586:192::o;15785:416::-;15985:2;15999:47;;;6932:2;15970:18;;;22730:19;6968:24;22770:14;;;6948:45;7012:12;;;15956:245::o;16208:416::-;16408:2;16422:47;;;7263:2;16393:18;;;22730:19;7299:23;22770:14;;;7279:44;7342:12;;;16379:245::o;16631:416::-;16831:2;16845:47;;;7593:2;16816:18;;;22730:19;7629:30;22770:14;;;7609:51;7679:12;;;16802:245::o;17054:416::-;17254:2;17268:47;;;7930:2;17239:18;;;22730:19;7966:26;22770:14;;;7946:47;8012:12;;;17225:245::o;17477:416::-;17677:2;17691:47;;;8263:2;17662:18;;;22730:19;8299:26;22770:14;;;8279:47;8345:12;;;17648:245::o;17900:416::-;18100:2;18114:47;;;8596:2;18085:18;;;22730:19;8632:17;22770:14;;;8612:38;8669:12;;;18071:245::o;18323:416::-;18523:2;18537:47;;;8920:2;18508:18;;;22730:19;8956:16;22770:14;;;8936:37;8992:12;;;18494:245::o;18746:416::-;18946:2;18960:47;;;18931:18;;;22730:19;9279:34;22770:14;;;9259:55;9333:12;;;18917:245::o;19169:416::-;19369:2;19383:47;;;19354:18;;;22730:19;9620:34;22770:14;;;9600:55;9674:12;;;19340:245::o;19592:416::-;19792:2;19806:47;;;9925:2;19777:18;;;22730:19;9961:30;22770:14;;;9941:51;10011:12;;;19763:245::o;20015:416::-;20215:2;20229:47;;;10262:2;20200:18;;;22730:19;10298:26;22770:14;;;10278:47;10344:12;;;20186:245::o;20438:416::-;20638:2;20652:47;;;10595:2;20623:18;;;22730:19;10631:24;22770:14;;;10611:45;10675:12;;;20609:245::o;20861:416::-;21061:2;21075:47;;;10926:2;21046:18;;;22730:19;10962:26;22770:14;;;10942:47;11008:12;;;21032:245::o;21284:416::-;21484:2;21498:47;;;11259:2;21469:18;;;22730:19;11295:26;22770:14;;;11275:47;11341:12;;;21455:245::o;21707:333::-;23412:34;23401:46;;;11438:37;;23401:46;;22026:2;22011:18;;11438:37;21862:2;21847:18;;21833:207::o;22276:214::-;23737:4;23726:16;;;;11674:35;;22399:2;22384:18;;22370:120::o;24163:268::-;24228:1;24235:101;24249:6;24246:1;24243:13;24235:101;;;24316:11;;;24310:18;24297:11;;;24290:39;24271:2;24264:10;24235:101;;;24351:6;24348:1;24345:13;24342:2;;;24228:1;24407:6;24402:3;24398:16;24391:27;24342:2;;24212:219;;;:::o;24625:117::-;23532:42;24712:5;23521:54;24687:5;24684:35;24674:2;;24733:1;;24723:12;24674:2;24668:74;:::o;24749:111::-;24830:5;23116:13;23109:21;24808:5;24805:32;24795:2;;24851:1;;24841:12
Swarm Source
ipfs://e98cc5840c217883fec6085f37f8bf1aec9c9edfdb3868aed3e7e8a4bfb059fb
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.