Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 6,848,407 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 38634950 | 1 hr ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 38523229 | 2 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 38389089 | 5 days ago | IN | 0 ETH | 0.00000023 | ||||
| Approve | 38338130 | 6 days ago | IN | 0 ETH | 0.00000003 | ||||
| Approve | 38054382 | 13 days ago | IN | 0 ETH | 0.00000011 | ||||
| Approve | 38053287 | 13 days ago | IN | 0 ETH | 0.00000053 | ||||
| Approve | 37935914 | 16 days ago | IN | 0 ETH | 0.00000003 | ||||
| Approve | 37921710 | 16 days ago | IN | 0 ETH | 0.00000003 | ||||
| Approve | 37877547 | 17 days ago | IN | 0 ETH | 0.00000016 | ||||
| Approve | 37867070 | 17 days ago | IN | 0 ETH | 0.00000368 | ||||
| Approve | 37866125 | 17 days ago | IN | 0 ETH | 0.00000046 | ||||
| Transfer | 37866053 | 17 days ago | IN | 0 ETH | 0.00000034 | ||||
| Approve | 37865740 | 17 days ago | IN | 0 ETH | 0.0000002 | ||||
| Approve | 37839595 | 18 days ago | IN | 0 ETH | 0.00000009 | ||||
| Approve | 37783855 | 19 days ago | IN | 0 ETH | 0.00000056 | ||||
| Approve | 37779229 | 19 days ago | IN | 0 ETH | 0.00000064 | ||||
| Approve | 37777338 | 19 days ago | IN | 0 ETH | 0.00000264 | ||||
| Transfer | 37775747 | 19 days ago | IN | 0 ETH | 0.00000466 | ||||
| Transfer | 37775715 | 19 days ago | IN | 0 ETH | 0.00000274 | ||||
| Approve | 37731004 | 20 days ago | IN | 0 ETH | 0.00000028 | ||||
| Approve | 37727913 | 21 days ago | IN | 0 ETH | 0.00000033 | ||||
| Approve | 37643419 | 23 days ago | IN | 0 ETH | 0.00000018 | ||||
| Approve | 37635300 | 23 days ago | IN | 0 ETH | 0.00000016 | ||||
| Approve | 37548722 | 25 days ago | IN | 0 ETH | 0.00000015 | ||||
| Mint | 37546678 | 25 days ago | IN | 0 ETH | 0.00000042 |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DegenTime
Compiler Version
v0.8.30+commit.73712a01
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2025-06-11
*/
// SPDX-License-Identifier: MIT
// Compatible with OpenZeppelin Contracts ^5.0.0
pragma solidity ^0.8.30;
/*
By Yazhisai Sivanathan
https://x.com/YazhisaiSivanat
https://farcaster.xyz/yazhisaisivanath
https://degenapp.store/
https://sec.degenapp.store/sec
*/
/**
* @dev Interface of the ERC-20 standard as defined in the ERC.
*/
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 transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) 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 Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
interface IERC20Errors {
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
}
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* Both values are immutable: they can only be set once during construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return 18;
}
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance < type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
contract DegenTime is ERC20 {
// The time when $DEGEN token was deployed on base network, refer this txn
uint256 public DEGEN_DEPLOYED_TIME = 1704597935;
// Wait for this time to start the minting process beginning
uint256 public MINTING_BEGINES_AT;
// The time when last time was minted
uint256 public lastMintedTime;
// The time when last time was minted for each user
mapping(address => uint256) public userLastMintedTime;
//Events
event TimeMinted(address indexed user, uint256 supply, uint256 balance, uint256 mintable, uint256 minted, uint256 timestamp_lastminted, uint256 timestamp_current);
constructor() ERC20("Time Is Money", "SECONDS") {
//Mint the initial supply based on the deployment time of $DEGEN token. Supply is number of seconds since the deployment time.
_mint(_msgSender(), _secondsToAmount(block.timestamp - DEGEN_DEPLOYED_TIME));
//First 7 days, there wont be minting, so we set the MINTING_BEGINNING_TIME to 7 days from now
MINTING_BEGINES_AT = block.timestamp + 1 weeks;
//Set the last minted time to the deployment time of $DEGEN token
lastMintedTime = block.timestamp;
}
// Mint the SECONDS law of time.
function mint() public {
//Check if the minting has started
require(block.timestamp > MINTING_BEGINES_AT, "Minting not started yet");
//Get the total mintable SECONDS
uint256 _mintable = mintable();
//Get the mintable amount for the user
uint256 _userMintable = mintableByUser(_msgSender());
// If there is no mintable amount, revert the transaction
require(_mintable > 0, "No mintable amount available");
require(_userMintable > 0, "You have no mintable amount available");
require(_userMintable <= _mintable, "You have more mintable amount than available");
//Update the last minted time for the user
uint256 _userLastMinted = userLastMintedTime[_msgSender()];
userLastMintedTime[_msgSender()] = block.timestamp;
//Update the global last minted time
lastMintedTime += _userMintable;
// Mint the time based on the user mintable amount
_mint(_msgSender(), _secondsToAmount(_userMintable));
uint256 _supply = _amountToSeconds(totalSupply());
uint256 _balance = _amountToSeconds(balanceOf(_msgSender()));
// Emit the event
emit TimeMinted(_msgSender(), _supply, _balance, _mintable, _userMintable, _userLastMinted, block.timestamp);
}
// Tell me how much SECONDS can be minted based on the last minted time.
function mintable() public view returns (uint256) {
return (block.timestamp - lastMintedTime);
}
// Tell me how much time a user can mint based on the law.
function mintableByUser(address _user) public view returns (uint256) {
// If there is no minting time available, return 0
uint256 _seconds = mintable();
if(_seconds == 0) {
return 0;
}
//Get the User Balance.
uint256 _balanceInSeconds = getBalanceInSeconds(_user);
//If there is no balance, user cannot mint anything
if(_balanceInSeconds == 0) {
return 0;
}
// Get the last minted time for the user.
uint256 _userLastMinted = userLastMintedTime[_user];
// If the user just minted, return 0
uint256 _userSeconds = (block.timestamp - _userLastMinted);
if(_userSeconds == 0) {
return 0;
}
// Get the wait time based on the user balance in seconds
uint256 _waitTime = getWaitTime(_balanceInSeconds);
// User have to wait for the wait time to mint again
if(_userSeconds < _waitTime) {
return 0;
}
// User can mint the amount based on the balance SECONDS
if(_balanceInSeconds >= _seconds) {
return _seconds;
}
// Maximum SECONDS user can mint is the balance SECONDS
return _balanceInSeconds;
}
//Get when can mint next time based on the given balance
function getWaitTime(uint256 _balanceInSeconds) public pure returns (uint256) {
//If No Balance, Wait for 100 years to mint again
if(_balanceInSeconds == 0) {
return 36500 days;
}
// If you hold 1 years or more of this token, you can mint every second
if(_balanceInSeconds >= 365 days) {
return 1 seconds;
}
// If you hold 1 months or more of this token, you can mint every minute
if(_balanceInSeconds >= 30 days) {
return 1 minutes;
}
// If you hold 1 weeks or more of this token, you can mint every hour
if(_balanceInSeconds >= 7 days) {
return 1 hours;
}
// If you hold 1 days or more of this token, you can mint every day
if(_balanceInSeconds >= 1 days) {
return 1 days;
}
// if you hold 1 hours or more of this token, you can mint every week
if(_balanceInSeconds >= 1 hours) {
return 1 weeks;
}
// if you hold 1 minutes or more of this token, you can mint every month
if(_balanceInSeconds >= 1 minutes) {
return 30 days;
}
// if you hold 1 seconds or more of this token, you can mint every year
if(_balanceInSeconds >= 1 seconds) {
return 365 days;
}
// If you hold less than 1 seconds of this token, you can mint every 100 years
return 36500 days;
}
//Helper function to get the needed info from single call.
function userInfo(address _user) public view returns (uint256[] memory) {
// Create an array to hold the user info
uint256[] memory userInfoArray = new uint256[](9);
// Get the total supply of the token
userInfoArray[0] = totalSupply();
// Get the user balance
userInfoArray[1] = balanceOf(_user);
// Get the total mintable amount
userInfoArray[2] = mintable();
// Get the mintable amount for the user
userInfoArray[3] = mintableByUser(_user);
// Get the last minted time for the global
userInfoArray[4] = lastMintedTime;
// Get the last minted time for the user
userInfoArray[5] = userLastMintedTime[_user];
// Get when the user can mint next time
(userInfoArray[6], userInfoArray[7]) = whenUserCanMint(_user);
//Current Timestamp
userInfoArray[8] = block.timestamp;
//Return the userbalance, last minted time and mintable amount also total supply
return userInfoArray;
}
//Convert seconds to amount based on the decimals
function _secondsToAmount(uint256 _seconds) public view returns (uint256) {
//Convert seconds to amount based on the decimals
return _seconds * 10 ** decimals();
}
function _amountToSeconds(uint256 _amount) public view returns (uint256) {
//Convert amount to seconds based on the decimals
return _amount / 10 ** decimals();
}
function getBalanceInSeconds(address _user) public view returns (uint256) {
//Get the user balance
uint256 _balance = balanceOf(_user);
//Convert the balance to seconds based on the decimals
return _amountToSeconds(_balance);
}
// Get when the user can mint next time based on the last minted time
function whenUserCanMint(address _user) public view returns (uint256 nextMint, uint256 waitSeconds) {
// Get the last minted time for the user
uint256 _userLastMinted = userLastMintedTime[_user];
// Get the wait time based on the user balance in seconds
uint256 _waitTime = getWaitTime(getBalanceInSeconds(_user));
// If the user has never minted, return the MINTING_BEGINES_AT
if (_userLastMinted == 0) {
// If the minting has not started yet, return the MINTING_BEGINES_AT and wait time
if (block.timestamp < MINTING_BEGINES_AT) {
return (MINTING_BEGINES_AT, MINTING_BEGINES_AT - block.timestamp);
}
// If the minting has started, return the MINTING_BEGINES_AT and 0 wait time
return (MINTING_BEGINES_AT, 0);
}
// Calculate when the user can mint next time, this can be past or future in timestamp.
nextMint = _userLastMinted + _waitTime;
if(nextMint > block.timestamp) {
// If the next mint time is in the future, return the next mint time and wait time
return (nextMint, nextMint - block.timestamp);
} else {
// If the next mint time is in the past, return 0 and wait time
return (nextMint, 0);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"mintable","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minted","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp_lastminted","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp_current","type":"uint256"}],"name":"TimeMinted","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":"DEGEN_DEPLOYED_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTING_BEGINES_AT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_amountToSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"_secondsToAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getBalanceInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_balanceInSeconds","type":"uint256"}],"name":"getWaitTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lastMintedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"mintableByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userLastMintedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"whenUserCanMint","outputs":[{"internalType":"uint256","name":"nextMint","type":"uint256"},{"internalType":"uint256","name":"waitSeconds","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405263659a19af600555348015610017575f5ffd5b506040518060400160405280600d81526020016c54696d65204973204d6f6e657960981b815250604051806040016040528060078152602001665345434f4e445360c81b815250816003908161006d91906102de565b50600461007a82826102de565b5050506100a961008e6100c260201b60201c565b6100a46005544261009f91906103ac565b6100c6565b6100e3565b6100b64262093a806103bf565b600655426007556104e1565b3390565b5f6100d36012600a6104b5565b6100dd90836104ca565b92915050565b6001600160a01b0382166101115760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b61011c5f8383610120565b5050565b6001600160a01b03831661014a578060025f82825461013f91906103bf565b909155506101ba9050565b6001600160a01b0383165f908152602081905260409020548181101561019c5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610108565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166101d6576002805482900390556101f4565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161023991815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061026e57607f821691505b60208210810361028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102d957805f5260205f20601f840160051c810160208510156102b75750805b601f840160051c820191505b818110156102d6575f81556001016102c3565b50505b505050565b81516001600160401b038111156102f7576102f7610246565b61030b81610305845461025a565b84610292565b6020601f82116001811461033d575f83156103265750848201515b5f19600385901b1c1916600184901b1784556102d6565b5f84815260208120601f198516915b8281101561036c578785015182556020948501946001909201910161034c565b508482101561038957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b818103818111156100dd576100dd610398565b808201808211156100dd576100dd610398565b6001815b600184111561040d578085048111156103f1576103f1610398565b60018416156103ff57908102905b60019390931c9280026103d6565b935093915050565b5f82610423575060016100dd565b8161042f57505f6100dd565b8160018114610445576002811461044f5761046b565b60019150506100dd565b60ff84111561046057610460610398565b50506001821b6100dd565b5060208310610133831016604e8410600b841016171561048e575081810a6100dd565b61049a5f1984846103d2565b805f19048211156104ad576104ad610398565b029392505050565b5f6104c360ff841683610415565b9392505050565b80820281158282048414176100dd576100dd610398565b611089806104ee5f395ff3fe608060405234801561000f575f5ffd5b506004361061013d575f3560e01c80634bf365df116100b457806395d89b411161007957806395d89b4114610290578063988f4b2714610298578063a8daf42d146102ab578063a9059cbb146102ca578063dd62ed3e146102dd578063e232830614610315575f5ffd5b80634bf365df1461023157806370a082311461023957806383e8572e146102615780638b4af777146102745780638b8d979f1461027d575f5ffd5b80631959a002116101055780631959a002146101b557806323b872dd146101d55780632db45829146101e8578063313ce567146101f157806332ce3bf1146102005780634b1646c914610228575f5ffd5b806306fdde0314610141578063075f72d31461015f578063095ea7b3146101805780631249c58b146101a357806318160ddd146101ad575b5f5ffd5b610149610328565b6040516101569190610d51565b60405180910390f35b61017261016d366004610da1565b6103b8565b604051908152602001610156565b61019361018e366004610dba565b6103e0565b6040519015158152602001610156565b6101ab6103f9565b005b600254610172565b6101c86101c3366004610da1565b610632565b6040516101569190610de2565b6101936101e3366004610e24565b6107de565b61017260055481565b60405160128152602001610156565b61021361020e366004610da1565b610801565b60408051928352602083019190915201610156565b61017260075481565b61017261088b565b610172610247366004610da1565b6001600160a01b03165f9081526020819052604090205490565b61017261026f366004610e5e565b61089f565b61017260065481565b61017261028b366004610e5e565b610941565b610149610958565b6101726102a6366004610da1565b610967565b6101726102b9366004610da1565b60086020525f908152604090205481565b6101936102d8366004610dba565b610a12565b6101726102eb366004610e75565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610172610323366004610e5e565b610a1f565b60606003805461033790610ea6565b80601f016020809104026020016040519081016040528092919081815260200182805461036390610ea6565b80156103ae5780601f10610385576101008083540402835291602001916103ae565b820191905f5260205f20905b81548152906001019060200180831161039157829003601f168201915b5050505050905090565b6001600160a01b0381165f908152602081905260408120546103d981610a1f565b9392505050565b5f336103ed818585610a36565b60019150505b92915050565b600654421161044f5760405162461bcd60e51b815260206004820152601760248201527f4d696e74696e67206e6f7420737461727465642079657400000000000000000060448201526064015b60405180910390fd5b5f61045861088b565b90505f61046433610967565b90505f82116104b55760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d696e7461626c6520616d6f756e7420617661696c61626c65000000006044820152606401610446565b5f81116105125760405162461bcd60e51b815260206004820152602560248201527f596f752068617665206e6f206d696e7461626c6520616d6f756e7420617661696044820152646c61626c6560d81b6064820152608401610446565b818111156105775760405162461bcd60e51b815260206004820152602c60248201527f596f752068617665206d6f7265206d696e7461626c6520616d6f756e7420746860448201526b616e20617661696c61626c6560a01b6064820152608401610446565b335f908152600860205260408120805442909155600780549192849261059e908490610ef2565b909155506105b69050336105b184610941565b610a48565b5f6105c361032360025490565b90505f6105d261032333610247565b604080518481526020810183905280820188905260608101879052608081018690524260a0820152905191925033917f48e0c73d1d469b494b15b03dc4e7d8b329bd7d2a3f61b29925a4fe465f1382109181900360c00190a25050505050565b60408051600980825261014082019092526060915f9190602082016101208036833701905050905061066360025490565b815f8151811061067557610675610f05565b60200260200101818152505061069f836001600160a01b03165f9081526020819052604090205490565b816001815181106106b2576106b2610f05565b6020026020010181815250506106c661088b565b816002815181106106d9576106d9610f05565b6020026020010181815250506106ee83610967565b8160038151811061070157610701610f05565b6020026020010181815250506007548160048151811061072357610723610f05565b60200260200101818152505060085f846001600160a01b03166001600160a01b031681526020019081526020015f20548160058151811061076657610766610f05565b60200260200101818152505061077b83610801565b8260068151811061078e5761078e610f05565b60200260200101836007815181106107a8576107a8610f05565b602002602001018281525082815250505042816008815181106107cd576107cd610f05565b602090810291909101015292915050565b5f336107eb858285610a80565b6107f6858585610afc565b506001949350505050565b6001600160a01b0381165f9081526008602052604081205481908161082861026f866103b8565b9050815f0361086157600654421015610853576006546108484282610f19565b935093505050915091565b5050600654935f9350915050565b61086b8183610ef2565b93504284111561088057836108484282610f19565b5091935f9350915050565b5f6007544261089a9190610f19565b905090565b5f815f036108b2575063bbf81e00919050565b6301e1338082106108c557506001919050565b62278d0082106108d75750603c919050565b62093a8082106108ea5750610e10919050565b6201518082106108fe575062015180919050565b610e108210610911575062093a80919050565b603c8210610923575062278d00919050565b6001821061093657506301e13380919050565b5063bbf81e00919050565b5f61094e6012600a61100f565b6103f3908361101d565b60606004805461033790610ea6565b5f5f61097161088b565b9050805f0361098257505f92915050565b5f61098c846103b8565b9050805f0361099e57505f9392505050565b6001600160a01b0384165f90815260086020526040812054906109c18242610f19565b9050805f036109d557505f95945050505050565b5f6109df8461089f565b9050808210156109f557505f9695505050505050565b848410610a0757509295945050505050565b509195945050505050565b5f336103ed818585610afc565b5f610a2c6012600a61100f565b6103f39083611034565b610a438383836001610b59565b505050565b6001600160a01b038216610a715760405163ec442f0560e01b81525f6004820152602401610446565b610a7c5f8383610c2b565b5050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610af65781811015610ae857604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610446565b610af684848484035f610b59565b50505050565b6001600160a01b038316610b2557604051634b637e8f60e11b81525f6004820152602401610446565b6001600160a01b038216610b4e5760405163ec442f0560e01b81525f6004820152602401610446565b610a43838383610c2b565b6001600160a01b038416610b825760405163e602df0560e01b81525f6004820152602401610446565b6001600160a01b038316610bab57604051634a1406b160e11b81525f6004820152602401610446565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610af657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c1d91815260200190565b60405180910390a350505050565b6001600160a01b038316610c55578060025f828254610c4a9190610ef2565b90915550610cc59050565b6001600160a01b0383165f9081526020819052604090205481811015610ca75760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610446565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610ce157600280548290039055610cff565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d4491815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610d9c575f5ffd5b919050565b5f60208284031215610db1575f5ffd5b6103d982610d86565b5f5f60408385031215610dcb575f5ffd5b610dd483610d86565b946020939093013593505050565b602080825282518282018190525f918401906040840190835b81811015610e19578351835260209384019390920191600101610dfb565b509095945050505050565b5f5f5f60608486031215610e36575f5ffd5b610e3f84610d86565b9250610e4d60208501610d86565b929592945050506040919091013590565b5f60208284031215610e6e575f5ffd5b5035919050565b5f5f60408385031215610e86575f5ffd5b610e8f83610d86565b9150610e9d60208401610d86565b90509250929050565b600181811c90821680610eba57607f821691505b602082108103610ed857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103f3576103f3610ede565b634e487b7160e01b5f52603260045260245ffd5b818103818111156103f3576103f3610ede565b6001815b6001841115610f6757808504811115610f4b57610f4b610ede565b6001841615610f5957908102905b60019390931c928002610f30565b935093915050565b5f82610f7d575060016103f3565b81610f8957505f6103f3565b8160018114610f9f5760028114610fa957610fc5565b60019150506103f3565b60ff841115610fba57610fba610ede565b50506001821b6103f3565b5060208310610133831016604e8410600b8410161715610fe8575081810a6103f3565b610ff45f198484610f2c565b805f190482111561100757611007610ede565b029392505050565b5f6103d960ff841683610f6f565b80820281158282048414176103f3576103f3610ede565b5f8261104e57634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122015747554d497ca07996083dea914c61eb0d367f6e14b45aadba15b72980f1c2464736f6c634300081e0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b506004361061013d575f3560e01c80634bf365df116100b457806395d89b411161007957806395d89b4114610290578063988f4b2714610298578063a8daf42d146102ab578063a9059cbb146102ca578063dd62ed3e146102dd578063e232830614610315575f5ffd5b80634bf365df1461023157806370a082311461023957806383e8572e146102615780638b4af777146102745780638b8d979f1461027d575f5ffd5b80631959a002116101055780631959a002146101b557806323b872dd146101d55780632db45829146101e8578063313ce567146101f157806332ce3bf1146102005780634b1646c914610228575f5ffd5b806306fdde0314610141578063075f72d31461015f578063095ea7b3146101805780631249c58b146101a357806318160ddd146101ad575b5f5ffd5b610149610328565b6040516101569190610d51565b60405180910390f35b61017261016d366004610da1565b6103b8565b604051908152602001610156565b61019361018e366004610dba565b6103e0565b6040519015158152602001610156565b6101ab6103f9565b005b600254610172565b6101c86101c3366004610da1565b610632565b6040516101569190610de2565b6101936101e3366004610e24565b6107de565b61017260055481565b60405160128152602001610156565b61021361020e366004610da1565b610801565b60408051928352602083019190915201610156565b61017260075481565b61017261088b565b610172610247366004610da1565b6001600160a01b03165f9081526020819052604090205490565b61017261026f366004610e5e565b61089f565b61017260065481565b61017261028b366004610e5e565b610941565b610149610958565b6101726102a6366004610da1565b610967565b6101726102b9366004610da1565b60086020525f908152604090205481565b6101936102d8366004610dba565b610a12565b6101726102eb366004610e75565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610172610323366004610e5e565b610a1f565b60606003805461033790610ea6565b80601f016020809104026020016040519081016040528092919081815260200182805461036390610ea6565b80156103ae5780601f10610385576101008083540402835291602001916103ae565b820191905f5260205f20905b81548152906001019060200180831161039157829003601f168201915b5050505050905090565b6001600160a01b0381165f908152602081905260408120546103d981610a1f565b9392505050565b5f336103ed818585610a36565b60019150505b92915050565b600654421161044f5760405162461bcd60e51b815260206004820152601760248201527f4d696e74696e67206e6f7420737461727465642079657400000000000000000060448201526064015b60405180910390fd5b5f61045861088b565b90505f61046433610967565b90505f82116104b55760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d696e7461626c6520616d6f756e7420617661696c61626c65000000006044820152606401610446565b5f81116105125760405162461bcd60e51b815260206004820152602560248201527f596f752068617665206e6f206d696e7461626c6520616d6f756e7420617661696044820152646c61626c6560d81b6064820152608401610446565b818111156105775760405162461bcd60e51b815260206004820152602c60248201527f596f752068617665206d6f7265206d696e7461626c6520616d6f756e7420746860448201526b616e20617661696c61626c6560a01b6064820152608401610446565b335f908152600860205260408120805442909155600780549192849261059e908490610ef2565b909155506105b69050336105b184610941565b610a48565b5f6105c361032360025490565b90505f6105d261032333610247565b604080518481526020810183905280820188905260608101879052608081018690524260a0820152905191925033917f48e0c73d1d469b494b15b03dc4e7d8b329bd7d2a3f61b29925a4fe465f1382109181900360c00190a25050505050565b60408051600980825261014082019092526060915f9190602082016101208036833701905050905061066360025490565b815f8151811061067557610675610f05565b60200260200101818152505061069f836001600160a01b03165f9081526020819052604090205490565b816001815181106106b2576106b2610f05565b6020026020010181815250506106c661088b565b816002815181106106d9576106d9610f05565b6020026020010181815250506106ee83610967565b8160038151811061070157610701610f05565b6020026020010181815250506007548160048151811061072357610723610f05565b60200260200101818152505060085f846001600160a01b03166001600160a01b031681526020019081526020015f20548160058151811061076657610766610f05565b60200260200101818152505061077b83610801565b8260068151811061078e5761078e610f05565b60200260200101836007815181106107a8576107a8610f05565b602002602001018281525082815250505042816008815181106107cd576107cd610f05565b602090810291909101015292915050565b5f336107eb858285610a80565b6107f6858585610afc565b506001949350505050565b6001600160a01b0381165f9081526008602052604081205481908161082861026f866103b8565b9050815f0361086157600654421015610853576006546108484282610f19565b935093505050915091565b5050600654935f9350915050565b61086b8183610ef2565b93504284111561088057836108484282610f19565b5091935f9350915050565b5f6007544261089a9190610f19565b905090565b5f815f036108b2575063bbf81e00919050565b6301e1338082106108c557506001919050565b62278d0082106108d75750603c919050565b62093a8082106108ea5750610e10919050565b6201518082106108fe575062015180919050565b610e108210610911575062093a80919050565b603c8210610923575062278d00919050565b6001821061093657506301e13380919050565b5063bbf81e00919050565b5f61094e6012600a61100f565b6103f3908361101d565b60606004805461033790610ea6565b5f5f61097161088b565b9050805f0361098257505f92915050565b5f61098c846103b8565b9050805f0361099e57505f9392505050565b6001600160a01b0384165f90815260086020526040812054906109c18242610f19565b9050805f036109d557505f95945050505050565b5f6109df8461089f565b9050808210156109f557505f9695505050505050565b848410610a0757509295945050505050565b509195945050505050565b5f336103ed818585610afc565b5f610a2c6012600a61100f565b6103f39083611034565b610a438383836001610b59565b505050565b6001600160a01b038216610a715760405163ec442f0560e01b81525f6004820152602401610446565b610a7c5f8383610c2b565b5050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610af65781811015610ae857604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610446565b610af684848484035f610b59565b50505050565b6001600160a01b038316610b2557604051634b637e8f60e11b81525f6004820152602401610446565b6001600160a01b038216610b4e5760405163ec442f0560e01b81525f6004820152602401610446565b610a43838383610c2b565b6001600160a01b038416610b825760405163e602df0560e01b81525f6004820152602401610446565b6001600160a01b038316610bab57604051634a1406b160e11b81525f6004820152602401610446565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610af657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c1d91815260200190565b60405180910390a350505050565b6001600160a01b038316610c55578060025f828254610c4a9190610ef2565b90915550610cc59050565b6001600160a01b0383165f9081526020819052604090205481811015610ca75760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610446565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610ce157600280548290039055610cff565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d4491815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610d9c575f5ffd5b919050565b5f60208284031215610db1575f5ffd5b6103d982610d86565b5f5f60408385031215610dcb575f5ffd5b610dd483610d86565b946020939093013593505050565b602080825282518282018190525f918401906040840190835b81811015610e19578351835260209384019390920191600101610dfb565b509095945050505050565b5f5f5f60608486031215610e36575f5ffd5b610e3f84610d86565b9250610e4d60208501610d86565b929592945050506040919091013590565b5f60208284031215610e6e575f5ffd5b5035919050565b5f5f60408385031215610e86575f5ffd5b610e8f83610d86565b9150610e9d60208401610d86565b90509250929050565b600181811c90821680610eba57607f821691505b602082108103610ed857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103f3576103f3610ede565b634e487b7160e01b5f52603260045260245ffd5b818103818111156103f3576103f3610ede565b6001815b6001841115610f6757808504811115610f4b57610f4b610ede565b6001841615610f5957908102905b60019390931c928002610f30565b935093915050565b5f82610f7d575060016103f3565b81610f8957505f6103f3565b8160018114610f9f5760028114610fa957610fc5565b60019150506103f3565b60ff841115610fba57610fba610ede565b50506001821b6103f3565b5060208310610133831016604e8410600b8410161715610fe8575081810a6103f3565b610ff45f198484610f2c565b805f190482111561100757611007610ede565b029392505050565b5f6103d960ff841683610f6f565b80820281158282048414176103f3576103f3610ede565b5f8261104e57634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122015747554d497ca07996083dea914c61eb0d367f6e14b45aadba15b72980f1c2464736f6c634300081e0033
Deployed Bytecode Sourcemap
6935:9169:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14374:270;;;;;;:::i;:::-;;:::i;:::-;;;952:25:1;;;940:2;925:18;14374:270:0;806:177:1;3495:190:0;;;;;;:::i;:::-;;:::i;:::-;;;1458:14:1;;1451:22;1433:41;;1421:2;1406:18;3495:190:0;1293:187:1;8211:1361:0;;;:::i;:::-;;2922:99;3001:12;;2922:99;;12824:1101;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3693:249::-;;;;;;:::i;:::-;;:::i;7052:47::-;;;;;;2830:84;;;2904:2;2622:36:1;;2610:2;2595:18;2830:84:0;2480:184:1;14727:1374:0;;;;;;:::i;:::-;;:::i;:::-;;;;2843:25:1;;;2899:2;2884:18;;2877:34;;;;2816:18;14727:1374:0;2669:248:1;7259:29:0;;;;;;9658:110;;;:::i;3029:118::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3121:18:0;3094:7;3121:18;;;;;;;;;;;;3029:118;11233:1518;;;;;;:::i;:::-;;:::i;7174:33::-;;;;;;13988:186;;;;;;:::i;:::-;;:::i;2727:95::-;;;:::i;9841:1322::-;;;;;;:::i;:::-;;:::i;7354:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;3155:182;;;;;;:::i;:::-;;:::i;3345:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3452:18:0;;;3425:7;3452:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3345:142;14182:184;;;;;;:::i;:::-;;:::i;2628:91::-;2673:13;2706:5;2699:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:91;:::o;14374:270::-;-1:-1:-1;;;;;3121:18:0;;14439:7;3121:18;;;;;;;;;;;14610:26;14627:8;14610:16;:26::i;:::-;14603:33;14374:270;-1:-1:-1;;;14374:270:0:o;3495:190::-;3568:4;1364:10;3624:31;1364:10;3640:7;3649:5;3624:8;:31::i;:::-;3673:4;3666:11;;;3495:190;;;;;:::o;8211:1361::-;8315:18;;8297:15;:36;8289:72;;;;-1:-1:-1;;;8289:72:0;;4005:2:1;8289:72:0;;;3987:21:1;4044:2;4024:18;;;4017:30;4083:25;4063:18;;;4056:53;4126:18;;8289:72:0;;;;;;;;;8416:17;8436:10;:8;:10::i;:::-;8416:30;-1:-1:-1;8516:21:0;8540:28;1364:10;9841:1322;:::i;8540:28::-;8516:52;;8668:1;8656:9;:13;8648:54;;;;-1:-1:-1;;;8648:54:0;;4357:2:1;8648:54:0;;;4339:21:1;4396:2;4376:18;;;4369:30;4435;4415:18;;;4408:58;4483:18;;8648:54:0;4155:352:1;8648:54:0;8737:1;8721:13;:17;8713:67;;;;-1:-1:-1;;;8713:67:0;;4714:2:1;8713:67:0;;;4696:21:1;4753:2;4733:18;;;4726:30;4792:34;4772:18;;;4765:62;-1:-1:-1;;;4843:18:1;;;4836:35;4888:19;;8713:67:0;4512:401:1;8713:67:0;8816:9;8799:13;:26;;8791:83;;;;-1:-1:-1;;;8791:83:0;;5120:2:1;8791:83:0;;;5102:21:1;5159:2;5139:18;;;5132:30;5198:34;5178:18;;;5171:62;-1:-1:-1;;;5249:18:1;;;5242:42;5301:19;;8791:83:0;4918:408:1;8791:83:0;1364:10;8947:23;8973:32;;;:18;:32;;;;;;;9051:15;9016:50;;;9125:14;:31;;8973:32;;9143:13;;9125:31;;9143:13;;9125:31;:::i;:::-;;;;-1:-1:-1;9229:52:0;;-1:-1:-1;1364:10:0;9249:31;9266:13;9249:16;:31::i;:::-;9229:5;:52::i;:::-;9294:15;9312:31;9329:13;3001:12;;;2922:99;9312:31;9294:49;-1:-1:-1;9356:16:0;9375:41;9392:23;1364:10;9402:12;1284:98;9375:41;9461:103;;;5880:25:1;;;5936:2;5921:18;;5914:34;;;5964:18;;;5957:34;;;6022:2;6007:18;;6000:34;;;6065:3;6050:19;;6043:35;;;9548:15:0;6109:3:1;6094:19;;6087:35;9461:103:0;;9356:60;;-1:-1:-1;1364:10:0;;9461:103;;;;;5867:3:1;9461:103:0;;;8234:1338;;;;;8211:1361::o;12824:1101::-;12992:16;;;13006:1;12992:16;;;;;;;;;12878;;12959:30;;12992:16;;;;;;;;;;;-1:-1:-1;12992:16:0;12959:49;;13086:13;3001:12;;;2922:99;13086:13;13067;13081:1;13067:16;;;;;;;;:::i;:::-;;;;;;:32;;;;;13164:16;13174:5;-1:-1:-1;;;;;3121:18:0;3094:7;3121:18;;;;;;;;;;;;3029:118;13164:16;13145:13;13159:1;13145:16;;;;;;;;:::i;:::-;;;;;;:35;;;;;13254:10;:8;:10::i;:::-;13235:13;13249:1;13235:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;13353:21;13368:5;13353:14;:21::i;:::-;13334:13;13348:1;13334:16;;;;;;;;:::i;:::-;;;;;;:40;;;;;13466:14;;13447:13;13461:1;13447:16;;;;;;;;:::i;:::-;;;;;;:33;;;;;13570:18;:25;13589:5;-1:-1:-1;;;;;13570:25:0;-1:-1:-1;;;;;13570:25:0;;;;;;;;;;;;;13551:13;13565:1;13551:16;;;;;;;;:::i;:::-;;;;;;:44;;;;;13696:22;13712:5;13696:15;:22::i;:::-;13658:13;13672:1;13658:16;;;;;;;;:::i;:::-;;;;;;13676:13;13690:1;13676:16;;;;;;;;:::i;:::-;;;;;;13657:61;;;;;;;;;;13779:15;13760:13;13774:1;13760:16;;;;;;;;:::i;:::-;;;;;;;;;;:34;13904:13;12824:1101;-1:-1:-1;;12824:1101:0:o;3693:249::-;3780:4;1364:10;3838:37;3854:4;1364:10;3869:5;3838:15;:37::i;:::-;3886:26;3896:4;3902:2;3906:5;3886:9;:26::i;:::-;-1:-1:-1;3930:4:0;;3693:249;-1:-1:-1;;;;3693:249:0:o;14727:1374::-;-1:-1:-1;;;;;14914:25:0;;14788:16;14914:25;;;:18;:25;;;;;;14788:16;;;15039:39;15051:26;14933:5;15051:19;:26::i;15039:39::-;15019:59;;15167:15;15186:1;15167:20;15163:441;;15322:18;;15304:15;:36;15300:142;;;15369:18;;15389:36;15410:15;15369:18;15389:36;:::i;:::-;15361:65;;;;;;14727:1374;;;:::o;15300:142::-;-1:-1:-1;;15554:18:0;;;15574:1;;-1:-1:-1;14727:1374:0;-1:-1:-1;;14727:1374:0:o;15163:441::-;15725:27;15743:9;15725:15;:27;:::i;:::-;15714:38;;15779:15;15768:8;:26;15765:329;;;15915:8;15925:26;15936:15;15915:8;15925:26;:::i;15765:329::-;-1:-1:-1;16070:8:0;;16080:1;;-1:-1:-1;14727:1374:0;-1:-1:-1;;14727:1374:0:o;9658:110::-;9699:7;9745:14;;9727:15;:32;;;;:::i;:::-;9719:41;;9658:110;:::o;11233:1518::-;11302:7;11388:17;11409:1;11388:22;11385:71;;-1:-1:-1;11434:10:0;;11233:1518;-1:-1:-1;11233:1518:0:o;11385:71::-;11573:8;11552:17;:29;11549:77;;-1:-1:-1;11605:9:0;;11233:1518;-1:-1:-1;11233:1518:0:o;11549:77::-;11744:7;11723:17;:28;11720:76;;-1:-1:-1;11775:9:0;;11233:1518;-1:-1:-1;11233:1518:0:o;11720:76::-;11911:6;11890:17;:27;11887:73;;-1:-1:-1;11941:7:0;;11233:1518;-1:-1:-1;11233:1518:0:o;11887:73::-;12073:6;12052:17;:27;12049:72;;-1:-1:-1;12103:6:0;;11233:1518;-1:-1:-1;11233:1518:0:o;12049:72::-;12236:7;12215:17;:28;12212:74;;-1:-1:-1;12267:7:0;;11233:1518;-1:-1:-1;11233:1518:0:o;12212:74::-;12404:9;12383:17;:30;12380:76;;-1:-1:-1;12437:7:0;;11233:1518;-1:-1:-1;11233:1518:0:o;12380:76::-;12573:9;12552:17;:30;12549:77;;-1:-1:-1;12606:8:0;;11233:1518;-1:-1:-1;11233:1518:0:o;12549:77::-;-1:-1:-1;12733:10:0;;11233:1518;-1:-1:-1;11233:1518:0:o;13988:186::-;14053:7;14150:16;2904:2;14150;:16;:::i;:::-;14139:27;;:8;:27;:::i;2727:95::-;2774:13;2807:7;2800:14;;;;;:::i;9841:1322::-;9901:7;9981:16;10000:10;:8;:10::i;:::-;9981:29;;10024:8;10036:1;10024:13;10021:53;;-1:-1:-1;10061:1:0;;9841:1322;-1:-1:-1;;9841:1322:0:o;10021:53::-;10120:25;10148:26;10168:5;10148:19;:26::i;:::-;10120:54;;10251:17;10272:1;10251:22;10248:62;;-1:-1:-1;10297:1:0;;9841:1322;-1:-1:-1;;;9841:1322:0:o;10248:62::-;-1:-1:-1;;;;;10408:25:0;;10382:23;10408:25;;;:18;:25;;;;;;;10517:33;10408:25;10517:15;:33;:::i;:::-;10493:58;;10565:12;10581:1;10565:17;10562:57;;-1:-1:-1;10606:1:0;;9841:1322;-1:-1:-1;;;;;9841:1322:0:o;10562:57::-;10699:17;10719:30;10731:17;10719:11;:30::i;:::-;10699:50;;10844:9;10829:12;:24;10826:64;;;-1:-1:-1;10877:1:0;;9841:1322;-1:-1:-1;;;;;;9841:1322:0:o;10826:64::-;10992:8;10971:17;:29;10968:76;;-1:-1:-1;11024:8:0;;9841:1322;-1:-1:-1;;;;;9841:1322:0:o;10968:76::-;-1:-1:-1;11128:17:0;;9841:1322;-1:-1:-1;;;;;9841:1322:0:o;3155:182::-;3224:4;1364:10;3280:27;1364:10;3297:2;3301:5;3280:9;:27::i;14182:184::-;14246:7;14342:16;2904:2;14342;:16;:::i;:::-;14332:26;;:7;:26;:::i;5849:130::-;5934:37;5943:5;5950:7;5959:5;5966:4;5934:8;:37::i;:::-;5849:130;;;:::o;5409:213::-;-1:-1:-1;;;;;5480:21:0;;5476:93;;5525:32;;-1:-1:-1;;;5525:32:0;;5554:1;5525:32;;;8503:51:1;8476:18;;5525:32:0;8357:203:1;5476:93:0;5579:35;5595:1;5599:7;5608:5;5579:7;:35::i;:::-;5409:213;;:::o;6440:486::-;-1:-1:-1;;;;;3452:18:0;;;6540:24;3452:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6607:36:0;;6603:316;;;6683:5;6664:16;:24;6660:132;;;6716:60;;-1:-1:-1;;;6716:60:0;;-1:-1:-1;;;;;8785:32:1;;6716:60:0;;;8767:51:1;8834:18;;;8827:34;;;8877:18;;;8870:34;;;8740:18;;6716:60:0;8565:345:1;6660:132:0;6835:57;6844:5;6851:7;6879:5;6860:16;:24;6886:5;6835:8;:57::i;:::-;6529:397;6440:486;;;:::o;3950:308::-;-1:-1:-1;;;;;4034:18:0;;4030:88;;4076:30;;-1:-1:-1;;;4076:30:0;;4103:1;4076:30;;;8503:51:1;8476:18;;4076:30:0;8357:203:1;4030:88:0;-1:-1:-1;;;;;4132:16:0;;4128:88;;4172:32;;-1:-1:-1;;;4172:32:0;;4201:1;4172:32;;;8503:51:1;8476:18;;4172:32:0;8357:203:1;4128:88:0;4226:24;4234:4;4240:2;4244:5;4226:7;:24::i;5989:443::-;-1:-1:-1;;;;;6102:19:0;;6098:91;;6145:32;;-1:-1:-1;;;6145:32:0;;6174:1;6145:32;;;8503:51:1;8476:18;;6145:32:0;8357:203:1;6098:91:0;-1:-1:-1;;;;;6203:21:0;;6199:92;;6248:31;;-1:-1:-1;;;6248:31:0;;6276:1;6248:31;;;8503:51:1;8476:18;;6248:31:0;8357:203:1;6199:92:0;-1:-1:-1;;;;;6301:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;6347:78;;;;6398:7;-1:-1:-1;;;;;6382:31:0;6391:5;-1:-1:-1;;;;;6382:31:0;;6407:5;6382:31;;;;952:25:1;;940:2;925:18;;806:177;6382:31:0;;;;;;;;5989:443;;;;:::o;4266:1135::-;-1:-1:-1;;;;;4356:18:0;;4352:552;;4510:5;4494:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;4352:552:0;;-1:-1:-1;4352:552:0;;-1:-1:-1;;;;;4570:15:0;;4548:19;4570:15;;;;;;;;;;;4604:19;;;4600:117;;;4651:50;;-1:-1:-1;;;4651:50:0;;-1:-1:-1;;;;;8785:32:1;;4651:50:0;;;8767:51:1;8834:18;;;8827:34;;;8877:18;;;8870:34;;;8740:18;;4651:50:0;8565:345:1;4600:117:0;-1:-1:-1;;;;;4840:15:0;;:9;:15;;;;;;;;;;4858:19;;;;4840:37;;4352:552;-1:-1:-1;;;;;4920:16:0;;4916:435;;5086:12;:21;;;;;;;4916:435;;;-1:-1:-1;;;;;5302:13:0;;:9;:13;;;;;;;;;;:22;;;;;;4916:435;5383:2;-1:-1:-1;;;;;5368:25:0;5377:4;-1:-1:-1;;;;;5368:25:0;;5387:5;5368:25;;;;952::1;;940:2;925:18;;806:177;5368:25:0;;;;;;;;4266:1135;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:186::-;674:6;727:2;715:9;706:7;702:23;698:32;695:52;;;743:1;740;733:12;695:52;766:29;785:9;766:29;:::i;988:300::-;1056:6;1064;1117:2;1105:9;1096:7;1092:23;1088:32;1085:52;;;1133:1;1130;1123:12;1085:52;1156:29;1175:9;1156:29;:::i;:::-;1146:39;1254:2;1239:18;;;;1226:32;;-1:-1:-1;;;988:300:1:o;1485:611::-;1675:2;1687:21;;;1757:13;;1660:18;;;1779:22;;;1627:4;;1858:15;;;1832:2;1817:18;;;1627:4;1901:169;1915:6;1912:1;1909:13;1901:169;;;1976:13;;1964:26;;2019:2;2045:15;;;;2010:12;;;;1937:1;1930:9;1901:169;;;-1:-1:-1;2087:3:1;;1485:611;-1:-1:-1;;;;;1485:611:1:o;2101:374::-;2178:6;2186;2194;2247:2;2235:9;2226:7;2222:23;2218:32;2215:52;;;2263:1;2260;2253:12;2215:52;2286:29;2305:9;2286:29;:::i;:::-;2276:39;;2334:38;2368:2;2357:9;2353:18;2334:38;:::i;:::-;2101:374;;2324:48;;-1:-1:-1;;;2441:2:1;2426:18;;;;2413:32;;2101:374::o;2922:226::-;2981:6;3034:2;3022:9;3013:7;3009:23;3005:32;3002:52;;;3050:1;3047;3040:12;3002:52;-1:-1:-1;3095:23:1;;2922:226;-1:-1:-1;2922:226:1:o;3153:260::-;3221:6;3229;3282:2;3270:9;3261:7;3257:23;3253:32;3250:52;;;3298:1;3295;3288:12;3250:52;3321:29;3340:9;3321:29;:::i;:::-;3311:39;;3369:38;3403:2;3392:9;3388:18;3369:38;:::i;:::-;3359:48;;3153:260;;;;;:::o;3418:380::-;3497:1;3493:12;;;;3540;;;3561:61;;3615:4;3607:6;3603:17;3593:27;;3561:61;3668:2;3660:6;3657:14;3637:18;3634:38;3631:161;;3714:10;3709:3;3705:20;3702:1;3695:31;3749:4;3746:1;3739:15;3777:4;3774:1;3767:15;3631:161;;3418:380;;;:::o;5331:127::-;5392:10;5387:3;5383:20;5380:1;5373:31;5423:4;5420:1;5413:15;5447:4;5444:1;5437:15;5463:125;5528:9;;;5549:10;;;5546:36;;;5562:18;;:::i;6265:127::-;6326:10;6321:3;6317:20;6314:1;6307:31;6357:4;6354:1;6347:15;6381:4;6378:1;6371:15;6397:128;6464:9;;;6485:11;;;6482:37;;;6499:18;;:::i;6530:375::-;6618:1;6636:5;6650:249;6671:1;6661:8;6658:15;6650:249;;;6721:4;6716:3;6712:14;6706:4;6703:24;6700:50;;;6730:18;;:::i;:::-;6780:1;6770:8;6766:16;6763:49;;;6794:16;;;;6763:49;6877:1;6873:16;;;;;6833:15;;6650:249;;;6530:375;;;;;;:::o;6910:902::-;6959:5;6989:8;6979:80;;-1:-1:-1;7030:1:1;7044:5;;6979:80;7078:4;7068:76;;-1:-1:-1;7115:1:1;7129:5;;7068:76;7160:4;7178:1;7173:59;;;;7246:1;7241:174;;;;7153:262;;7173:59;7203:1;7194:10;;7217:5;;;7241:174;7278:3;7268:8;7265:17;7262:43;;;7285:18;;:::i;:::-;-1:-1:-1;;7341:1:1;7327:16;;7400:5;;7153:262;;7499:2;7489:8;7486:16;7480:3;7474:4;7471:13;7467:36;7461:2;7451:8;7448:16;7443:2;7437:4;7434:12;7430:35;7427:77;7424:203;;;-1:-1:-1;7536:19:1;;;7612:5;;7424:203;7659:42;-1:-1:-1;;7684:8:1;7678:4;7659:42;:::i;:::-;7737:6;7733:1;7729:6;7725:19;7716:7;7713:32;7710:58;;;7748:18;;:::i;:::-;7786:20;;6910:902;-1:-1:-1;;;6910:902:1:o;7817:140::-;7875:5;7904:47;7945:4;7935:8;7931:19;7925:4;7904:47;:::i;7962:168::-;8035:9;;;8066;;8083:15;;;8077:22;;8063:37;8053:71;;8104:18;;:::i;8135:217::-;8175:1;8201;8191:132;;8245:10;8240:3;8236:20;8233:1;8226:31;8280:4;8277:1;8270:15;8308:4;8305:1;8298:15;8191:132;-1:-1:-1;8337:9:1;;8135:217::o
Swarm Source
ipfs://15747554d497ca07996083dea914c61eb0d367f6e14b45aadba15b72980f1c24
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.