More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 143 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 106518177 | 7 days ago | IN | 0 FTM | 0.00012176 | ||||
Approve | 104007680 | 46 days ago | IN | 0 FTM | 0.00006367 | ||||
Approve | 58940905 | 719 days ago | IN | 0 FTM | 0.00187548 | ||||
Approve | 57664421 | 737 days ago | IN | 0 FTM | 0.00470625 | ||||
Approve | 57090527 | 746 days ago | IN | 0 FTM | 0.00722204 | ||||
Approve | 57087244 | 746 days ago | IN | 0 FTM | 0.00126281 | ||||
Approve | 56871016 | 749 days ago | IN | 0 FTM | 0.00125049 | ||||
Approve | 56870936 | 749 days ago | IN | 0 FTM | 0.00125124 | ||||
Approve | 56795937 | 750 days ago | IN | 0 FTM | 0.0015704 | ||||
Approve | 56753907 | 751 days ago | IN | 0 FTM | 0.00174918 | ||||
Approve | 56667690 | 752 days ago | IN | 0 FTM | 0.00212769 | ||||
Approve | 56621081 | 753 days ago | IN | 0 FTM | 0.00228275 | ||||
Approve | 56326015 | 758 days ago | IN | 0 FTM | 0.00119709 | ||||
Approve | 55438690 | 771 days ago | IN | 0 FTM | 0.00528982 | ||||
Approve | 54811927 | 780 days ago | IN | 0 FTM | 0.00710676 | ||||
Approve | 54811326 | 780 days ago | IN | 0 FTM | 0.00271296 | ||||
Approve | 54811295 | 780 days ago | IN | 0 FTM | 0.00516769 | ||||
Approve | 53237135 | 807 days ago | IN | 0 FTM | 0.00131706 | ||||
Approve | 53152354 | 808 days ago | IN | 0 FTM | 0.00527752 | ||||
Approve | 53055287 | 811 days ago | IN | 0 FTM | 0.00406587 | ||||
Approve | 53008951 | 813 days ago | IN | 0 FTM | 0.00183567 | ||||
Approve | 53008890 | 813 days ago | IN | 0 FTM | 0.00272438 | ||||
Approve | 52997339 | 814 days ago | IN | 0 FTM | 0.00169774 | ||||
Approve | 52563579 | 823 days ago | IN | 0 FTM | 0.00108615 | ||||
Approve | 52562879 | 823 days ago | IN | 0 FTM | 0.00538447 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
46878359 | 920 days ago | Contract Creation | 0 FTM |
Loading...
Loading
Contract Name:
CherryToken
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2022-09-13 */ // Cherry.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * Cherry Token (CHRY) contract * * ERC20 + burn() + mint() * * Burning: * - token owners can burn their tokens * - approved address can burn tokens from approvers * - nobody else can burn tokens * * Minting: * - only allowed to minter * - only once per epoch * - never mint more than 5% supply / epoch (unless low supply) * * Owner powers: * - setMinter() as long as contract is not sealed * - seal() seal contract so that minter cannot be changed ever after */ abstract contract Ownable { // ==== Events ==== event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // ==== Storage ==== // Private so it cannot be changed by inherited contracts address private _owner; // ==== Constructor ==== constructor() { _transferOwnership(msg.sender); } // ==== Modifiers ==== modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } // ==== Views ==== function owner() public view virtual returns (address) { return _owner; } // ==== Mutators ==== function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner_) public virtual onlyOwner { require(newOwner_ != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner_); } // ==== Internals ==== function _transferOwnership(address newOwner_) internal virtual { address oldOwner = owner(); _owner = newOwner_; emit OwnershipTransferred(oldOwner, newOwner_); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); 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 transfer( address to, uint256 amount) external returns (bool); function approve( address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract ERC20 is IERC20, IERC20Metadata { // ==== Storage ==== uint private _totalSupply; // Strings cannot be immutable string private _name; string private _symbol; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; // ==== Constructor ==== constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } // ==== Views ==== function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } // ==== Mutators ==== /** * @dev See {IERC20-transfer}. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = msg.sender; _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = msg.sender; _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = msg.sender; _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = msg.sender; _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = msg.sender; uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } // ==== Internals ==== /** * @dev Moves `amount` of tokens from `from` to `to`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); uint fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } } // Minimal interface for Minter contract interface IMinter { // returns the token address that the minter wants to mint function token() external view returns (address); } contract CherryToken is ERC20, Ownable { // ==== Constants ==== uint constant PERIOD = 6 hours; uint constant minSupply = 10000 ether; // ==== Storage ==== bool public isSealed; uint32 public epoch; address public minter; // ==== Constructor ==== constructor() ERC20("Cherry", "CHRY") { // 10 000 for initial liquidity pool // + 10 000 for airdrops and Cherrific team _mint(msg.sender, 20000 ether); } // ==== Governance ==== // seal contract for ever function seal() external onlyOwner { isSealed = true; } // set minter as long as contract isn't sealed function setMinter(address minter_) external onlyOwner { // function disabled once contract is sealed require( ! isSealed , "Contract is sealed"); // Safeguard: make sure we set the correct minter // If this fails, it means minter is not set correctly require( IMinter(minter_).token() == address(this), "Minter not correctly set"); minter = minter_; } // ==== Views ==== // Current epoch function getEpoch() public view returns (uint) { return block.timestamp / PERIOD; } // ==== Mutators ==== // from OpenZeppelin function burn(uint256 amount) external returns (bool) { _burn(msg.sender, amount); return true; } // from OpenZeppelin function burnFrom(address account, uint256 amount) external returns (bool) { _spendAllowance(account, msg.sender, amount); _burn(account, amount); return true; } // only minter can mint function mint(address recipient_, uint256 amount_) external returns (bool) { require(msg.sender == minter, "Only minter can mint"); uint newEpoch = getEpoch(); require(newEpoch > epoch, "Mint only once per epoch"); // all below code can only run once per epoch epoch = uint32(newEpoch); // make sure we don't mint too much uint supply = totalSupply(); if (supply < minSupply) { // during low supply, we don't want to mint up to more than 120% minSupply require( supply + amount_ <= (minSupply * 120) / 100, "Minting too much while low supply"); } else { // make sure minter does not go crazy // don't mint more than 5% of total supply per epoch // +5 if to allow for rounding errors on the minter side require( amount_ <= (supply / 20) + 5, "Don't mint > 5% supply per epoch"); } _mint(recipient_, amount_); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMinter","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"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600681526020016543686572727960d01b815250604051806040016040528060048152602001634348525960e01b81525081600190816200005f919062000293565b5060026200006e828262000293565b50505062000082336200009e60201b60201c565b620000983369043c33c193756480000062000107565b62000387565b6000620000b36005546001600160a01b031690565b600580546001600160a01b0319166001600160a01b0385811691821790925560405192935091908316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001625760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806000808282546200017591906200035f565b90915550506001600160a01b03821660009081526003602052604081208054839290620001a49084906200035f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200021957607f821691505b6020821081036200023a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028e57600081815260208120601f850160051c81016020861015620002695750805b601f850160051c820191505b818110156200028a5782815560010162000275565b5050505b505050565b81516001600160401b03811115620002af57620002af620001ee565b620002c781620002c0845462000204565b8462000240565b602080601f831160018114620002ff5760008415620002e65750858301515b600019600386901b1c1916600185901b1785556200028a565b600085815260208120601f198616915b8281101562000330578886015182559484019460019091019084016200030f565b50858210156200034f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200038157634e487b7160e01b600052601160045260246000fd5b92915050565b61147980620003976000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806370a08231116100e357806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e14610340578063f2fde38b14610379578063fca3b5aa1461038c57600080fd5b806395d89b4114610312578063a457c2d71461031a578063a9059cbb1461032d57600080fd5b806379cc6790116100bd57806379cc6790146102c25780638da5cb5b146102d5578063900cf0cf146102e657600080fd5b806370a0823114610289578063715018a6146102b2578063757991a8146102ba57600080fd5b8063313ce5671161014557806340c10f191161011f57806340c10f191461024f57806342966c6814610262578063631f98521461027557600080fd5b8063313ce5671461022357806339509351146102325780633fb27b851461024557600080fd5b8063095ea7b311610176578063095ea7b3146101db57806318160ddd146101fe57806323b872dd1461021057600080fd5b806306fdde031461019257806307546172146101b0575b600080fd5b61019a61039f565b6040516101a79190611231565b60405180910390f35b6006546101c3906001600160a01b031681565b6040516001600160a01b0390911681526020016101a7565b6101ee6101e9366004611294565b610431565b60405190151581526020016101a7565b6000545b6040519081526020016101a7565b6101ee61021e3660046112c0565b61044b565b604051601281526020016101a7565b6101ee610240366004611294565b61046f565b61024d6104ae565b005b6101ee61025d366004611294565b61053d565b6101ee610270366004611301565b610763565b6005546101ee90600160a01b900460ff1681565b61020261029736600461131a565b6001600160a01b031660009081526003602052604090205490565b61024d610777565b6102026107dd565b6101ee6102d0366004611294565b6107f0565b6005546001600160a01b03166101c3565b6005546102fd90600160a81b900463ffffffff1681565b60405163ffffffff90911681526020016101a7565b61019a610810565b6101ee610328366004611294565b61081f565b6101ee61033b366004611294565b6108c9565b61020261034e36600461133e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61024d61038736600461131a565b6108d7565b61024d61039a36600461131a565b6109b9565b6060600180546103ae90611377565b80601f01602080910402602001604051908101604052809291908181526020018280546103da90611377565b80156104275780601f106103fc57610100808354040283529160200191610427565b820191906000526020600020905b81548152906001019060200180831161040a57829003601f168201915b5050505050905090565b60003361043f818585610b5e565b60019150505b92915050565b600033610459858285610cb7565b610464858585610d49565b506001949350505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490919061043f90829086906104a99087906113c7565b610b5e565b6005546001600160a01b0316331461050d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b6006546000906001600160a01b0316331461059a5760405162461bcd60e51b815260206004820152601460248201527f4f6e6c79206d696e7465722063616e206d696e740000000000000000000000006044820152606401610504565b60006105a46107dd565b600554909150600160a81b900463ffffffff1681116106055760405162461bcd60e51b815260206004820152601860248201527f4d696e74206f6e6c79206f6e6365207065722065706f636800000000000000006044820152606401610504565b600580547fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b63ffffffff84160217905560005469021e19e0c9bab24000008110156106f457606461066769021e19e0c9bab240000060786113da565b61067191906113f1565b61067b85836113c7565b11156106ef5760405162461bcd60e51b815260206004820152602160248201527f4d696e74696e6720746f6f206d756368207768696c65206c6f7720737570706c60448201527f79000000000000000000000000000000000000000000000000000000000000006064820152608401610504565b610759565b6106ff6014826113f1565b61070a9060056113c7565b8411156107595760405162461bcd60e51b815260206004820181905260248201527f446f6e2774206d696e74203e20352520737570706c79207065722065706f63686044820152606401610504565b6104648585610f61565b600061076f338361103f565b506001919050565b6005546001600160a01b031633146107d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b6107db60006111bc565b565b60006107eb615460426113f1565b905090565b60006107fd833384610cb7565b610807838361103f565b50600192915050565b6060600280546103ae90611377565b3360008181526004602090815260408083206001600160a01b0387168452909152812054909190838110156108bc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610504565b6104648286868403610b5e565b60003361043f818585610d49565b6005546001600160a01b031633146109315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b6001600160a01b0381166109ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610504565b6109b6816111bc565b50565b6005546001600160a01b03163314610a135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b600554600160a01b900460ff1615610a6d5760405162461bcd60e51b815260206004820152601260248201527f436f6e7472616374206973207365616c656400000000000000000000000000006044820152606401610504565b306001600160a01b0316816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad99190611413565b6001600160a01b031614610b2f5760405162461bcd60e51b815260206004820152601860248201527f4d696e746572206e6f7420636f72726563746c792073657400000000000000006044820152606401610504565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038316610bd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b038216610c555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038381166000908152600460209081526040808320938616835292905220546000198114610d435781811015610d365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610504565b610d438484848403610b5e565b50505050565b6001600160a01b038316610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b038216610e415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b03831660009081526003602052604090205481811015610ed05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290610f079084906113c7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f5391815260200190565b60405180910390a350505050565b6001600160a01b038216610fb75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610504565b80600080828254610fc891906113c7565b90915550506001600160a01b03821660009081526003602052604081208054839290610ff59084906113c7565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110bb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b0382166000908152600360205260409020548181101561114a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b0383166000908152600360205260408120838303905580548391908190611179908490611430565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610caa565b60006111d06005546001600160a01b031690565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385811691821790925560405192935091908316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b8181101561125e57858101830151858201604001528201611242565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b657600080fd5b600080604083850312156112a757600080fd5b82356112b28161127f565b946020939093013593505050565b6000806000606084860312156112d557600080fd5b83356112e08161127f565b925060208401356112f08161127f565b929592945050506040919091013590565b60006020828403121561131357600080fd5b5035919050565b60006020828403121561132c57600080fd5b81356113378161127f565b9392505050565b6000806040838503121561135157600080fd5b823561135c8161127f565b9150602083013561136c8161127f565b809150509250929050565b600181811c9082168061138b57607f821691505b6020821081036113ab57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610445576104456113b1565b8082028115828204841417610445576104456113b1565b60008261140e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561142557600080fd5b81516113378161127f565b81810381811115610445576104456113b156fea2646970667358221220fc7d9b6eaf9ff4b3c9e3f3c41e9dbfe640ca991992425e450d838265736b8a5564736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018d5760003560e01c806370a08231116100e357806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e14610340578063f2fde38b14610379578063fca3b5aa1461038c57600080fd5b806395d89b4114610312578063a457c2d71461031a578063a9059cbb1461032d57600080fd5b806379cc6790116100bd57806379cc6790146102c25780638da5cb5b146102d5578063900cf0cf146102e657600080fd5b806370a0823114610289578063715018a6146102b2578063757991a8146102ba57600080fd5b8063313ce5671161014557806340c10f191161011f57806340c10f191461024f57806342966c6814610262578063631f98521461027557600080fd5b8063313ce5671461022357806339509351146102325780633fb27b851461024557600080fd5b8063095ea7b311610176578063095ea7b3146101db57806318160ddd146101fe57806323b872dd1461021057600080fd5b806306fdde031461019257806307546172146101b0575b600080fd5b61019a61039f565b6040516101a79190611231565b60405180910390f35b6006546101c3906001600160a01b031681565b6040516001600160a01b0390911681526020016101a7565b6101ee6101e9366004611294565b610431565b60405190151581526020016101a7565b6000545b6040519081526020016101a7565b6101ee61021e3660046112c0565b61044b565b604051601281526020016101a7565b6101ee610240366004611294565b61046f565b61024d6104ae565b005b6101ee61025d366004611294565b61053d565b6101ee610270366004611301565b610763565b6005546101ee90600160a01b900460ff1681565b61020261029736600461131a565b6001600160a01b031660009081526003602052604090205490565b61024d610777565b6102026107dd565b6101ee6102d0366004611294565b6107f0565b6005546001600160a01b03166101c3565b6005546102fd90600160a81b900463ffffffff1681565b60405163ffffffff90911681526020016101a7565b61019a610810565b6101ee610328366004611294565b61081f565b6101ee61033b366004611294565b6108c9565b61020261034e36600461133e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61024d61038736600461131a565b6108d7565b61024d61039a36600461131a565b6109b9565b6060600180546103ae90611377565b80601f01602080910402602001604051908101604052809291908181526020018280546103da90611377565b80156104275780601f106103fc57610100808354040283529160200191610427565b820191906000526020600020905b81548152906001019060200180831161040a57829003601f168201915b5050505050905090565b60003361043f818585610b5e565b60019150505b92915050565b600033610459858285610cb7565b610464858585610d49565b506001949350505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490919061043f90829086906104a99087906113c7565b610b5e565b6005546001600160a01b0316331461050d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b6006546000906001600160a01b0316331461059a5760405162461bcd60e51b815260206004820152601460248201527f4f6e6c79206d696e7465722063616e206d696e740000000000000000000000006044820152606401610504565b60006105a46107dd565b600554909150600160a81b900463ffffffff1681116106055760405162461bcd60e51b815260206004820152601860248201527f4d696e74206f6e6c79206f6e6365207065722065706f636800000000000000006044820152606401610504565b600580547fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b63ffffffff84160217905560005469021e19e0c9bab24000008110156106f457606461066769021e19e0c9bab240000060786113da565b61067191906113f1565b61067b85836113c7565b11156106ef5760405162461bcd60e51b815260206004820152602160248201527f4d696e74696e6720746f6f206d756368207768696c65206c6f7720737570706c60448201527f79000000000000000000000000000000000000000000000000000000000000006064820152608401610504565b610759565b6106ff6014826113f1565b61070a9060056113c7565b8411156107595760405162461bcd60e51b815260206004820181905260248201527f446f6e2774206d696e74203e20352520737570706c79207065722065706f63686044820152606401610504565b6104648585610f61565b600061076f338361103f565b506001919050565b6005546001600160a01b031633146107d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b6107db60006111bc565b565b60006107eb615460426113f1565b905090565b60006107fd833384610cb7565b610807838361103f565b50600192915050565b6060600280546103ae90611377565b3360008181526004602090815260408083206001600160a01b0387168452909152812054909190838110156108bc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610504565b6104648286868403610b5e565b60003361043f818585610d49565b6005546001600160a01b031633146109315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b6001600160a01b0381166109ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610504565b6109b6816111bc565b50565b6005546001600160a01b03163314610a135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b600554600160a01b900460ff1615610a6d5760405162461bcd60e51b815260206004820152601260248201527f436f6e7472616374206973207365616c656400000000000000000000000000006044820152606401610504565b306001600160a01b0316816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad99190611413565b6001600160a01b031614610b2f5760405162461bcd60e51b815260206004820152601860248201527f4d696e746572206e6f7420636f72726563746c792073657400000000000000006044820152606401610504565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038316610bd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b038216610c555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038381166000908152600460209081526040808320938616835292905220546000198114610d435781811015610d365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610504565b610d438484848403610b5e565b50505050565b6001600160a01b038316610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b038216610e415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b03831660009081526003602052604090205481811015610ed05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290610f079084906113c7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f5391815260200190565b60405180910390a350505050565b6001600160a01b038216610fb75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610504565b80600080828254610fc891906113c7565b90915550506001600160a01b03821660009081526003602052604081208054839290610ff59084906113c7565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110bb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b0382166000908152600360205260409020548181101561114a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610504565b6001600160a01b0383166000908152600360205260408120838303905580548391908190611179908490611430565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610caa565b60006111d06005546001600160a01b031690565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385811691821790925560405192935091908316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b8181101561125e57858101830151858201604001528201611242565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b657600080fd5b600080604083850312156112a757600080fd5b82356112b28161127f565b946020939093013593505050565b6000806000606084860312156112d557600080fd5b83356112e08161127f565b925060208401356112f08161127f565b929592945050506040919091013590565b60006020828403121561131357600080fd5b5035919050565b60006020828403121561132c57600080fd5b81356113378161127f565b9392505050565b6000806040838503121561135157600080fd5b823561135c8161127f565b9150602083013561136c8161127f565b809150509250929050565b600181811c9082168061138b57607f821691505b6020821081036113ab57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610445576104456113b1565b8082028115828204841417610445576104456113b1565b60008261140e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561142557600080fd5b81516113378161127f565b81810381811115610445576104456113b156fea2646970667358221220fc7d9b6eaf9ff4b3c9e3f3c41e9dbfe640ca991992425e450d838265736b8a5564736f6c63430008110033
Deployed Bytecode Sourcemap
8590:2559:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3316:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8829:21;;;;;-1:-1:-1;;;;;8829:21:0;;;;;;-1:-1:-1;;;;;731:55:1;;;713:74;;701:2;686:18;8829:21:0;567:226:1;4651:199:0;;;;;;:::i;:::-;;:::i;:::-;;;1442:14:1;;1435:22;1417:41;;1405:2;1390:18;4651:199:0;1277:187:1;3631:106:0;3692:7;3717:12;3631:106;;;1615:25:1;;;1603:2;1588:18;3631:106:0;1469:177:1;4916:293:0;;;;;;:::i;:::-;;:::i;3532:91::-;;;3613:2;2254:36:1;;2242:2;2227:18;3532:91:0;2112:184:1;5319:236:0;;;;;;:::i;:::-;;:::i;9134:63::-;;;:::i;:::-;;10205:939;;;;;;:::i;:::-;;:::i;9847:110::-;;;;;;:::i;:::-;;:::i;8776:23::-;;;;;-1:-1:-1;;;8776:23:0;;;;;;3800:125;;;;;;:::i;:::-;-1:-1:-1;;;;;3899:18:0;3874:7;3899:18;;;:9;:18;;;;;;;3800:125;1253:97;;;:::i;9697:91::-;;;:::i;9987:179::-;;;;;;:::i;:::-;;:::i;1134:81::-;1203:6;;-1:-1:-1;;;;;1203:6:0;1134:81;;8804:20;;;;;-1:-1:-1;;;8804:20:0;;;;;;;;;2912:10:1;2900:23;;;2882:42;;2870:2;2855:18;8804:20:0;2738:192:1;3422:102:0;;;:::i;5665:434::-;;;;;;:::i;:::-;;:::i;4020:185::-;;;;;;:::i;:::-;;:::i;4268:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4382:18:0;;;4357:7;4382:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4268:149;1356:194;;;;;;:::i;:::-;;:::i;9253:389::-;;;;;;:::i;:::-;;:::i;3316:98::-;3370:13;3401:5;3394:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3316:98;:::o;4651:199::-;4734:4;4767:10;4788:32;4767:10;4804:7;4813:6;4788:8;:32::i;:::-;4838:4;4831:11;;;4651:199;;;;;:::o;4916:293::-;5047:4;5082:10;5103:38;5119:4;5082:10;5134:6;5103:15;:38::i;:::-;5152:27;5162:4;5168:2;5172:6;5152:9;:27::i;:::-;-1:-1:-1;5197:4:0;;4916:293;-1:-1:-1;;;;4916:293:0:o;5319:236::-;5440:10;5407:4;4382:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4382:27:0;;;;;;;;;;5407:4;;5440:10;5461:64;;5440:10;;4382:27;;5486:38;;5514:10;;5486:38;:::i;:::-;5461:8;:64::i;9134:63::-;1027:6;;-1:-1:-1;;;;;1027:6:0;1037:10;1027:20;1019:65;;;;-1:-1:-1;;;1019:65:0;;4291:2:1;1019:65:0;;;4273:21:1;;;4310:18;;;4303:30;4369:34;4349:18;;;4342:62;4421:18;;1019:65:0;;;;;;;;;9176:8:::1;:15:::0;;;::::1;-1:-1:-1::0;;;9176:15:0::1;::::0;;9134:63::o;10205:939::-;10311:6;;10274:4;;-1:-1:-1;;;;;10311:6:0;10297:10;:20;10289:53;;;;-1:-1:-1;;;10289:53:0;;4652:2:1;10289:53:0;;;4634:21:1;4691:2;4671:18;;;4664:30;4730:22;4710:18;;;4703:50;4770:18;;10289:53:0;4450:344:1;10289:53:0;10351:13;10367:10;:8;:10::i;:::-;10403:5;;10351:26;;-1:-1:-1;;;;10403:5:0;;;;10392:16;;10384:53;;;;-1:-1:-1;;;10384:53:0;;5001:2:1;10384:53:0;;;4983:21:1;5040:2;5020:18;;;5013:30;5079:26;5059:18;;;5052:54;5123:18;;10384:53:0;4799:348:1;10384:53:0;10499:5;:24;;;;-1:-1:-1;;;10499:24:0;;;;;;;-1:-1:-1;3717:12:0;8732:11;10611:18;;10607:479;;;10771:3;10752:15;8732:11;10764:3;10752:15;:::i;:::-;10751:23;;;;:::i;:::-;10731:16;10740:7;10731:6;:16;:::i;:::-;:43;;10722:90;;;;-1:-1:-1;;;10722:90:0;;5806:2:1;10722:90:0;;;5788:21:1;5845:2;5825:18;;;5818:30;5884:34;5864:18;;;5857:62;5955:3;5935:18;;;5928:31;5976:19;;10722:90:0;5604:397:1;10722:90:0;10607:479;;;11025:11;11034:2;11025:6;:11;:::i;:::-;11024:17;;11040:1;11024:17;:::i;:::-;11013:7;:28;;11004:74;;;;-1:-1:-1;;;11004:74:0;;6208:2:1;11004:74:0;;;6190:21:1;;;6227:18;;;6220:30;6286:34;6266:18;;;6259:62;6338:18;;11004:74:0;6006:356:1;11004:74:0;11094:26;11100:10;11112:7;11094:5;:26::i;9847:110::-;9895:4;9908:25;9914:10;9926:6;9908:5;:25::i;:::-;-1:-1:-1;9947:4:0;;9847:110;-1:-1:-1;9847:110:0:o;1253:97::-;1027:6;;-1:-1:-1;;;;;1027:6:0;1037:10;1027:20;1019:65;;;;-1:-1:-1;;;1019:65:0;;4291:2:1;1019:65:0;;;4273:21:1;;;4310:18;;;4303:30;4369:34;4349:18;;;4342:62;4421:18;;1019:65:0;4089:356:1;1019:65:0;1314:30:::1;1341:1;1314:18;:30::i;:::-;1253:97::o:0;9697:91::-;9738:4;9758:24;8691:7;9758:15;:24;:::i;:::-;9751:31;;9697:91;:::o;9987:179::-;10056:4;10069:44;10085:7;10094:10;10106:6;10069:15;:44::i;:::-;10120:22;10126:7;10135:6;10120:5;:22::i;:::-;-1:-1:-1;10156:4:0;9987:179;;;;:::o;3422:102::-;3478:13;3509:7;3502:14;;;;;:::i;5665:434::-;5791:10;5758:4;4382:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4382:27:0;;;;;;;;;;5758:4;;5791:10;5903:15;5883:16;:35;;5875:85;;;;-1:-1:-1;;;5875:85:0;;6569:2:1;5875:85:0;;;6551:21:1;6608:2;6588:18;;;6581:30;6647:34;6627:18;;;6620:62;6718:7;6698:18;;;6691:35;6743:19;;5875:85:0;6367:401:1;5875:85:0;5996:60;6005:5;6012:7;6040:15;6021:16;:34;5996:8;:60::i;4020:185::-;4099:4;4130:10;4149:28;4130:10;4166:2;4170:6;4149:9;:28::i;1356:194::-;1027:6;;-1:-1:-1;;;;;1027:6:0;1037:10;1027:20;1019:65;;;;-1:-1:-1;;;1019:65:0;;4291:2:1;1019:65:0;;;4273:21:1;;;4310:18;;;4303:30;4369:34;4349:18;;;4342:62;4421:18;;1019:65:0;4089:356:1;1019:65:0;-1:-1:-1;;;;;1442:23:0;::::1;1434:74;;;::::0;-1:-1:-1;;;1434:74:0;;6975:2:1;1434:74:0::1;::::0;::::1;6957:21:1::0;7014:2;6994:18;;;6987:30;7053:34;7033:18;;;7026:62;7124:8;7104:18;;;7097:36;7150:19;;1434:74:0::1;6773:402:1::0;1434:74:0::1;1515:29;1534:9;1515:18;:29::i;:::-;1356:194:::0;:::o;9253:389::-;1027:6;;-1:-1:-1;;;;;1027:6:0;1037:10;1027:20;1019:65;;;;-1:-1:-1;;;1019:65:0;;4291:2:1;1019:65:0;;;4273:21:1;;;4310:18;;;4303:30;4369:34;4349:18;;;4342:62;4421:18;;1019:65:0;4089:356:1;1019:65:0;9376:8:::1;::::0;-1:-1:-1;;;9376:8:0;::::1;;;9374:10;9365:43;;;::::0;-1:-1:-1;;;9365:43:0;;7382:2:1;9365:43:0::1;::::0;::::1;7364:21:1::0;7421:2;7401:18;;;7394:30;7460:20;7440:18;;;7433:48;7498:18;;9365:43:0::1;7180:342:1::0;9365:43:0::1;9577:4;-1:-1:-1::0;;;;;9541:41:0::1;9549:7;-1:-1:-1::0;;;;;9541:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9541:41:0::1;;9532:79;;;::::0;-1:-1:-1;;;9532:79:0;;7985:2:1;9532:79:0::1;::::0;::::1;7967:21:1::0;8024:2;8004:18;;;7997:30;8063:26;8043:18;;;8036:54;8107:18;;9532:79:0::1;7783:348:1::0;9532:79:0::1;9620:6;:16:::0;;-1:-1:-1;;9620:16:0::1;-1:-1:-1::0;;;;;9620:16:0;;;::::1;::::0;;;::::1;::::0;;9253:389::o;7556:382::-;-1:-1:-1;;;;;7692:21:0;;7684:70;;;;-1:-1:-1;;;7684:70:0;;8338:2:1;7684:70:0;;;8320:21:1;8377:2;8357:18;;;8350:30;8416:34;8396:18;;;8389:62;8487:6;8467:18;;;8460:34;8511:19;;7684:70:0;8136:400:1;7684:70:0;-1:-1:-1;;;;;7773:21:0;;7765:68;;;;-1:-1:-1;;;7765:68:0;;8743:2:1;7765:68:0;;;8725:21:1;8782:2;8762:18;;;8755:30;8821:34;8801:18;;;8794:62;8892:4;8872:18;;;8865:32;8914:19;;7765:68:0;8541:398:1;7765:68:0;-1:-1:-1;;;;;7846:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7898:32;;1615:25:1;;;7898:32:0;;1588:18:1;7898:32:0;;;;;;;;7556:382;;;:::o;7946:450::-;-1:-1:-1;;;;;4382:18:0;;;8081:21;4382:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;8145:37:0;;8141:248;;8227:6;8207:16;:26;;8199:68;;;;-1:-1:-1;;;8199:68:0;;9146:2:1;8199:68:0;;;9128:21:1;9185:2;9165:18;;;9158:30;9224:31;9204:18;;;9197:59;9273:18;;8199:68:0;8944:353:1;8199:68:0;8311:51;8320:5;8327:7;8355:6;8336:16;:25;8311:8;:51::i;:::-;8070:326;7946:450;;;:::o;6214:569::-;-1:-1:-1;;;;;6345:18:0;;6337:68;;;;-1:-1:-1;;;6337:68:0;;9504:2:1;6337:68:0;;;9486:21:1;9543:2;9523:18;;;9516:30;9582:34;9562:18;;;9555:62;9653:7;9633:18;;;9626:35;9678:19;;6337:68:0;9302:401:1;6337:68:0;-1:-1:-1;;;;;6424:18:0;;6416:66;;;;-1:-1:-1;;;6416:66:0;;9910:2:1;6416:66:0;;;9892:21:1;9949:2;9929:18;;;9922:30;9988:34;9968:18;;;9961:62;10059:5;10039:18;;;10032:33;10082:19;;6416:66:0;9708:399:1;6416:66:0;-1:-1:-1;;;;;6514:15:0;;6495:16;6514:15;;;:9;:15;;;;;;6548:21;;;;6540:72;;;;-1:-1:-1;;;6540:72:0;;10314:2:1;6540:72:0;;;10296:21:1;10353:2;10333:18;;;10326:30;10392:34;10372:18;;;10365:62;10463:8;10443:18;;;10436:36;10489:19;;6540:72:0;10112:402:1;6540:72:0;-1:-1:-1;;;;;6648:15:0;;;;;;;:9;:15;;;;;;6666:20;;;6648:38;;6708:13;;;;;;;;:23;;6680:6;;6648:15;6708:23;;6680:6;;6708:23;:::i;:::-;;;;;;;;6764:2;-1:-1:-1;;;;;6749:26:0;6758:4;-1:-1:-1;;;;;6749:26:0;;6768:6;6749:26;;;;1615:25:1;;1603:2;1588:18;;1469:177;6749:26:0;;;;;;;;6326:457;6214:569;;;:::o;6793:282::-;-1:-1:-1;;;;;6877:21:0;;6869:65;;;;-1:-1:-1;;;6869:65:0;;10721:2:1;6869:65:0;;;10703:21:1;10760:2;10740:18;;;10733:30;10799:33;10779:18;;;10772:61;10850:18;;6869:65:0;10519:355:1;6869:65:0;6969:6;6947:12;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6986:18:0;;;;;;:9;:18;;;;;:28;;7008:6;;6986:18;:28;;7008:6;;6986:28;:::i;:::-;;;;-1:-1:-1;;7030:37:0;;1615:25:1;;;-1:-1:-1;;;;;7030:37:0;;;7047:1;;7030:37;;1603:2:1;1588:18;7030:37:0;;;;;;;6793:282;;:::o;7083:465::-;-1:-1:-1;;;;;7167:21:0;;7159:67;;;;-1:-1:-1;;;7159:67:0;;11081:2:1;7159:67:0;;;11063:21:1;11120:2;11100:18;;;11093:30;11159:34;11139:18;;;11132:62;11230:3;11210:18;;;11203:31;11251:19;;7159:67:0;10879:397:1;7159:67:0;-1:-1:-1;;;;;7261:18:0;;7239:19;7261:18;;;:9;:18;;;;;;7298:24;;;;7290:71;;;;-1:-1:-1;;;7290:71:0;;11483:2:1;7290:71:0;;;11465:21:1;11522:2;11502:18;;;11495:30;11561:34;11541:18;;;11534:62;11632:4;11612:18;;;11605:32;11654:19;;7290:71:0;11281:398:1;7290:71:0;-1:-1:-1;;;;;7397:18:0;;;;;;:9;:18;;;;;7418:23;;;7397:44;;7463:22;;7435:6;;7397:18;;;7463:22;;7435:6;;7463:22;:::i;:::-;;;;-1:-1:-1;;7503:37:0;;1615:25:1;;;7529:1:0;;-1:-1:-1;;;;;7503:37:0;;;;;1603:2:1;1588:18;7503:37:0;1469:177:1;1588:181:0;1659:16;1678:7;1203:6;;-1:-1:-1;;;;;1203:6:0;;1134:81;1678:7;1692:6;:18;;-1:-1:-1;;1692:18:0;-1:-1:-1;;;;;1692:18:0;;;;;;;;;1722:41;;1659:26;;-1:-1:-1;1692:18:0;1722:41;;;;;;-1:-1:-1;;1722:41:0;1652:117;1588:181;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;798:154::-;-1:-1:-1;;;;;877:5:1;873:54;866:5;863:65;853:93;;942:1;939;932:12;957:315;1025:6;1033;1086:2;1074:9;1065:7;1061:23;1057:32;1054:52;;;1102:1;1099;1092:12;1054:52;1141:9;1128:23;1160:31;1185:5;1160:31;:::i;:::-;1210:5;1262:2;1247:18;;;;1234:32;;-1:-1:-1;;;957:315:1:o;1651:456::-;1728:6;1736;1744;1797:2;1785:9;1776:7;1772:23;1768:32;1765:52;;;1813:1;1810;1803:12;1765:52;1852:9;1839:23;1871:31;1896:5;1871:31;:::i;:::-;1921:5;-1:-1:-1;1978:2:1;1963:18;;1950:32;1991:33;1950:32;1991:33;:::i;:::-;1651:456;;2043:7;;-1:-1:-1;;;2097:2:1;2082:18;;;;2069:32;;1651:456::o;2301:180::-;2360:6;2413:2;2401:9;2392:7;2388:23;2384:32;2381:52;;;2429:1;2426;2419:12;2381:52;-1:-1:-1;2452:23:1;;2301:180;-1:-1:-1;2301:180:1:o;2486:247::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2672:31;2697:5;2672:31;:::i;:::-;2722:5;2486:247;-1:-1:-1;;;2486:247:1:o;2935:388::-;3003:6;3011;3064:2;3052:9;3043:7;3039:23;3035:32;3032:52;;;3080:1;3077;3070:12;3032:52;3119:9;3106:23;3138:31;3163:5;3138:31;:::i;:::-;3188:5;-1:-1:-1;3245:2:1;3230:18;;3217:32;3258:33;3217:32;3258:33;:::i;:::-;3310:7;3300:17;;;2935:388;;;;;:::o;3328:437::-;3407:1;3403:12;;;;3450;;;3471:61;;3525:4;3517:6;3513:17;3503:27;;3471:61;3578:2;3570:6;3567:14;3547:18;3544:38;3541:218;;-1:-1:-1;;;3612:1:1;3605:88;3716:4;3713:1;3706:15;3744:4;3741:1;3734:15;3541:218;;3328:437;;;:::o;3770:184::-;-1:-1:-1;;;3819:1:1;3812:88;3919:4;3916:1;3909:15;3943:4;3940:1;3933:15;3959:125;4024:9;;;4045:10;;;4042:36;;;4058:18;;:::i;5152:168::-;5225:9;;;5256;;5273:15;;;5267:22;;5253:37;5243:71;;5294:18;;:::i;5325:274::-;5365:1;5391;5381:189;;-1:-1:-1;;;5423:1:1;5416:88;5527:4;5524:1;5517:15;5555:4;5552:1;5545:15;5381:189;-1:-1:-1;5584:9:1;;5325:274::o;7527:251::-;7597:6;7650:2;7638:9;7629:7;7625:23;7621:32;7618:52;;;7666:1;7663;7656:12;7618:52;7698:9;7692:16;7717:31;7742:5;7717:31;:::i;11684:128::-;11751:9;;;11772:11;;;11769:37;;;11786:18;;:::i
Swarm Source
ipfs://fc7d9b6eaf9ff4b3c9e3f3c41e9dbfe640ca991992425e450d838265736b8a55
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.