Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,084 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 24509484 | 12 hrs ago | IN | 0 ETH | 0.00000436 | ||||
| Transfer | 24505768 | 24 hrs ago | IN | 0 ETH | 0.00000674 | ||||
| Transfer | 24497977 | 2 days ago | IN | 0 ETH | 0.00000792 | ||||
| Transfer | 24497957 | 2 days ago | IN | 0 ETH | 0.00000792 | ||||
| Transfer | 24497883 | 2 days ago | IN | 0 ETH | 0.00000792 | ||||
| Transfer | 24497137 | 2 days ago | IN | 0 ETH | 0.00001217 | ||||
| Transfer | 24494204 | 2 days ago | IN | 0 ETH | 0.00004456 | ||||
| Transfer | 24494199 | 2 days ago | IN | 0 ETH | 0.00002579 | ||||
| Transfer | 24494193 | 2 days ago | IN | 0 ETH | 0.00005606 | ||||
| Transfer | 24494186 | 2 days ago | IN | 0 ETH | 0.00000109 | ||||
| Transfer | 24493868 | 2 days ago | IN | 0 ETH | 0.00004556 | ||||
| Transfer | 24493373 | 2 days ago | IN | 0 ETH | 0.00003062 | ||||
| Approve | 24492803 | 2 days ago | IN | 0 ETH | 0.00009981 | ||||
| Transfer | 24492676 | 2 days ago | IN | 0 ETH | 0.00004619 | ||||
| Transfer | 24483141 | 4 days ago | IN | 0 ETH | 0.00000955 | ||||
| Transfer | 24483096 | 4 days ago | IN | 0 ETH | 0.00000954 | ||||
| Approve | 24475684 | 5 days ago | IN | 0 ETH | 0.00004417 | ||||
| Transfer | 24461803 | 7 days ago | IN | 0 ETH | 0.00007151 | ||||
| Transfer | 24458210 | 7 days ago | IN | 0 ETH | 0.00000198 | ||||
| Transfer | 24458184 | 7 days ago | IN | 0 ETH | 0.00007522 | ||||
| Transfer | 24457475 | 7 days ago | IN | 0 ETH | 0.00007481 | ||||
| Transfer | 24456643 | 7 days ago | IN | 0 ETH | 0.00007555 | ||||
| Transfer | 24442539 | 9 days ago | IN | 0 ETH | 0.00007935 | ||||
| Transfer | 24442517 | 9 days ago | IN | 0 ETH | 0.00007617 | ||||
| Transfer | 24435738 | 10 days ago | IN | 0 ETH | 0.00017494 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Litas
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-07-09
*/
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC-20 standard as defined in the ERC.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface for the optional metadata functions from the ERC-20 standard.
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
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;
}
}
// File: @openzeppelin/contracts/interfaces/draft-IERC6093.sol
// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)
pragma solidity ^0.8.20;
/**
* @dev Standard ERC-20 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.
*/
interface IERC20Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC20InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC20InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
* @param spender Address that may be allowed to operate on tokens without being their owner.
* @param allowance Amount of tokens a `spender` is allowed to operate with.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC20InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `spender` to be approved. Used in approvals.
* @param spender Address that may be allowed to operate on tokens without being their owner.
*/
error ERC20InvalidSpender(address spender);
}
/**
* @dev Standard ERC-721 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.
*/
interface IERC721Errors {
/**
* @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.
* Used in balance queries.
* @param owner Address of the current owner of a token.
*/
error ERC721InvalidOwner(address owner);
/**
* @dev Indicates a `tokenId` whose `owner` is the zero address.
* @param tokenId Identifier number of a token.
*/
error ERC721NonexistentToken(uint256 tokenId);
/**
* @dev Indicates an error related to the ownership over a particular token. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param tokenId Identifier number of a token.
* @param owner Address of the current owner of a token.
*/
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC721InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC721InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param tokenId Identifier number of a token.
*/
error ERC721InsufficientApproval(address operator, uint256 tokenId);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC721InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC721InvalidOperator(address operator);
}
/**
* @dev Standard ERC-1155 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.
*/
interface IERC1155Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
* @param tokenId Identifier number of a token.
*/
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC1155InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC1155InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param owner Address of the current owner of a token.
*/
error ERC1155MissingApprovalForAll(address operator, address owner);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC1155InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC1155InvalidOperator(address operator);
/**
* @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
* Used in batch transfers.
* @param idsLength Length of the array of token identifiers
* @param valuesLength Length of the array of token amounts
*/
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
// File: @openzeppelin/contracts/token/ERC20/ERC20.sol
// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* The default value of {decimals} is 18. To change this, you should override
* this function so it returns a different value.
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC-20
* applications.
*/
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_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the default value returned by this function, unless
* it's overridden.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `value`.
*/
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Skips emitting an {Approval} event indicating an allowance update. This is not
* required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `value`.
* - the caller must have allowance for ``from``'s tokens of at least
* `value`.
*/
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
/**
* @dev Moves a `value` amount of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
/**
* @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
* (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
* this function.
*
* Emits a {Transfer} event.
*/
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);
}
/**
* @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
* Relies on the `_update` mechanism
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
/**
* @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
* Relies on the `_update` mechanism.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead
*/
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
/**
* @dev Sets `value` as the allowance of `spender` over the `owner`'s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*
* Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
*/
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
/**
* @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
*
* By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
* `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
* `Approval` event during `transferFrom` operations.
*
* Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
* true using the following override:
*
* ```solidity
* function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
* super._approve(owner, spender, value, true);
* }
* ```
*
* Requirements are the same as {_approve}.
*/
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
/**
* @dev Updates `owner`'s allowance for `spender` based on spent `value`.
*
* Does not update the allowance value in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Does not emit an {Approval} event.
*/
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);
}
}
}
}
// File: @openzeppelin/contracts/security/ReentrancyGuard.sol
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be _NOT_ENTERED
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == _ENTERED;
}
}
// File: litas.sol
pragma solidity ^0.8.24;
/// @title Litas Token Contract
/// @notice This contract implements a basic ERC20 token (via OpenZeppelin),
/// with additional functionality for burning and staking.
contract Litas is ERC20, ReentrancyGuard {
/// @notice Represents a single stake made by a user
/// @dev Each stake stores the amount of tokens staked, a start time, an end time,
/// and a flag indicating if the stake was already claimed.
struct Stake {
uint256 amount; // The amount of tokens staked
uint256 startTime; // The timestamp when the stake was created
uint256 endTime; // The timestamp when the stake becomes claimable
bool claimed; // True if the stake was claimed, false otherwise
}
/// @notice Maps each address to an array of their stakes
/// @dev Each user can have multiple stakes
mapping(address => Stake[]) public stakes;
/// @notice Emitted when tokens are burned
/// @param burner The address of the user who burned the tokens
/// @param amount The amount of tokens that were burned
event TokensBurned(address indexed burner, uint256 amount);
/// @notice Emitted when tokens are staked
/// @param staker The address of the user who staked the tokens
/// @param amount The amount of tokens that were staked
/// @param duration The duration (in days) for which tokens were staked
/// @param startTime The timestamp when the stake was created
event TokensStaked(address indexed staker, uint256 amount, uint256 duration, uint256 startTime);
/// @notice Emitted when staked tokens are claimed
/// @param staker The address of the user who claimed the tokens
/// @param amount The amount of tokens that were claimed
/// @param stakeIndex The index of the stake in the user's stakes array
event TokensClaimed(address indexed staker, uint256 amount, uint256 stakeIndex);
/// @notice Initializes the contract by minting an initial supply to a specified owner
/// @param name The ERC20 name of the token
/// @param symbol The ERC20 symbol of the token
/// @param initialSupply The initial supply of tokens (without decimals)
/// @param initialOwner The address which will receive the initial supply
constructor(
string memory name,
string memory symbol,
uint256 initialSupply,
address initialOwner
)
ERC20(name, symbol)
{
// Mint the initial supply (scaled by ERC20 decimals) to the provided owner address
_mint(initialOwner, initialSupply * 10**decimals());
}
/// @notice Burns a specified amount of tokens from the caller's balance
/// @dev Emits a {TokensBurned} event
/// @param amount The amount of tokens to burn
function burn(uint256 amount) public {
// Use OpenZeppelin's _burn to burn the tokens from msg.sender
_burn(msg.sender, amount);
emit TokensBurned(msg.sender, amount);
}
/// @notice Allows a user to stake a specified amount of tokens for a given duration
/// @dev Transfers the tokens from the user's balance to this contract,
/// records the stake, and emits a {TokensStaked} event
/// @param amount The amount of tokens to stake
/// @param durationInDays The duration (in days) for which the tokens will be locked
function stake(uint256 amount, uint256 durationInDays) public nonReentrant {
require(amount > 0, "Cannot stake 0 tokens");
require(balanceOf(msg.sender) >= amount, "Insufficient token balance");
// Transfer the tokens from the user to this contract
_transfer(msg.sender, address(this), amount);
uint256 startTime = block.timestamp;
uint256 endTime = startTime + (durationInDays * 1 days);
// Create a new stake and push it into the user's stakes array
stakes[msg.sender].push(Stake({
amount: amount,
startTime: startTime,
endTime: endTime,
claimed: false
}));
emit TokensStaked(msg.sender, amount, durationInDays, startTime);
}
/// @notice Allows a user to claim their staked tokens after the lock period has ended
/// @dev Transfers the staked tokens back to the user if the stake is valid and unlocked
/// @param stakeIndex The index of the stake in the user's stakes array
function claimStakedTokens(uint256 stakeIndex) public nonReentrant {
// Ensure the stake index is valid
require(stakeIndex < stakes[msg.sender].length, "Invalid stake index");
Stake storage stakeData = stakes[msg.sender][stakeIndex];
// Check that the stake hasn't already been claimed
require(!stakeData.claimed, "Stake already claimed");
// Check that the staking period has ended
require(block.timestamp >= stakeData.endTime, "Stake is still locked");
// Mark the stake as claimed
stakeData.claimed = true;
// Transfer the staked tokens back to the user
_transfer(address(this), msg.sender, stakeData.amount);
emit TokensClaimed(msg.sender, stakeData.amount, stakeIndex);
}
/// @notice Retrieves details about a specific stake for a user
/// @dev Returns multiple fields: amount, start time, end time, and claimed status
/// @param user The address of the user
/// @param stakeIndex The index of the stake in the user's stakes array
/// @return amount The staked amount
/// @return startTime The timestamp when the stake was created
/// @return endTime The timestamp when the stake becomes claimable
/// @return claimed True if the stake was already claimed, false otherwise
function getStakeDetails(address user, uint256 stakeIndex)
public
view
returns (uint256 amount, uint256 startTime, uint256 endTime, bool claimed)
{
// Ensure the stake index is valid
require(stakeIndex < stakes[user].length, "Invalid stake index");
Stake memory stakeData = stakes[user][stakeIndex];
return (
stakeData.amount,
stakeData.startTime,
stakeData.endTime,
stakeData.claimed
);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"initialOwner","type":"address"}],"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":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeIndex","type":"uint256"}],"name":"TokensClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"TokensStaked","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":"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"stakeIndex","type":"uint256"}],"name":"claimStakedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"stakeIndex","type":"uint256"}],"name":"getStakeDetails","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"durationInDays","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"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"}]Contract Creation Code
608060405234801562000010575f80fd5b50604051620025ed380380620025ed833981810160405281019062000036919062000580565b838381600390816200004991906200085b565b5080600490816200005b91906200085b565b5050506001600581905550620000a2816200007b620000ac60201b60201c565b600a62000089919062000ac8565b8462000096919062000b18565b620000b460201b60201c565b5050505062000c2f565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000127575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200011e919062000b73565b60405180910390fd5b6200013a5f83836200013e60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000192578060025f82825462000185919062000b8e565b9250508190555062000263565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200021e578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620002159392919062000bd9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002ac578060025f8282540392505081905550620002f6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000355919062000c14565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620003c3826200037b565b810181811067ffffffffffffffff82111715620003e557620003e46200038b565b5b80604052505050565b5f620003f962000362565b9050620004078282620003b8565b919050565b5f67ffffffffffffffff8211156200042957620004286200038b565b5b62000434826200037b565b9050602081019050919050565b5f5b838110156200046057808201518184015260208101905062000443565b5f8484015250505050565b5f620004816200047b846200040c565b620003ee565b905082815260208101848484011115620004a0576200049f62000377565b5b620004ad84828562000441565b509392505050565b5f82601f830112620004cc57620004cb62000373565b5b8151620004de8482602086016200046b565b91505092915050565b5f819050919050565b620004fb81620004e7565b811462000506575f80fd5b50565b5f815190506200051981620004f0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200054a826200051f565b9050919050565b6200055c816200053e565b811462000567575f80fd5b50565b5f815190506200057a8162000551565b92915050565b5f805f80608085870312156200059b576200059a6200036b565b5b5f85015167ffffffffffffffff811115620005bb57620005ba6200036f565b5b620005c987828801620004b5565b945050602085015167ffffffffffffffff811115620005ed57620005ec6200036f565b5b620005fb87828801620004b5565b93505060406200060e8782880162000509565b925050606062000621878288016200056a565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200067c57607f821691505b60208210810362000692576200069162000637565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620006f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006b9565b620007028683620006b9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620007436200073d6200073784620004e7565b6200071a565b620004e7565b9050919050565b5f819050919050565b6200075e8362000723565b620007766200076d826200074a565b848454620006c5565b825550505050565b5f90565b6200078c6200077e565b6200079981848462000753565b505050565b5b81811015620007c057620007b45f8262000782565b6001810190506200079f565b5050565b601f8211156200080f57620007d98162000698565b620007e484620006aa565b81016020851015620007f4578190505b6200080c6200080385620006aa565b8301826200079e565b50505b505050565b5f82821c905092915050565b5f620008315f198460080262000814565b1980831691505092915050565b5f6200084b838362000820565b9150826002028217905092915050565b62000866826200062d565b67ffffffffffffffff8111156200088257620008816200038b565b5b6200088e825462000664565b6200089b828285620007c4565b5f60209050601f831160018114620008d1575f8415620008bc578287015190505b620008c885826200083e565b86555062000937565b601f198416620008e18662000698565b5f5b828110156200090a57848901518255600182019150602085019450602081019050620008e3565b868310156200092a578489015162000926601f89168262000820565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620009c957808604811115620009a157620009a06200093f565b5b6001851615620009b15780820291505b8081029050620009c1856200096c565b945062000981565b94509492505050565b5f82620009e3576001905062000ab5565b81620009f2575f905062000ab5565b816001811462000a0b576002811462000a165762000a4c565b600191505062000ab5565b60ff84111562000a2b5762000a2a6200093f565b5b8360020a91508482111562000a455762000a446200093f565b5b5062000ab5565b5060208310610133831016604e8410600b841016171562000a865782820a90508381111562000a805762000a7f6200093f565b5b62000ab5565b62000a95848484600162000978565b9250905081840481111562000aaf5762000aae6200093f565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000ad482620004e7565b915062000ae18362000abc565b925062000b107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009d2565b905092915050565b5f62000b2482620004e7565b915062000b3183620004e7565b925082820262000b4181620004e7565b9150828204841483151762000b5b5762000b5a6200093f565b5b5092915050565b62000b6d816200053e565b82525050565b5f60208201905062000b885f83018462000b62565b92915050565b5f62000b9a82620004e7565b915062000ba783620004e7565b925082820190508082111562000bc25762000bc16200093f565b5b92915050565b62000bd381620004e7565b82525050565b5f60608201905062000bee5f83018662000b62565b62000bfd602083018562000bc8565b62000c0c604083018462000bc8565b949350505050565b5f60208201905062000c295f83018462000bc8565b92915050565b6119b08062000c3d5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806343649dd11161008a5780637b0472f0116100645780637b0472f01461027457806395d89b4114610290578063a9059cbb146102ae578063dd62ed3e146102de576100e8565b806343649dd1146101f5578063584b62a11461021157806370a0823114610244576100e8565b806318160ddd116100c657806318160ddd1461016d57806323b872dd1461018b578063313ce567146101bb57806342966c68146101d9576100e8565b806306fdde03146100ec578063095ea7b31461010a5780630f0a4fef1461013a575b5f80fd5b6100f461030e565b6040516101019190611243565b60405180910390f35b610124600480360381019061011f91906112f4565b61039e565b604051610131919061134c565b60405180910390f35b610154600480360381019061014f91906112f4565b6103c0565b6040516101649493929190611374565b60405180910390f35b61017561050b565b60405161018291906113b7565b60405180910390f35b6101a560048036038101906101a091906113d0565b610514565b6040516101b2919061134c565b60405180910390f35b6101c3610542565b6040516101d0919061143b565b60405180910390f35b6101f360048036038101906101ee9190611454565b61054a565b005b61020f600480360381019061020a9190611454565b6105a5565b005b61022b600480360381019061022691906112f4565b6107ae565b60405161023b9493929190611374565b60405180910390f35b61025e6004803603810190610259919061147f565b610800565b60405161026b91906113b7565b60405180910390f35b61028e600480360381019061028991906114aa565b610845565b005b610298610a29565b6040516102a59190611243565b60405180910390f35b6102c860048036038101906102c391906112f4565b610ab9565b6040516102d5919061134c565b60405180910390f35b6102f860048036038101906102f391906114e8565b610adb565b60405161030591906113b7565b60405180910390f35b60606003805461031d90611553565b80601f016020809104026020016040519081016040528092919081815260200182805461034990611553565b80156103945780601f1061036b57610100808354040283529160200191610394565b820191905f5260205f20905b81548152906001019060200180831161037757829003601f168201915b5050505050905090565b5f806103a8610b5d565b90506103b5818585610b64565b600191505092915050565b5f805f8060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508510610446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043d906115cd565b60405180910390fd5b5f60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208681548110610496576104956115eb565b5b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015f9054906101000a900460ff1615151515815250509050805f015181602001518260400151836060015194509450945094505092959194509250565b5f600254905090565b5f8061051e610b5d565b905061052b858285610b76565b610536858585610c09565b60019150509392505050565b5f6012905090565b6105543382610cf9565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68260405161059a91906113b7565b60405180910390a250565b6105ad610d78565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811061062f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610626906115cd565b60405180910390fd5b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061067f5761067e6115eb565b5b905f5260205f2090600402019050806003015f9054906101000a900460ff16156106de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d590611662565b60405180910390fd5b8060020154421015610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906116ca565b60405180910390fd5b6001816003015f6101000a81548160ff02191690831515021790555061074f3033835f0154610c09565b3373ffffffffffffffffffffffffffffffffffffffff167f9923b4306c6c030f2bdfbf156517d5983b87e15b96176da122cd4f2effa4ba7b825f01548460405161079a9291906116e8565b60405180910390a2506107ab610dc7565b50565b6006602052815f5260405f2081815481106107c7575f80fd5b905f5260205f2090600402015f9150915050805f015490806001015490806002015490806003015f9054906101000a900460ff16905084565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61084d610d78565b5f821161088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690611759565b60405180910390fd5b8161089933610800565b10156108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906117c1565b60405180910390fd5b6108e5333084610c09565b5f4290505f62015180836108f9919061180c565b82610904919061184d565b905060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060405180608001604052808681526020018481526020018381526020015f1515815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555050503373ffffffffffffffffffffffffffffffffffffffff167f0fc5b1bac0416800b42a669229a346b6e5a15db3896339dbdc5fa376e1e4570a858585604051610a1393929190611880565b60405180910390a25050610a25610dc7565b5050565b606060048054610a3890611553565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6490611553565b8015610aaf5780601f10610a8657610100808354040283529160200191610aaf565b820191905f5260205f20905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b5f80610ac3610b5d565b9050610ad0818585610c09565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b610b718383836001610dd1565b505050565b5f610b818484610adb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610c035781811015610bf4578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610beb939291906118c4565b60405180910390fd5b610c0284848484035f610dd1565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c79575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610c7091906118f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce9575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ce091906118f9565b60405180910390fd5b610cf4838383610fa0565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d69575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610d6091906118f9565b60405180910390fd5b610d74825f83610fa0565b5050565b600260055403610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db49061195c565b60405180910390fd5b6002600581905550565b6001600581905550565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e41575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e3891906118f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb1575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610ea891906118f9565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610f9a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f9191906113b7565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff0578060025f828254610fe4919061184d565b925050819055506110be565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611079578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611070939291906118c4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611105578060025f828254039250508190555061114f565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111ac91906113b7565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111f05780820151818401526020810190506111d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611215826111b9565b61121f81856111c3565b935061122f8185602086016111d3565b611238816111fb565b840191505092915050565b5f6020820190508181035f83015261125b818461120b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61129082611267565b9050919050565b6112a081611286565b81146112aa575f80fd5b50565b5f813590506112bb81611297565b92915050565b5f819050919050565b6112d3816112c1565b81146112dd575f80fd5b50565b5f813590506112ee816112ca565b92915050565b5f806040838503121561130a57611309611263565b5b5f611317858286016112ad565b9250506020611328858286016112e0565b9150509250929050565b5f8115159050919050565b61134681611332565b82525050565b5f60208201905061135f5f83018461133d565b92915050565b61136e816112c1565b82525050565b5f6080820190506113875f830187611365565b6113946020830186611365565b6113a16040830185611365565b6113ae606083018461133d565b95945050505050565b5f6020820190506113ca5f830184611365565b92915050565b5f805f606084860312156113e7576113e6611263565b5b5f6113f4868287016112ad565b9350506020611405868287016112ad565b9250506040611416868287016112e0565b9150509250925092565b5f60ff82169050919050565b61143581611420565b82525050565b5f60208201905061144e5f83018461142c565b92915050565b5f6020828403121561146957611468611263565b5b5f611476848285016112e0565b91505092915050565b5f6020828403121561149457611493611263565b5b5f6114a1848285016112ad565b91505092915050565b5f80604083850312156114c0576114bf611263565b5b5f6114cd858286016112e0565b92505060206114de858286016112e0565b9150509250929050565b5f80604083850312156114fe576114fd611263565b5b5f61150b858286016112ad565b925050602061151c858286016112ad565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061156a57607f821691505b60208210810361157d5761157c611526565b5b50919050565b7f496e76616c6964207374616b6520696e646578000000000000000000000000005f82015250565b5f6115b76013836111c3565b91506115c282611583565b602082019050919050565b5f6020820190508181035f8301526115e4816115ab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5374616b6520616c726561647920636c61696d656400000000000000000000005f82015250565b5f61164c6015836111c3565b915061165782611618565b602082019050919050565b5f6020820190508181035f83015261167981611640565b9050919050565b7f5374616b65206973207374696c6c206c6f636b656400000000000000000000005f82015250565b5f6116b46015836111c3565b91506116bf82611680565b602082019050919050565b5f6020820190508181035f8301526116e1816116a8565b9050919050565b5f6040820190506116fb5f830185611365565b6117086020830184611365565b9392505050565b7f43616e6e6f74207374616b65203020746f6b656e7300000000000000000000005f82015250565b5f6117436015836111c3565b915061174e8261170f565b602082019050919050565b5f6020820190508181035f83015261177081611737565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f6117ab601a836111c3565b91506117b682611777565b602082019050919050565b5f6020820190508181035f8301526117d88161179f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611816826112c1565b9150611821836112c1565b925082820261182f816112c1565b91508282048414831517611846576118456117df565b5b5092915050565b5f611857826112c1565b9150611862836112c1565b925082820190508082111561187a576118796117df565b5b92915050565b5f6060820190506118935f830186611365565b6118a06020830185611365565b6118ad6040830184611365565b949350505050565b6118be81611286565b82525050565b5f6060820190506118d75f8301866118b5565b6118e46020830185611365565b6118f16040830184611365565b949350505050565b5f60208201905061190c5f8301846118b5565b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611946601f836111c3565b915061195182611912565b602082019050919050565b5f6020820190508181035f8301526119738161193a565b905091905056fea2646970667358221220d748fb66472586940f75a7b87e2e7113a0d7b15ac0a7a4c4cf7f1b41ac4299e764736f6c63430008180033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000005ef420bc22be60829e1ca03aa1c1a093888a458400000000000000000000000000000000000000000000000000000000000000054c4954415300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054c49544153000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806343649dd11161008a5780637b0472f0116100645780637b0472f01461027457806395d89b4114610290578063a9059cbb146102ae578063dd62ed3e146102de576100e8565b806343649dd1146101f5578063584b62a11461021157806370a0823114610244576100e8565b806318160ddd116100c657806318160ddd1461016d57806323b872dd1461018b578063313ce567146101bb57806342966c68146101d9576100e8565b806306fdde03146100ec578063095ea7b31461010a5780630f0a4fef1461013a575b5f80fd5b6100f461030e565b6040516101019190611243565b60405180910390f35b610124600480360381019061011f91906112f4565b61039e565b604051610131919061134c565b60405180910390f35b610154600480360381019061014f91906112f4565b6103c0565b6040516101649493929190611374565b60405180910390f35b61017561050b565b60405161018291906113b7565b60405180910390f35b6101a560048036038101906101a091906113d0565b610514565b6040516101b2919061134c565b60405180910390f35b6101c3610542565b6040516101d0919061143b565b60405180910390f35b6101f360048036038101906101ee9190611454565b61054a565b005b61020f600480360381019061020a9190611454565b6105a5565b005b61022b600480360381019061022691906112f4565b6107ae565b60405161023b9493929190611374565b60405180910390f35b61025e6004803603810190610259919061147f565b610800565b60405161026b91906113b7565b60405180910390f35b61028e600480360381019061028991906114aa565b610845565b005b610298610a29565b6040516102a59190611243565b60405180910390f35b6102c860048036038101906102c391906112f4565b610ab9565b6040516102d5919061134c565b60405180910390f35b6102f860048036038101906102f391906114e8565b610adb565b60405161030591906113b7565b60405180910390f35b60606003805461031d90611553565b80601f016020809104026020016040519081016040528092919081815260200182805461034990611553565b80156103945780601f1061036b57610100808354040283529160200191610394565b820191905f5260205f20905b81548152906001019060200180831161037757829003601f168201915b5050505050905090565b5f806103a8610b5d565b90506103b5818585610b64565b600191505092915050565b5f805f8060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508510610446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043d906115cd565b60405180910390fd5b5f60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208681548110610496576104956115eb565b5b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015f9054906101000a900460ff1615151515815250509050805f015181602001518260400151836060015194509450945094505092959194509250565b5f600254905090565b5f8061051e610b5d565b905061052b858285610b76565b610536858585610c09565b60019150509392505050565b5f6012905090565b6105543382610cf9565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68260405161059a91906113b7565b60405180910390a250565b6105ad610d78565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811061062f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610626906115cd565b60405180910390fd5b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061067f5761067e6115eb565b5b905f5260205f2090600402019050806003015f9054906101000a900460ff16156106de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d590611662565b60405180910390fd5b8060020154421015610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906116ca565b60405180910390fd5b6001816003015f6101000a81548160ff02191690831515021790555061074f3033835f0154610c09565b3373ffffffffffffffffffffffffffffffffffffffff167f9923b4306c6c030f2bdfbf156517d5983b87e15b96176da122cd4f2effa4ba7b825f01548460405161079a9291906116e8565b60405180910390a2506107ab610dc7565b50565b6006602052815f5260405f2081815481106107c7575f80fd5b905f5260205f2090600402015f9150915050805f015490806001015490806002015490806003015f9054906101000a900460ff16905084565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61084d610d78565b5f821161088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690611759565b60405180910390fd5b8161089933610800565b10156108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906117c1565b60405180910390fd5b6108e5333084610c09565b5f4290505f62015180836108f9919061180c565b82610904919061184d565b905060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060405180608001604052808681526020018481526020018381526020015f1515815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555050503373ffffffffffffffffffffffffffffffffffffffff167f0fc5b1bac0416800b42a669229a346b6e5a15db3896339dbdc5fa376e1e4570a858585604051610a1393929190611880565b60405180910390a25050610a25610dc7565b5050565b606060048054610a3890611553565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6490611553565b8015610aaf5780601f10610a8657610100808354040283529160200191610aaf565b820191905f5260205f20905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b5f80610ac3610b5d565b9050610ad0818585610c09565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b610b718383836001610dd1565b505050565b5f610b818484610adb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610c035781811015610bf4578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610beb939291906118c4565b60405180910390fd5b610c0284848484035f610dd1565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c79575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610c7091906118f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce9575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ce091906118f9565b60405180910390fd5b610cf4838383610fa0565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d69575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610d6091906118f9565b60405180910390fd5b610d74825f83610fa0565b5050565b600260055403610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db49061195c565b60405180910390fd5b6002600581905550565b6001600581905550565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e41575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e3891906118f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb1575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610ea891906118f9565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610f9a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f9191906113b7565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff0578060025f828254610fe4919061184d565b925050819055506110be565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611079578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611070939291906118c4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611105578060025f828254039250508190555061114f565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111ac91906113b7565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111f05780820151818401526020810190506111d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611215826111b9565b61121f81856111c3565b935061122f8185602086016111d3565b611238816111fb565b840191505092915050565b5f6020820190508181035f83015261125b818461120b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61129082611267565b9050919050565b6112a081611286565b81146112aa575f80fd5b50565b5f813590506112bb81611297565b92915050565b5f819050919050565b6112d3816112c1565b81146112dd575f80fd5b50565b5f813590506112ee816112ca565b92915050565b5f806040838503121561130a57611309611263565b5b5f611317858286016112ad565b9250506020611328858286016112e0565b9150509250929050565b5f8115159050919050565b61134681611332565b82525050565b5f60208201905061135f5f83018461133d565b92915050565b61136e816112c1565b82525050565b5f6080820190506113875f830187611365565b6113946020830186611365565b6113a16040830185611365565b6113ae606083018461133d565b95945050505050565b5f6020820190506113ca5f830184611365565b92915050565b5f805f606084860312156113e7576113e6611263565b5b5f6113f4868287016112ad565b9350506020611405868287016112ad565b9250506040611416868287016112e0565b9150509250925092565b5f60ff82169050919050565b61143581611420565b82525050565b5f60208201905061144e5f83018461142c565b92915050565b5f6020828403121561146957611468611263565b5b5f611476848285016112e0565b91505092915050565b5f6020828403121561149457611493611263565b5b5f6114a1848285016112ad565b91505092915050565b5f80604083850312156114c0576114bf611263565b5b5f6114cd858286016112e0565b92505060206114de858286016112e0565b9150509250929050565b5f80604083850312156114fe576114fd611263565b5b5f61150b858286016112ad565b925050602061151c858286016112ad565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061156a57607f821691505b60208210810361157d5761157c611526565b5b50919050565b7f496e76616c6964207374616b6520696e646578000000000000000000000000005f82015250565b5f6115b76013836111c3565b91506115c282611583565b602082019050919050565b5f6020820190508181035f8301526115e4816115ab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5374616b6520616c726561647920636c61696d656400000000000000000000005f82015250565b5f61164c6015836111c3565b915061165782611618565b602082019050919050565b5f6020820190508181035f83015261167981611640565b9050919050565b7f5374616b65206973207374696c6c206c6f636b656400000000000000000000005f82015250565b5f6116b46015836111c3565b91506116bf82611680565b602082019050919050565b5f6020820190508181035f8301526116e1816116a8565b9050919050565b5f6040820190506116fb5f830185611365565b6117086020830184611365565b9392505050565b7f43616e6e6f74207374616b65203020746f6b656e7300000000000000000000005f82015250565b5f6117436015836111c3565b915061174e8261170f565b602082019050919050565b5f6020820190508181035f83015261177081611737565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f6117ab601a836111c3565b91506117b682611777565b602082019050919050565b5f6020820190508181035f8301526117d88161179f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611816826112c1565b9150611821836112c1565b925082820261182f816112c1565b91508282048414831517611846576118456117df565b5b5092915050565b5f611857826112c1565b9150611862836112c1565b925082820190508082111561187a576118796117df565b5b92915050565b5f6060820190506118935f830186611365565b6118a06020830185611365565b6118ad6040830184611365565b949350505050565b6118be81611286565b82525050565b5f6060820190506118d75f8301866118b5565b6118e46020830185611365565b6118f16040830184611365565b949350505050565b5f60208201905061190c5f8301846118b5565b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611946601f836111c3565b915061195182611912565b602082019050919050565b5f6020820190508181035f8301526119738161193a565b905091905056fea2646970667358221220d748fb66472586940f75a7b87e2e7113a0d7b15ac0a7a4c4cf7f1b41ac4299e764736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000005ef420bc22be60829e1ca03aa1c1a093888a458400000000000000000000000000000000000000000000000000000000000000054c4954415300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054c49544153000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): LITAS
Arg [1] : symbol (string): LITAS
Arg [2] : initialSupply (uint256): 100000000
Arg [3] : initialOwner (address): 0x5EF420bc22Be60829e1cA03Aa1C1a093888A4584
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [3] : 0000000000000000000000005ef420bc22be60829e1ca03aa1c1a093888a4584
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 4c49544153000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 4c49544153000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
25837:6163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12985:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15278:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31472:525;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14087:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16078:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13938:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28486:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30124:799;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26536:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14249:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29071:782;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13195:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14572:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14817:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12985:91;13030:13;13063:5;13056:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12985:91;:::o;15278:190::-;15351:4;15368:13;15384:12;:10;:12::i;:::-;15368:28;;15407:31;15416:5;15423:7;15432:5;15407:8;:31::i;:::-;15456:4;15449:11;;;15278:190;;;;:::o;31472:525::-;31579:14;31595:17;31614:15;31631:12;31726:6;:12;31733:4;31726:12;;;;;;;;;;;;;;;:19;;;;31713:10;:32;31705:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;31782:22;31807:6;:12;31814:4;31807:12;;;;;;;;;;;;;;;31820:10;31807:24;;;;;;;;:::i;:::-;;;;;;;;;;;;31782:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31864:9;:16;;;31895:9;:19;;;31929:9;:17;;;31961:9;:17;;;31842:147;;;;;;;;;31472:525;;;;;;;:::o;14087:99::-;14139:7;14166:12;;14159:19;;14087:99;:::o;16078:249::-;16165:4;16182:15;16200:12;:10;:12::i;:::-;16182:30;;16223:37;16239:4;16245:7;16254:5;16223:15;:37::i;:::-;16271:26;16281:4;16287:2;16291:5;16271:9;:26::i;:::-;16315:4;16308:11;;;16078:249;;;;;:::o;13938:84::-;13987:5;14012:2;14005:9;;13938:84;:::o;28486:201::-;28606:25;28612:10;28624:6;28606:5;:25::i;:::-;28660:10;28647:32;;;28672:6;28647:32;;;;;;:::i;:::-;;;;;;;;28486:201;:::o;30124:799::-;24707:21;:19;:21::i;:::-;30267:6:::1;:18;30274:10;30267:18;;;;;;;;;;;;;;;:25;;;;30254:10;:38;30246:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;30329:23;30355:6;:18;30362:10;30355:18;;;;;;;;;;;;;;;30374:10;30355:30;;;;;;;;:::i;:::-;;;;;;;;;;;;30329:56;;30468:9;:17;;;;;;;;;;;;30467:18;30459:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;30601:9;:17;;;30582:15;:36;;30574:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;30715:4;30695:9;:17;;;:24;;;;;;;;;;;;;;;;;;30788:54;30806:4;30813:10;30825:9;:16;;;30788:9;:54::i;:::-;30874:10;30860:55;;;30886:9;:16;;;30904:10;30860:55;;;;;;;:::i;:::-;;;;;;;;30191:732;24751:20:::0;:18;:20::i;:::-;30124:799;:::o;26536:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14249:118::-;14314:7;14341:9;:18;14351:7;14341:18;;;;;;;;;;;;;;;;14334:25;;14249:118;;;:::o;29071:782::-;24707:21;:19;:21::i;:::-;29174:1:::1;29165:6;:10;29157:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;29245:6;29220:21;29230:10;29220:9;:21::i;:::-;:31;;29212:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;29358:44;29368:10;29388:4;29395:6;29358:9;:44::i;:::-;29415:17;29435:15;29415:35;;29461:15;29509:6;29492:14;:23;;;;:::i;:::-;29479:9;:37;;;;:::i;:::-;29461:55;;29601:6;:18;29608:10;29601:18;;;;;;;;;;;;;;;29625:142;;;;;;;;29654:6;29625:142;;;;29686:9;29625:142;;;;29719:7;29625:142;;;;29750:5;29625:142;;;;::::0;29601:167:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29799:10;29786:59;;;29811:6;29819:14;29835:9;29786:59;;;;;;;;:::i;:::-;;;;;;;;29146:707;;24751:20:::0;:18;:20::i;:::-;29071:782;;:::o;13195:95::-;13242:13;13275:7;13268:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13195:95;:::o;14572:182::-;14641:4;14658:13;14674:12;:10;:12::i;:::-;14658:28;;14697:27;14707:5;14714:2;14718:5;14697:9;:27::i;:::-;14742:4;14735:11;;;14572:182;;;;:::o;14817:142::-;14897:7;14924:11;:18;14936:5;14924:18;;;;;;;;;;;;;;;:27;14943:7;14924:27;;;;;;;;;;;;;;;;14917:34;;14817:142;;;;:::o;4304:98::-;4357:7;4384:10;4377:17;;4304:98;:::o;20137:130::-;20222:37;20231:5;20238:7;20247:5;20254:4;20222:8;:37::i;:::-;20137:130;;;:::o;21869:486::-;21969:24;21996:25;22006:5;22013:7;21996:9;:25::i;:::-;21969:52;;22055:17;22036:16;:36;22032:316;;;22112:5;22093:16;:24;22089:132;;;22172:7;22181:16;22199:5;22145:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;22089:132;22264:57;22273:5;22280:7;22308:5;22289:16;:24;22315:5;22264:8;:57::i;:::-;22032:316;21958:397;21869:486;;;:::o;16712:308::-;16812:1;16796:18;;:4;:18;;;16792:88;;16865:1;16838:30;;;;;;;;;;;:::i;:::-;;;;;;;;16792:88;16908:1;16894:16;;:2;:16;;;16890:88;;16963:1;16934:32;;;;;;;;;;;:::i;:::-;;;;;;;;16890:88;16988:24;16996:4;17002:2;17006:5;16988:7;:24::i;:::-;16712:308;;;:::o;19373:211::-;19463:1;19444:21;;:7;:21;;;19440:91;;19516:1;19489:30;;;;;;;;;;;:::i;:::-;;;;;;;;19440:91;19541:35;19549:7;19566:1;19570:5;19541:7;:35::i;:::-;19373:211;;:::o;24787:293::-;24189:1;24921:7;;:19;24913:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;24189:1;25054:7;:18;;;;24787:293::o;25088:213::-;24145:1;25271:7;:22;;;;25088:213::o;21134:443::-;21264:1;21247:19;;:5;:19;;;21243:91;;21319:1;21290:32;;;;;;;;;;;:::i;:::-;;;;;;;;21243:91;21367:1;21348:21;;:7;:21;;;21344:92;;21421:1;21393:31;;;;;;;;;;;:::i;:::-;;;;;;;;21344:92;21476:5;21446:11;:18;21458:5;21446:18;;;;;;;;;;;;;;;:27;21465:7;21446:27;;;;;;;;;;;;;;;:35;;;;21496:9;21492:78;;;21543:7;21527:31;;21536:5;21527:31;;;21552:5;21527:31;;;;;;:::i;:::-;;;;;;;;21492:78;21134:443;;;;:::o;17344:1135::-;17450:1;17434:18;;:4;:18;;;17430:552;;17588:5;17572:12;;:21;;;;;;;:::i;:::-;;;;;;;;17430:552;;;17626:19;17648:9;:15;17658:4;17648:15;;;;;;;;;;;;;;;;17626:37;;17696:5;17682:11;:19;17678:117;;;17754:4;17760:11;17773:5;17729:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;17678:117;17950:5;17936:11;:19;17918:9;:15;17928:4;17918:15;;;;;;;;;;;;;;;:37;;;;17611:371;17430:552;18012:1;17998:16;;:2;:16;;;17994:435;;18180:5;18164:12;;:21;;;;;;;;;;;17994:435;;;18397:5;18380:9;:13;18390:2;18380:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;17994:435;18461:2;18446:25;;18455:4;18446:25;;;18465:5;18446:25;;;;;;:::i;:::-;;;;;;;;17344:1135;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:541::-;3741:4;3779:3;3768:9;3764:19;3756:27;;3793:71;3861:1;3850:9;3846:17;3837:6;3793:71;:::i;:::-;3874:72;3942:2;3931:9;3927:18;3918:6;3874:72;:::i;:::-;3956;4024:2;4013:9;4009:18;4000:6;3956:72;:::i;:::-;4038:66;4100:2;4089:9;4085:18;4076:6;4038:66;:::i;:::-;3570:541;;;;;;;:::o;4117:222::-;4210:4;4248:2;4237:9;4233:18;4225:26;;4261:71;4329:1;4318:9;4314:17;4305:6;4261:71;:::i;:::-;4117:222;;;;:::o;4345:619::-;4422:6;4430;4438;4487:2;4475:9;4466:7;4462:23;4458:32;4455:119;;;4493:79;;:::i;:::-;4455:119;4613:1;4638:53;4683:7;4674:6;4663:9;4659:22;4638:53;:::i;:::-;4628:63;;4584:117;4740:2;4766:53;4811:7;4802:6;4791:9;4787:22;4766:53;:::i;:::-;4756:63;;4711:118;4868:2;4894:53;4939:7;4930:6;4919:9;4915:22;4894:53;:::i;:::-;4884:63;;4839:118;4345:619;;;;;:::o;4970:86::-;5005:7;5045:4;5038:5;5034:16;5023:27;;4970:86;;;:::o;5062:112::-;5145:22;5161:5;5145:22;:::i;:::-;5140:3;5133:35;5062:112;;:::o;5180:214::-;5269:4;5307:2;5296:9;5292:18;5284:26;;5320:67;5384:1;5373:9;5369:17;5360:6;5320:67;:::i;:::-;5180:214;;;;:::o;5400:329::-;5459:6;5508:2;5496:9;5487:7;5483:23;5479:32;5476:119;;;5514:79;;:::i;:::-;5476:119;5634:1;5659:53;5704:7;5695:6;5684:9;5680:22;5659:53;:::i;:::-;5649:63;;5605:117;5400:329;;;;:::o;5735:::-;5794:6;5843:2;5831:9;5822:7;5818:23;5814:32;5811:119;;;5849:79;;:::i;:::-;5811:119;5969:1;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5940:117;5735:329;;;;:::o;6070:474::-;6138:6;6146;6195:2;6183:9;6174:7;6170:23;6166:32;6163:119;;;6201:79;;:::i;:::-;6163:119;6321:1;6346:53;6391:7;6382:6;6371:9;6367:22;6346:53;:::i;:::-;6336:63;;6292:117;6448:2;6474:53;6519:7;6510:6;6499:9;6495:22;6474:53;:::i;:::-;6464:63;;6419:118;6070:474;;;;;:::o;6550:::-;6618:6;6626;6675:2;6663:9;6654:7;6650:23;6646:32;6643:119;;;6681:79;;:::i;:::-;6643:119;6801:1;6826:53;6871:7;6862:6;6851:9;6847:22;6826:53;:::i;:::-;6816:63;;6772:117;6928:2;6954:53;6999:7;6990:6;6979:9;6975:22;6954:53;:::i;:::-;6944:63;;6899:118;6550:474;;;;;:::o;7030:180::-;7078:77;7075:1;7068:88;7175:4;7172:1;7165:15;7199:4;7196:1;7189:15;7216:320;7260:6;7297:1;7291:4;7287:12;7277:22;;7344:1;7338:4;7334:12;7365:18;7355:81;;7421:4;7413:6;7409:17;7399:27;;7355:81;7483:2;7475:6;7472:14;7452:18;7449:38;7446:84;;7502:18;;:::i;:::-;7446:84;7267:269;7216:320;;;:::o;7542:169::-;7682:21;7678:1;7670:6;7666:14;7659:45;7542:169;:::o;7717:366::-;7859:3;7880:67;7944:2;7939:3;7880:67;:::i;:::-;7873:74;;7956:93;8045:3;7956:93;:::i;:::-;8074:2;8069:3;8065:12;8058:19;;7717:366;;;:::o;8089:419::-;8255:4;8293:2;8282:9;8278:18;8270:26;;8342:9;8336:4;8332:20;8328:1;8317:9;8313:17;8306:47;8370:131;8496:4;8370:131;:::i;:::-;8362:139;;8089:419;;;:::o;8514:180::-;8562:77;8559:1;8552:88;8659:4;8656:1;8649:15;8683:4;8680:1;8673:15;8700:171;8840:23;8836:1;8828:6;8824:14;8817:47;8700:171;:::o;8877:366::-;9019:3;9040:67;9104:2;9099:3;9040:67;:::i;:::-;9033:74;;9116:93;9205:3;9116:93;:::i;:::-;9234:2;9229:3;9225:12;9218:19;;8877:366;;;:::o;9249:419::-;9415:4;9453:2;9442:9;9438:18;9430:26;;9502:9;9496:4;9492:20;9488:1;9477:9;9473:17;9466:47;9530:131;9656:4;9530:131;:::i;:::-;9522:139;;9249:419;;;:::o;9674:171::-;9814:23;9810:1;9802:6;9798:14;9791:47;9674:171;:::o;9851:366::-;9993:3;10014:67;10078:2;10073:3;10014:67;:::i;:::-;10007:74;;10090:93;10179:3;10090:93;:::i;:::-;10208:2;10203:3;10199:12;10192:19;;9851:366;;;:::o;10223:419::-;10389:4;10427:2;10416:9;10412:18;10404:26;;10476:9;10470:4;10466:20;10462:1;10451:9;10447:17;10440:47;10504:131;10630:4;10504:131;:::i;:::-;10496:139;;10223:419;;;:::o;10648:332::-;10769:4;10807:2;10796:9;10792:18;10784:26;;10820:71;10888:1;10877:9;10873:17;10864:6;10820:71;:::i;:::-;10901:72;10969:2;10958:9;10954:18;10945:6;10901:72;:::i;:::-;10648:332;;;;;:::o;10986:171::-;11126:23;11122:1;11114:6;11110:14;11103:47;10986:171;:::o;11163:366::-;11305:3;11326:67;11390:2;11385:3;11326:67;:::i;:::-;11319:74;;11402:93;11491:3;11402:93;:::i;:::-;11520:2;11515:3;11511:12;11504:19;;11163:366;;;:::o;11535:419::-;11701:4;11739:2;11728:9;11724:18;11716:26;;11788:9;11782:4;11778:20;11774:1;11763:9;11759:17;11752:47;11816:131;11942:4;11816:131;:::i;:::-;11808:139;;11535:419;;;:::o;11960:176::-;12100:28;12096:1;12088:6;12084:14;12077:52;11960:176;:::o;12142:366::-;12284:3;12305:67;12369:2;12364:3;12305:67;:::i;:::-;12298:74;;12381:93;12470:3;12381:93;:::i;:::-;12499:2;12494:3;12490:12;12483:19;;12142:366;;;:::o;12514:419::-;12680:4;12718:2;12707:9;12703:18;12695:26;;12767:9;12761:4;12757:20;12753:1;12742:9;12738:17;12731:47;12795:131;12921:4;12795:131;:::i;:::-;12787:139;;12514:419;;;:::o;12939:180::-;12987:77;12984:1;12977:88;13084:4;13081:1;13074:15;13108:4;13105:1;13098:15;13125:410;13165:7;13188:20;13206:1;13188:20;:::i;:::-;13183:25;;13222:20;13240:1;13222:20;:::i;:::-;13217:25;;13277:1;13274;13270:9;13299:30;13317:11;13299:30;:::i;:::-;13288:41;;13478:1;13469:7;13465:15;13462:1;13459:22;13439:1;13432:9;13412:83;13389:139;;13508:18;;:::i;:::-;13389:139;13173:362;13125:410;;;;:::o;13541:191::-;13581:3;13600:20;13618:1;13600:20;:::i;:::-;13595:25;;13634:20;13652:1;13634:20;:::i;:::-;13629:25;;13677:1;13674;13670:9;13663:16;;13698:3;13695:1;13692:10;13689:36;;;13705:18;;:::i;:::-;13689:36;13541:191;;;;:::o;13738:442::-;13887:4;13925:2;13914:9;13910:18;13902:26;;13938:71;14006:1;13995:9;13991:17;13982:6;13938:71;:::i;:::-;14019:72;14087:2;14076:9;14072:18;14063:6;14019:72;:::i;:::-;14101;14169:2;14158:9;14154:18;14145:6;14101:72;:::i;:::-;13738:442;;;;;;:::o;14186:118::-;14273:24;14291:5;14273:24;:::i;:::-;14268:3;14261:37;14186:118;;:::o;14310:442::-;14459:4;14497:2;14486:9;14482:18;14474:26;;14510:71;14578:1;14567:9;14563:17;14554:6;14510:71;:::i;:::-;14591:72;14659:2;14648:9;14644:18;14635:6;14591:72;:::i;:::-;14673;14741:2;14730:9;14726:18;14717:6;14673:72;:::i;:::-;14310:442;;;;;;:::o;14758:222::-;14851:4;14889:2;14878:9;14874:18;14866:26;;14902:71;14970:1;14959:9;14955:17;14946:6;14902:71;:::i;:::-;14758:222;;;;:::o;14986:181::-;15126:33;15122:1;15114:6;15110:14;15103:57;14986:181;:::o;15173:366::-;15315:3;15336:67;15400:2;15395:3;15336:67;:::i;:::-;15329:74;;15412:93;15501:3;15412:93;:::i;:::-;15530:2;15525:3;15521:12;15514:19;;15173:366;;;:::o;15545:419::-;15711:4;15749:2;15738:9;15734:18;15726:26;;15798:9;15792:4;15788:20;15784:1;15773:9;15769:17;15762:47;15826:131;15952:4;15826:131;:::i;:::-;15818:139;;15545:419;;;:::o
Swarm Source
ipfs://d748fb66472586940f75a7b87e2e7113a0d7b15ac0a7a4c4cf7f1b41ac4299e7
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 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.