ERC-20
Overview
Max Total Supply
5,220,559.351078230929705059 LAMBDA
Holders
1,035
Market
Price
$0.00 @ 0.000000 FTM
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.75804320575327003 LAMBDAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
SpartacusMoneyV1
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2021-12-05 */ // 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 SpartacusMoneyV1 is ERC20, BoringOwnable { using BoringMath for uint256; // ERC20 'variables' string public constant symbol = "LAMBDA"; string public constant name = "Spartacus 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), "LAMBDA: 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], "LAMBDA: 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
60c060405234801561001057600080fd5b504660a081905261002081610069565b60805250600380546001600160a01b031916339081179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36100dc565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921882306040516020016100a0939291906100bd565b604051602081830303815290604052805190602001209050919050565b92835260208301919091526001600160a01b0316604082015260600190565b60805160a0516114446100ff60003980610c17525080610c4c52506114446000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063586fc5b5116100ad57806395d89b411161007157806395d89b411461025b578063a9059cbb14610263578063d505accf14610276578063dd62ed3e14610289578063e30c39781461029c5761012c565b8063586fc5b5146101f757806369e402651461020d57806370a08231146102205780637ecebe00146102335780638da5cb5b146102465761012c565b8063313ce567116100f4578063313ce567146101ac5780633644e515146101c157806340c10f19146101c957806342966c68146101dc5780634e71e0c8146101ef5761012c565b806306fdde0314610131578063078dfbe71461014f578063095ea7b31461016457806318160ddd1461018457806323b872dd14610199575b600080fd5b6101396102a4565b604051610146919061106f565b60405180910390f35b61016261015d366004610e95565b6102cf565b005b610177610172366004610edf565b6103bf565b6040516101469190610fb6565b61018c61042a565b6040516101469190610fc1565b6101776101a7366004610de0565b610430565b6101b4610598565b604051610146919061138a565b61018c61059d565b6101626101d7366004610edf565b6105ac565b6101626101ea366004610f40565b61072f565b6101626107a8565b6101ff610836565b604051610146929190611370565b61016261021b366004610f0a565b610850565b61018c61022e366004610d85565b610910565b61018c610241366004610d85565b610922565b61024e610934565b6040516101469190610fa2565b610139610943565b610177610271366004610edf565b610965565b610162610284366004610e20565b610a45565b61018c610297366004610da8565b610be6565b61024e610c03565b6040518060400160405280600f81526020016e537061727461637573204d6f6e657960881b81525081565b6003546001600160a01b031633146103025760405162461bcd60e51b81526004016102f9906111fa565b60405180910390fd5b811561039e576001600160a01b03831615158061031c5750805b6103385760405162461bcd60e51b81526004016102f9906110fe565b6003546040516001600160a01b038086169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0385166001600160a01b0319918216179091556004805490911690556103ba565b600480546001600160a01b0319166001600160a01b0385161790555b505050565b3360008181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610418908690610fc1565b60405180910390a35060015b92915050565b60055481565b60008115610555576001600160a01b038416600090815260208190526040902054828110156104715760405162461bcd60e51b81526004016102f9906112d2565b836001600160a01b0316856001600160a01b031614610553576001600160a01b0385166000908152600160209081526040808320338452909152902054600019811461050057838110156104d75760405162461bcd60e51b81526004016102f99061119b565b6001600160a01b0386166000908152600160209081526040808320338452909152902084820390555b6001600160a01b0385166105265760405162461bcd60e51b81526004016102f9906110ce565b506001600160a01b0380861660009081526020819052604080822086850390559186168152208054840190555b505b826001600160a01b0316846001600160a01b03166000805160206113ef833981519152846040516105869190610fc1565b60405180910390a35060019392505050565b601281565b60006105a7610c12565b905090565b6003546001600160a01b031633146105d65760405162461bcd60e51b81526004016102f9906111fa565b6001600160a01b0382166105fc5760405162461bcd60e51b81526004016102f990611264565b6006546000906106499083906201517f1942016001600160801b039091161061063757600654600160801b90046001600160801b031661063a565b60005b6001600160801b031690610c72565b90506005546000148061067e575080620186a0610673613a98600554610c9590919063ffffffff16565b8161067a57fe5b0410155b61068757600080fd5b61069042610ccc565b600680546fffffffffffffffffffffffffffffffff19166001600160801b03929092169190911790556106c281610ccc565b600680546001600160801b03928316600160801b02921691909117905560058054830190556001600160a01b038316600081815260208190526040808220805486019055516000805160206113ef83398151915290610722908690610fc1565b60405180910390a3505050565b3360009081526020819052604090205481111561075e5760405162461bcd60e51b81526004016102f9906110a2565b3360008181526020819052604080822080548590039055600580548590039055519091906000805160206113ef8339815191529061079d908590610fc1565b60405180910390a350565b6004546001600160a01b03163381146107d35760405162461bcd60e51b81526004016102f99061122f565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b039092166001600160a01b0319928316179055600480549091169055565b6006546001600160801b0380821691600160801b90041682565b6003546001600160a01b0316331461087a5760405162461bcd60e51b81526004016102f9906111fa565b61088481836105ac565b60405162ae511b60e21b81526001600160a01b038216906302b9446c906108b890309085908890889060009060040161103b565b6040805180830381600087803b1580156108d157600080fd5b505af11580156108e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109099190610f58565b5050505050565b60006020819052908152604090205481565b60026020526000908152604090205481565b6003546001600160a01b031681565b604051806040016040528060068152602001654c414d42444160d01b81525081565b60008115158061097d5750336001600160a01b038416145b15610a145733600090815260208190526040902054828110156109b25760405162461bcd60e51b81526004016102f9906112d2565b336001600160a01b03851614610a12576001600160a01b0384166109e85760405162461bcd60e51b81526004016102f9906110ce565b3360009081526020819052604080822085840390556001600160a01b038616825290208054840190555b505b826001600160a01b0316336001600160a01b03166000805160206113ef833981519152846040516104189190610fc1565b6001600160a01b038716610a6b5760405162461bcd60e51b81526004016102f99061129b565b834210610a8a5760405162461bcd60e51b81526004016102f9906111d2565b6001600160a01b0387166000818152600260209081526040918290208054600181810190925592519092610b0892610aed927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e92918e9101610fca565b60405160208183030381529060405280519060200120610cf9565b85858560405160008152602001604052604051610b28949392919061101d565b6020604051602081039080840390855afa158015610b4a573d6000803e3d6000fd5b505050602060405103516001600160a01b031614610b7a5760405162461bcd60e51b81526004016102f990611339565b6001600160a01b038088166000818152600160209081526040808320948b168084529490915290819020889055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bd5908990610fc1565b60405180910390a350505050505050565b600160209081526000928352604080842090915290825290205481565b6004546001600160a01b031681565b6000467f00000000000000000000000000000000000000000000000000000000000000008114610c4a57610c4581610d4e565b610c6c565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b818101818110156104245760405162461bcd60e51b81526004016102f990611164565b6000811580610cb057505080820282828281610cad57fe5b04145b6104245760405162461bcd60e51b81526004016102f990611302565b60006001600160801b03821115610cf55760405162461bcd60e51b81526004016102f99061112d565b5090565b600060405180604001604052806002815260200161190160f01b815250610d1e610c12565b83604051602001610d3193929190610f7b565b604051602081830303815290604052805190602001209050919050565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692188230604051602001610d3193929190610ffe565b600060208284031215610d96578081fd5b8135610da1816113c8565b9392505050565b60008060408385031215610dba578081fd5b8235610dc5816113c8565b91506020830135610dd5816113c8565b809150509250929050565b600080600060608486031215610df4578081fd5b8335610dff816113c8565b92506020840135610e0f816113c8565b929592945050506040919091013590565b600080600080600080600060e0888a031215610e3a578283fd5b8735610e45816113c8565b96506020880135610e55816113c8565b95506040880135945060608801359350608088013560ff81168114610e78578384fd5b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215610ea9578283fd5b8335610eb4816113c8565b92506020840135610ec4816113e0565b91506040840135610ed4816113e0565b809150509250925092565b60008060408385031215610ef1578182fd5b8235610efc816113c8565b946020939093013593505050565b600080600060608486031215610f1e578283fd5b8335610f29816113c8565b9250602084013591506040840135610ed4816113c8565b600060208284031215610f51578081fd5b5035919050565b60008060408385031215610f6a578182fd5b505080516020909101519092909150565b60008451610f8d818460208901611398565b91909101928352506020820152604001919050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b92835260208301919091526001600160a01b0316604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b600060208252825180602084015261108e816040850160208701611398565b601f01601f19169190910160400192915050565b602080825260129082015271098829a8488827440dcdee840cadcdeeaced60731b604082015260600190565b60208082526016908201527545524332303a206e6f207a65726f206164647265737360501b604082015260600190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20616c6c6f77616e636520746f6f206c6f770000000000000000604082015260600190565b6020808252600e908201526d115490cc8c0e88115e1c1a5c995960921b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601f908201527f4c414d4244413a206e6f206d696e7420746f207a65726f206164647265737300604082015260600190565b60208082526018908201527f45524332303a204f776e65722063616e6e6f7420626520300000000000000000604082015260600190565b60208082526016908201527545524332303a2062616c616e636520746f6f206c6f7760501b604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20496e76616c6964205369676e61747572650000000000000000604082015260600190565b6001600160801b0392831681529116602082015260400190565b60ff91909116815260200190565b60005b838110156113b357818101518382015260200161139b565b838111156113c2576000848401525b50505050565b6001600160a01b03811681146113dd57600080fd5b50565b80151581146113dd57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b05a62df31386c09a0e2db27ea8195d88f5c89a0e4a5b5504ab8989cf59a9c4664736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063586fc5b5116100ad57806395d89b411161007157806395d89b411461025b578063a9059cbb14610263578063d505accf14610276578063dd62ed3e14610289578063e30c39781461029c5761012c565b8063586fc5b5146101f757806369e402651461020d57806370a08231146102205780637ecebe00146102335780638da5cb5b146102465761012c565b8063313ce567116100f4578063313ce567146101ac5780633644e515146101c157806340c10f19146101c957806342966c68146101dc5780634e71e0c8146101ef5761012c565b806306fdde0314610131578063078dfbe71461014f578063095ea7b31461016457806318160ddd1461018457806323b872dd14610199575b600080fd5b6101396102a4565b604051610146919061106f565b60405180910390f35b61016261015d366004610e95565b6102cf565b005b610177610172366004610edf565b6103bf565b6040516101469190610fb6565b61018c61042a565b6040516101469190610fc1565b6101776101a7366004610de0565b610430565b6101b4610598565b604051610146919061138a565b61018c61059d565b6101626101d7366004610edf565b6105ac565b6101626101ea366004610f40565b61072f565b6101626107a8565b6101ff610836565b604051610146929190611370565b61016261021b366004610f0a565b610850565b61018c61022e366004610d85565b610910565b61018c610241366004610d85565b610922565b61024e610934565b6040516101469190610fa2565b610139610943565b610177610271366004610edf565b610965565b610162610284366004610e20565b610a45565b61018c610297366004610da8565b610be6565b61024e610c03565b6040518060400160405280600f81526020016e537061727461637573204d6f6e657960881b81525081565b6003546001600160a01b031633146103025760405162461bcd60e51b81526004016102f9906111fa565b60405180910390fd5b811561039e576001600160a01b03831615158061031c5750805b6103385760405162461bcd60e51b81526004016102f9906110fe565b6003546040516001600160a01b038086169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0385166001600160a01b0319918216179091556004805490911690556103ba565b600480546001600160a01b0319166001600160a01b0385161790555b505050565b3360008181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610418908690610fc1565b60405180910390a35060015b92915050565b60055481565b60008115610555576001600160a01b038416600090815260208190526040902054828110156104715760405162461bcd60e51b81526004016102f9906112d2565b836001600160a01b0316856001600160a01b031614610553576001600160a01b0385166000908152600160209081526040808320338452909152902054600019811461050057838110156104d75760405162461bcd60e51b81526004016102f99061119b565b6001600160a01b0386166000908152600160209081526040808320338452909152902084820390555b6001600160a01b0385166105265760405162461bcd60e51b81526004016102f9906110ce565b506001600160a01b0380861660009081526020819052604080822086850390559186168152208054840190555b505b826001600160a01b0316846001600160a01b03166000805160206113ef833981519152846040516105869190610fc1565b60405180910390a35060019392505050565b601281565b60006105a7610c12565b905090565b6003546001600160a01b031633146105d65760405162461bcd60e51b81526004016102f9906111fa565b6001600160a01b0382166105fc5760405162461bcd60e51b81526004016102f990611264565b6006546000906106499083906201517f1942016001600160801b039091161061063757600654600160801b90046001600160801b031661063a565b60005b6001600160801b031690610c72565b90506005546000148061067e575080620186a0610673613a98600554610c9590919063ffffffff16565b8161067a57fe5b0410155b61068757600080fd5b61069042610ccc565b600680546fffffffffffffffffffffffffffffffff19166001600160801b03929092169190911790556106c281610ccc565b600680546001600160801b03928316600160801b02921691909117905560058054830190556001600160a01b038316600081815260208190526040808220805486019055516000805160206113ef83398151915290610722908690610fc1565b60405180910390a3505050565b3360009081526020819052604090205481111561075e5760405162461bcd60e51b81526004016102f9906110a2565b3360008181526020819052604080822080548590039055600580548590039055519091906000805160206113ef8339815191529061079d908590610fc1565b60405180910390a350565b6004546001600160a01b03163381146107d35760405162461bcd60e51b81526004016102f99061122f565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b039092166001600160a01b0319928316179055600480549091169055565b6006546001600160801b0380821691600160801b90041682565b6003546001600160a01b0316331461087a5760405162461bcd60e51b81526004016102f9906111fa565b61088481836105ac565b60405162ae511b60e21b81526001600160a01b038216906302b9446c906108b890309085908890889060009060040161103b565b6040805180830381600087803b1580156108d157600080fd5b505af11580156108e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109099190610f58565b5050505050565b60006020819052908152604090205481565b60026020526000908152604090205481565b6003546001600160a01b031681565b604051806040016040528060068152602001654c414d42444160d01b81525081565b60008115158061097d5750336001600160a01b038416145b15610a145733600090815260208190526040902054828110156109b25760405162461bcd60e51b81526004016102f9906112d2565b336001600160a01b03851614610a12576001600160a01b0384166109e85760405162461bcd60e51b81526004016102f9906110ce565b3360009081526020819052604080822085840390556001600160a01b038616825290208054840190555b505b826001600160a01b0316336001600160a01b03166000805160206113ef833981519152846040516104189190610fc1565b6001600160a01b038716610a6b5760405162461bcd60e51b81526004016102f99061129b565b834210610a8a5760405162461bcd60e51b81526004016102f9906111d2565b6001600160a01b0387166000818152600260209081526040918290208054600181810190925592519092610b0892610aed927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e92918e9101610fca565b60405160208183030381529060405280519060200120610cf9565b85858560405160008152602001604052604051610b28949392919061101d565b6020604051602081039080840390855afa158015610b4a573d6000803e3d6000fd5b505050602060405103516001600160a01b031614610b7a5760405162461bcd60e51b81526004016102f990611339565b6001600160a01b038088166000818152600160209081526040808320948b168084529490915290819020889055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bd5908990610fc1565b60405180910390a350505050505050565b600160209081526000928352604080842090915290825290205481565b6004546001600160a01b031681565b6000467f00000000000000000000000000000000000000000000000000000000000000fa8114610c4a57610c4581610d4e565b610c6c565b7fdb8273bd701f9649ad7ece4422a95a7d572adbef4edb78115403154340921f3c5b91505090565b818101818110156104245760405162461bcd60e51b81526004016102f990611164565b6000811580610cb057505080820282828281610cad57fe5b04145b6104245760405162461bcd60e51b81526004016102f990611302565b60006001600160801b03821115610cf55760405162461bcd60e51b81526004016102f99061112d565b5090565b600060405180604001604052806002815260200161190160f01b815250610d1e610c12565b83604051602001610d3193929190610f7b565b604051602081830303815290604052805190602001209050919050565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692188230604051602001610d3193929190610ffe565b600060208284031215610d96578081fd5b8135610da1816113c8565b9392505050565b60008060408385031215610dba578081fd5b8235610dc5816113c8565b91506020830135610dd5816113c8565b809150509250929050565b600080600060608486031215610df4578081fd5b8335610dff816113c8565b92506020840135610e0f816113c8565b929592945050506040919091013590565b600080600080600080600060e0888a031215610e3a578283fd5b8735610e45816113c8565b96506020880135610e55816113c8565b95506040880135945060608801359350608088013560ff81168114610e78578384fd5b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215610ea9578283fd5b8335610eb4816113c8565b92506020840135610ec4816113e0565b91506040840135610ed4816113e0565b809150509250925092565b60008060408385031215610ef1578182fd5b8235610efc816113c8565b946020939093013593505050565b600080600060608486031215610f1e578283fd5b8335610f29816113c8565b9250602084013591506040840135610ed4816113c8565b600060208284031215610f51578081fd5b5035919050565b60008060408385031215610f6a578182fd5b505080516020909101519092909150565b60008451610f8d818460208901611398565b91909101928352506020820152604001919050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b92835260208301919091526001600160a01b0316604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b600060208252825180602084015261108e816040850160208701611398565b601f01601f19169190910160400192915050565b602080825260129082015271098829a8488827440dcdee840cadcdeeaced60731b604082015260600190565b60208082526016908201527545524332303a206e6f207a65726f206164647265737360501b604082015260600190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20616c6c6f77616e636520746f6f206c6f770000000000000000604082015260600190565b6020808252600e908201526d115490cc8c0e88115e1c1a5c995960921b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601f908201527f4c414d4244413a206e6f206d696e7420746f207a65726f206164647265737300604082015260600190565b60208082526018908201527f45524332303a204f776e65722063616e6e6f7420626520300000000000000000604082015260600190565b60208082526016908201527545524332303a2062616c616e636520746f6f206c6f7760501b604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b60208082526018908201527f45524332303a20496e76616c6964205369676e61747572650000000000000000604082015260600190565b6001600160801b0392831681529116602082015260400190565b60ff91909116815260200190565b60005b838110156113b357818101518382015260200161139b565b838111156113c2576000848401525b50505050565b6001600160a01b03811681146113dd57600080fd5b50565b80151581146113dd57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b05a62df31386c09a0e2db27ea8195d88f5c89a0e4a5b5504ab8989cf59a9c4664736f6c634300060c0033
Deployed Bytecode Sourcemap
25383:1862:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25548:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23471:506;;;;;;:::i;:::-;;:::i;:::-;;9354:214;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25644:35::-;;;:::i;:::-;;;;;;;:::i;7908:1151::-;;;;;;:::i;:::-;;:::i;25602:35::-;;;:::i;:::-;;;;;;;:::i;9630:104::-;;;:::i;25967:744::-;;;;;;:::i;:::-;;:::i;26992:250::-;;;;;;:::i;:::-;;:::i;24059:340::-;;;:::i;25767:23::-;;;:::i;:::-;;;;;;;;:::i;26719:265::-;;;;;;:::i;:::-;;:::i;6208:53::-;;;;;;:::i;:::-;;:::i;6460:41::-;;;;;;:::i;:::-;;:::i;22617:20::-;;;:::i;:::-;;;;;;;:::i;25501:40::-;;;:::i;6898:703::-;;;;;;:::i;:::-;;:::i;10363:674::-;;;;;;:::i;:::-;;:::i;6322:73::-;;;;;;:::i;:::-;;:::i;22644:27::-;;;:::i;25548:47::-;;;;;;;;;;;;;;-1:-1:-1;;;25548:47:0;;;;:::o;23471:506::-;24527:5;;-1:-1:-1;;;;;24527:5:0;24513:10;:19;24505:64;;;;-1:-1:-1;;;24505:64:0;;;;;;;:::i;:::-;;;;;;;;;23610:6:::1;23606:364;;;-1:-1:-1::0;;;;;23664:22:0;::::1;::::0;::::1;::::0;:34:::1;;;23690:8;23664:34;23656:68;;;;-1:-1:-1::0;;;23656:68:0::1;;;;;;;:::i;:::-;23791:5;::::0;23770:37:::1;::::0;-1:-1:-1;;;;;23770:37:0;;::::1;::::0;23791:5:::1;::::0;23770:37:::1;::::0;23791:5:::1;::::0;23770:37:::1;23822:5;:16:::0;;-1:-1:-1;;;;;23822:16:0;::::1;-1:-1:-1::0;;;;;;23822:16:0;;::::1;;::::0;;;23853:12:::1;:25:::0;;;;::::1;::::0;;23606:364:::1;;;23935:12;:23:::0;;-1:-1:-1;;;;;;23935:23:0::1;-1:-1:-1::0;;;;;23935:23:0;::::1;;::::0;;23606:364:::1;23471:506:::0;;;:::o;9354:214::-;9456:10;9429:4;9446:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;9446:30:0;;;;;;;;;;:39;;;9501:37;9429:4;;9446:30;;9501:37;;;;9479:6;;9501:37;:::i;:::-;;;;;;;;-1:-1:-1;9556:4:0;9354:214;;;;;:::o;25644:35::-;;;;:::o;7908:1151::-;8022:4;8107:11;;8103:885;;-1:-1:-1;;;;;8156:15:0;;8135:18;8156:15;;;;;;;;;;;8194:20;;;;8186:55;;;;-1:-1:-1;;;8186:55:0;;;;;;;:::i;:::-;8270:2;-1:-1:-1;;;;;8262:10:0;:4;-1:-1:-1;;;;;8262:10:0;;8258:719;;-1:-1:-1;;;;;8320:15:0;;8293:24;8320:15;;;:9;:15;;;;;;;;8336:10;8320:27;;;;;;;;-1:-1:-1;;8471:37:0;;8467:251;;8561:6;8541:16;:26;;8533:63;;;;-1:-1:-1;;;8533:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8619:15:0;;;;;;:9;:15;;;;;;;;8635:10;8619:27;;;;;;;8649:25;;;8619:55;;8467:251;-1:-1:-1;;;;;8744:16:0;;8736:51;;;;-1:-1:-1;;;8736:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;8858:15:0;;;:9;:15;;;;;;;;;;;8876:19;;;8858:37;;8938:13;;;;;;:23;;;;;;8258:719;8103:885;;9018:2;-1:-1:-1;;;;;9003:26:0;9012:4;-1:-1:-1;;;;;9003:26:0;-1:-1:-1;;;;;;;;;;;9022:6:0;9003:26;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;9047:4:0;7908:1151;;;;;:::o;25602:35::-;25635:2;25602:35;:::o;9630:104::-;9681:7;9708:18;:16;:18::i;:::-;9701:25;;9630:104;:::o;25967:744::-;24527:5;;-1:-1:-1;;;;;24527:5:0;24513:10;:19;24505:64;;;;-1:-1:-1;;;24505:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26045:16:0;::::1;26037:60;;;;-1:-1:-1::0;;;26037:60:0::1;;;;;;;:::i;:::-;26271:8;:13:::0;26235:25:::1;::::0;26263:91:::1;::::0;26347:6;;-1:-1:-1;;26287:15:0::1;:32:::0;-1:-1:-1;;;;;26271:13:0;;::::1;:48;:70;;26326:8;:15:::0;-1:-1:-1;;;26326:15:0;::::1;-1:-1:-1::0;;;;;26326:15:0::1;26271:70;;;26322:1;26271:70;-1:-1:-1::0;;;;;26263:79:0::1;::::0;:83:::1;:91::i;:::-;26235:119;;26373:11;;26388:1;26373:16;:94;;;;26450:17;25955:3;26393:33;25898:5;26393:11;;:15;;:33;;;;:::i;:::-;:53;;;;;;:74;;26373:94;26365:103;;;::::0;::::1;;26497:23;:15;:21;:23::i;:::-;26481:8;:39:::0;;-1:-1:-1;;26481:39:0::1;-1:-1:-1::0;;;;;26481:39:0;;;::::1;::::0;;;::::1;::::0;;26549:25:::1;:17:::0;:23:::1;:25::i;:::-;26531:8;:43:::0;;-1:-1:-1;;;;;26531:43:0;;::::1;-1:-1:-1::0;;;26531:43:0::1;::::0;::::1;::::0;;;::::1;::::0;;26601:11:::1;::::0;;:20;::::1;26587:34:::0;;-1:-1:-1;;;;;26632:13:0;::::1;26531:15;26632:13:::0;;;::::1;::::0;;;;;;;:23;;;::::1;::::0;;26671:32;-1:-1:-1;;;;;;;;;;;26671:32:0;::::1;::::0;26615:6;;26671:32:::1;:::i;:::-;;;;;;;;24580:1;25967:744:::0;;:::o;26992:250::-;27068:10;27058:9;:21;;;;;;;;;;;27048:31;;;27040:62;;;;-1:-1:-1;;;27040:62:0;;;;;;;:::i;:::-;27125:10;27115:9;:21;;;;;;;;;;;:31;;;;;;;27157:11;:21;;;;;;;27194:40;27115:9;;27125:10;-1:-1:-1;;;;;;;;;;;27194:40:0;;;27140:6;;27194:40;:::i;:::-;;;;;;;;26992:250;:::o;24059:340::-;24127:12;;-1:-1:-1;;;;;24127:12:0;24179:10;:27;;24171:72;;;;-1:-1:-1;;;24171:72:0;;;;;;;:::i;:::-;24302:5;;24281:42;;-1:-1:-1;;;;;24281:42:0;;;;24302:5;;24281:42;;24302:5;;24281:42;24334:5;:21;;-1:-1:-1;;;;;24334:21:0;;;-1:-1:-1;;;;;;24334:21:0;;;;;;24366:12;:25;;;;;;;24059:340::o;25767:23::-;;;-1:-1:-1;;;;;25767:23:0;;;;-1:-1:-1;;;25767:23:0;;;;:::o;26719:265::-;24527:5;;-1:-1:-1;;;;;24527:5:0;24513:10;:19;24505:64;;;;-1:-1:-1;;;24505:64:0;;;;;;;:::i;:::-;26858:31:::1;26871:8;26882:6;26858:4;:31::i;:::-;26900:76;::::0;-1:-1:-1;;;26900:76:0;;-1:-1:-1;;;;;26900:16:0;::::1;::::0;::::1;::::0;:76:::1;::::0;26932:4:::1;::::0;26900:8;;26959:5;;26966:6;;26974:1:::1;::::0;26900:76:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;26719:265:::0;;;:::o;6208:53::-;;;;;;;;;;;;;;:::o;6460:41::-;;;;;;;;;;;;;:::o;22617:20::-;;;-1:-1:-1;;;;;22617:20:0;;:::o;25501:40::-;;;;;;;;;;;;;;-1:-1:-1;;;25501:40:0;;;;:::o;6898:703::-;6960:4;7051:11;;;;:31;;-1:-1:-1;7066:10:0;-1:-1:-1;;;;;7066:16:0;;;7051:31;7047:477;;;7130:10;7099:18;7120:21;;;;;;;;;;;7164:20;;;;7156:55;;;;-1:-1:-1;;;7156:55:0;;;;;;;:::i;:::-;7230:10;-1:-1:-1;;;;;7230:16:0;;;7226:287;;-1:-1:-1;;;;;7275:16:0;;7267:51;;;;-1:-1:-1;;;7267:51:0;;;;;;;:::i;:::-;7398:10;7388:9;:21;;;;;;;;;;;7412:19;;;7388:43;;-1:-1:-1;;;;;7474:13:0;;;;;;:23;;;;;;7226:287;7047:477;;7560:2;-1:-1:-1;;;;;7539:32:0;7548:10;-1:-1:-1;;;;;7539:32:0;-1:-1:-1;;;;;;;;;;;7564:6:0;7539:32;;;;;;:::i;10363:674::-;-1:-1:-1;;;;;10583:20:0;;10575:57;;;;-1:-1:-1;;;10575:57:0;;;;;;;:::i;:::-;10669:8;10651:15;:26;10643:53;;;;-1:-1:-1;;;10643:53:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10729:155:0;;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;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10729:155:0;;10707:229;;;;-1:-1:-1;;;10707:229:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10947:17:0;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;;:34;;;10997:32;;;;;10976:5;;10997:32;:::i;:::-;;;;;;;;10363:674;;;;;;;:::o;6322:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22644:27::-;;;-1:-1:-1;;;;;22644:27:0;;:::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;;;;-1:-1:-1;;;432:53:0;;;;;;;:::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;;;;-1:-1:-1;;;727:67:0;;;;;;;:::i;810:161::-;859:9;-1:-1:-1;;;;;889:16:0;;;881:57;;;;-1:-1:-1;;;881:57:0;;;;;;;:::i;:::-;-1:-1:-1;961:1:0;810:161::o;5278:204::-;5339:14;5402:40;;;;;;;;;;;;;-1:-1:-1;;;5402:40:0;;;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;23743:4;23732:16;;25342:33;;25332:2;;-1:-1;;25379:12;25332: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;11727:553::-;;6503:5;22591:12;6615:52;6660:6;6655:3;6648:4;6641:5;6637:16;6615:52;:::i;:::-;6679:16;;;;5468:37;;;-1:-1;6648:4;12132:12;;5468:37;12243:12;;;11919:361;-1:-1;11919:361::o;12287:222::-;-1:-1;;;;;23527:54;;;;5237:37;;12414:2;12399:18;;12385:124::o;12516:210::-;23122:13;;23115:21;5351:34;;12637:2;12622:18;;12608:118::o;12733:222::-;5468:37;;;12860:2;12845:18;;12831:124::o;12962:780::-;5468:37;;;-1:-1;;;;;23527:54;;;13394:2;13379:18;;5237:37;23527:54;;;;13477:2;13462:18;;5237:37;13560:2;13545:18;;5468:37;13643:3;13628:19;;5468:37;;;;23538:42;13712:19;;5468:37;13229:3;13214:19;;13200:542::o;13749:444::-;5468:37;;;14096:2;14081:18;;5468:37;;;;-1:-1;;;;;23527:54;14179:2;14164:18;;5237:37;13932:2;13917:18;;13903:290::o;14200:548::-;5468:37;;;23743:4;23732:16;;;;14568:2;14553:18;;11680:35;14651:2;14636:18;;5468:37;14734:2;14719:18;;5468:37;14407:3;14392:19;;14378:370::o;14755:712::-;-1:-1;;;;;23527:54;;;5761:64;;23527:54;;;15195:2;15180:18;;5237:37;23527:54;;;;15278:2;15263:18;;5237:37;15361:2;15346:18;;5468:37;;;;15452:3;15437:19;;5916:58;;;;15016:3;15001:19;;14987:480::o;15474:310::-;;15621:2;15642:17;15635:47;6131:5;22591:12;22748:6;15621:2;15610:9;15606:18;22736:19;6225:52;6270:6;22776:14;15610:9;22776:14;15621:2;6251:5;6247:16;6225:52;:::i;:::-;24610:7;24594:14;-1:-1;;24590:28;6289:39;;;;22776:14;6289:39;;15592:192;-1:-1;;15592:192::o;15791:416::-;15991:2;16005:47;;;6932:2;15976:18;;;22736:19;-1:-1;;;22776:14;;;6948:41;7008:12;;;15962:245::o;16214:416::-;16414:2;16428:47;;;7259:2;16399:18;;;22736:19;-1:-1;;;22776:14;;;7275:45;7339:12;;;16385:245::o;16637:416::-;16837:2;16851:47;;;7590:2;16822:18;;;22736:19;-1:-1;;;22776:14;;;7606:44;7669:12;;;16808:245::o;17060:416::-;17260:2;17274:47;;;7920:2;17245:18;;;22736:19;7956:30;22776:14;;;7936:51;8006:12;;;17231:245::o;17483:416::-;17683:2;17697:47;;;8257:2;17668:18;;;22736:19;8293:26;22776:14;;;8273:47;8339:12;;;17654:245::o;17906:416::-;18106:2;18120:47;;;8590:2;18091:18;;;22736:19;8626:26;22776:14;;;8606:47;8672:12;;;18077:245::o;18329:416::-;18529:2;18543:47;;;8923:2;18514:18;;;22736:19;-1:-1;;;22776:14;;;8939:37;8995:12;;;18500:245::o;18752:416::-;18952:2;18966:47;;;18937:18;;;22736:19;9282:34;22776:14;;;9262:55;9336:12;;;18923:245::o;19175:416::-;19375:2;19389:47;;;19360:18;;;22736:19;9623:34;22776:14;;;9603:55;9677:12;;;19346:245::o;19598:416::-;19798:2;19812:47;;;9928:2;19783:18;;;22736:19;9964:33;22776:14;;;9944:54;10017:12;;;19769:245::o;20021:416::-;20221:2;20235:47;;;10268:2;20206:18;;;22736:19;10304:26;22776:14;;;10284:47;10350:12;;;20192:245::o;20444:416::-;20644:2;20658:47;;;10601:2;20629:18;;;22736:19;-1:-1;;;22776:14;;;10617:45;10681:12;;;20615:245::o;20867:416::-;21067:2;21081:47;;;10932:2;21052:18;;;22736:19;10968:26;22776:14;;;10948:47;11014:12;;;21038:245::o;21290:416::-;21490:2;21504:47;;;11265:2;21475:18;;;22736:19;11301:26;22776:14;;;11281:47;11347:12;;;21461:245::o;21713:333::-;-1:-1;;;;;23407:46;;;11444:37;;23407:46;;22032:2;22017:18;;11444:37;21868:2;21853:18;;21839:207::o;22282:214::-;23743:4;23732:16;;;;11680:35;;22405:2;22390:18;;22376:120::o;24169:268::-;24234:1;24241:101;24255:6;24252:1;24249:13;24241:101;;;24322:11;;;24316:18;24303:11;;;24296:39;24277:2;24270:10;24241:101;;;24357:6;24354:1;24351:13;24348:2;;;24234:1;24413:6;24408:3;24404:16;24397:27;24348:2;;24218:219;;;:::o;24631:117::-;-1:-1;;;;;23527:54;;24690:35;;24680:2;;24739:1;;24729:12;24680:2;24674:74;:::o;24755:111::-;24836:5;23122:13;23115:21;24814:5;24811:32;24801:2;;24857:1;;24847:12
Swarm Source
ipfs://b05a62df31386c09a0e2db27ea8195d88f5c89a0e4a5b5504ab8989cf59a9c46
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.