Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 53 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 19109986 | 767 days ago | IN | 0 ETH | 0.00039216 | ||||
| Approve | 19037808 | 777 days ago | IN | 0 ETH | 0.00145224 | ||||
| Approve | 18991406 | 783 days ago | IN | 0 ETH | 0.00159723 | ||||
| Approve | 18986823 | 784 days ago | IN | 0 ETH | 0.00150438 | ||||
| Approve | 18985425 | 784 days ago | IN | 0 ETH | 0.00133048 | ||||
| Approve | 18982648 | 784 days ago | IN | 0 ETH | 0.00116997 | ||||
| Approve | 18981672 | 785 days ago | IN | 0 ETH | 0.00124038 | ||||
| Approve | 18979646 | 785 days ago | IN | 0 ETH | 0.00240375 | ||||
| Approve | 18979535 | 785 days ago | IN | 0 ETH | 0.00252796 | ||||
| Approve | 18978403 | 785 days ago | IN | 0 ETH | 0.00304367 | ||||
| Approve | 18978319 | 785 days ago | IN | 0 ETH | 0.00187659 | ||||
| Approve | 18977969 | 785 days ago | IN | 0 ETH | 0.00186503 | ||||
| Approve | 18977114 | 785 days ago | IN | 0 ETH | 0.00314832 | ||||
| Approve | 18977038 | 785 days ago | IN | 0 ETH | 0.01818055 | ||||
| Approve | 18977029 | 785 days ago | IN | 0 ETH | 0.01908515 | ||||
| Approve | 18977029 | 785 days ago | IN | 0 ETH | 0.01908515 | ||||
| Approve | 18976997 | 785 days ago | IN | 0 ETH | 0.002117 | ||||
| Approve | 18976995 | 785 days ago | IN | 0 ETH | 0.00229547 | ||||
| Approve | 18976991 | 785 days ago | IN | 0 ETH | 0.00197494 | ||||
| Approve | 18976989 | 785 days ago | IN | 0 ETH | 0.00293055 | ||||
| Approve | 18976987 | 785 days ago | IN | 0 ETH | 0.00212783 | ||||
| Approve | 18976985 | 785 days ago | IN | 0 ETH | 0.00303498 | ||||
| Approve | 18976983 | 785 days ago | IN | 0 ETH | 0.00223742 | ||||
| Approve | 18976983 | 785 days ago | IN | 0 ETH | 0.00280368 | ||||
| Approve | 18976980 | 785 days ago | IN | 0 ETH | 0.00234212 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Yield24
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./ERC20.sol";
import "./Ownable.sol";
import "./SafeERC20.sol";
import "./IERC20.sol";
contract Yield24 is ERC20, Ownable{
using SafeERC20 for IERC20;
constructor(
string memory _name,
string memory _symbol,
uint256 _initialSupply
) ERC20(_name, _symbol) {
_mint(msg.sender, _initialSupply * (10 ** 18) );
}
function clearStuckedTokens(address _token, uint256 _amount) external onlyOwner {
require(_token != address(this), "Cannot clear same tokens as Y24");
IERC20(_token).safeTransfer(msg.sender, _amount);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @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;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";
/**
* @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}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* 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 ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these 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 override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override 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 value {ERC20} uses, unless this function is
* 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 override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `recipient` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for ``sender``'s tokens of at least
* `amount`.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `sender` to `recipient`.
*
* 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.
*
* Requirements:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` 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.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) 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 `amount` 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 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @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);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
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);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_setOwner(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender) + value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
unchecked {
uint256 oldAllowance = token.allowance(address(this), spender);
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
uint256 newAllowance = oldAllowance - value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
// Return data is optional
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}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"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearStuckedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801562000010575f80fd5b50604051620027ba380380620027ba8339818101604052810190620000369190620004af565b8282816003908162000049919062000774565b5080600490816200005b919062000774565b5050506200007e62000072620000ae60201b60201c565b620000b560201b60201c565b620000a533670de0b6b3a76400008362000099919062000885565b6200017860201b60201c565b505050620009b3565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e0906200092d565b60405180910390fd5b620001fc5f8383620002e860201b60201c565b8060025f8282546200020f91906200094d565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200026391906200094d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002c9919062000998565b60405180910390a3620002e45f8383620002ed60201b60201c565b5050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000353826200030b565b810181811067ffffffffffffffff821117156200037557620003746200031b565b5b80604052505050565b5f62000389620002f2565b905062000397828262000348565b919050565b5f67ffffffffffffffff821115620003b957620003b86200031b565b5b620003c4826200030b565b9050602081019050919050565b5f5b83811015620003f0578082015181840152602081019050620003d3565b5f8484015250505050565b5f620004116200040b846200039c565b6200037e565b90508281526020810184848401111562000430576200042f62000307565b5b6200043d848285620003d1565b509392505050565b5f82601f8301126200045c576200045b62000303565b5b81516200046e848260208601620003fb565b91505092915050565b5f819050919050565b6200048b8162000477565b811462000496575f80fd5b50565b5f81519050620004a98162000480565b92915050565b5f805f60608486031215620004c957620004c8620002fb565b5b5f84015167ffffffffffffffff811115620004e957620004e8620002ff565b5b620004f78682870162000445565b935050602084015167ffffffffffffffff8111156200051b576200051a620002ff565b5b620005298682870162000445565b92505060406200053c8682870162000499565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200059557607f821691505b602082108103620005ab57620005aa62000550565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200060f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005d2565b6200061b8683620005d2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200065c62000656620006508462000477565b62000633565b62000477565b9050919050565b5f819050919050565b62000677836200063c565b6200068f620006868262000663565b848454620005de565b825550505050565b5f90565b620006a562000697565b620006b28184846200066c565b505050565b5b81811015620006d957620006cd5f826200069b565b600181019050620006b8565b5050565b601f8211156200072857620006f281620005b1565b620006fd84620005c3565b810160208510156200070d578190505b620007256200071c85620005c3565b830182620006b7565b50505b505050565b5f82821c905092915050565b5f6200074a5f19846008026200072d565b1980831691505092915050565b5f62000764838362000739565b9150826002028217905092915050565b6200077f8262000546565b67ffffffffffffffff8111156200079b576200079a6200031b565b5b620007a782546200057d565b620007b4828285620006dd565b5f60209050601f831160018114620007ea575f8415620007d5578287015190505b620007e1858262000757565b86555062000850565b601f198416620007fa86620005b1565b5f5b828110156200082357848901518255600182019150602085019450602081019050620007fc565b868310156200084357848901516200083f601f89168262000739565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008918262000477565b91506200089e8362000477565b9250828202620008ae8162000477565b91508282048414831517620008c857620008c762000858565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000915601f83620008cf565b91506200092282620008df565b602082019050919050565b5f6020820190508181035f830152620009468162000907565b9050919050565b5f620009598262000477565b9150620009668362000477565b925082820190508082111562000981576200098062000858565b5b92915050565b620009928162000477565b82525050565b5f602082019050620009ad5f83018462000987565b92915050565b611df980620009c15f395ff3fe608060405234801561000f575f80fd5b50600436106100f3575f3560e01c806370a0823111610095578063a457c2d711610064578063a457c2d714610273578063a9059cbb146102a3578063dd62ed3e146102d3578063f2fde38b14610303576100f3565b806370a08231146101fd578063715018a61461022d5780638da5cb5b1461023757806395d89b4114610255576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce5671461019357806339509351146101b15780635f821b62146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff61031f565b60405161010c919061130d565b60405180910390f35b61012f600480360381019061012a91906113be565b6103af565b60405161013c9190611416565b60405180910390f35b61014d6103cc565b60405161015a919061143e565b60405180910390f35b61017d60048036038101906101789190611457565b6103d5565b60405161018a9190611416565b60405180910390f35b61019b6104c7565b6040516101a891906114c2565b60405180910390f35b6101cb60048036038101906101c691906113be565b6104cf565b6040516101d89190611416565b60405180910390f35b6101fb60048036038101906101f691906113be565b610576565b005b610217600480360381019061021291906114db565b61068f565b604051610224919061143e565b60405180910390f35b6102356106d4565b005b61023f61075b565b60405161024c9190611515565b60405180910390f35b61025d610783565b60405161026a919061130d565b60405180910390f35b61028d600480360381019061028891906113be565b610813565b60405161029a9190611416565b60405180910390f35b6102bd60048036038101906102b891906113be565b6108f9565b6040516102ca9190611416565b60405180910390f35b6102ed60048036038101906102e8919061152e565b610916565b6040516102fa919061143e565b60405180910390f35b61031d600480360381019061031891906114db565b610998565b005b60606003805461032e90611599565b80601f016020809104026020016040519081016040528092919081815260200182805461035a90611599565b80156103a55780601f1061037c576101008083540402835291602001916103a5565b820191905f5260205f20905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b5f6103c26103bb610a8e565b8484610a95565b6001905092915050565b5f600254905090565b5f6103e1848484610c58565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610428610a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049e90611639565b60405180910390fd5b6104bb856104b3610a8e565b858403610a95565b60019150509392505050565b5f6012905090565b5f61056c6104db610a8e565b848460015f6104e8610a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105679190611684565b610a95565b6001905092915050565b61057e610a8e565b73ffffffffffffffffffffffffffffffffffffffff1661059c61075b565b73ffffffffffffffffffffffffffffffffffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990611701565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065790611769565b60405180910390fd5b61068b33828473ffffffffffffffffffffffffffffffffffffffff16610ecd9092919063ffffffff16565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106dc610a8e565b73ffffffffffffffffffffffffffffffffffffffff166106fa61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074790611701565b60405180910390fd5b6107595f610f53565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461079290611599565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90611599565b80156108095780601f106107e057610100808354040283529160200191610809565b820191905f5260205f20905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b5f8060015f610820610a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906117f7565b60405180910390fd5b6108ee6108e5610a8e565b85858403610a95565b600191505092915050565b5f61090c610905610a8e565b8484610c58565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109a0610a8e565b73ffffffffffffffffffffffffffffffffffffffff166109be61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0b90611701565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990611885565b60405180910390fd5b610a8b81610f53565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90611913565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b68906119a1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c4b919061143e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd90611a2f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b90611abd565b60405180910390fd5b610d3f838383611016565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611b4b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e509190611684565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb4919061143e565b60405180910390a3610ec784848461101b565b50505050565b610f4e8363a9059cbb60e01b8484604051602401610eec929190611b69565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611020565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b5f611081826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110e59092919063ffffffff16565b90505f815111156110e057808060200190518101906110a09190611bba565b6110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d690611c55565b60405180910390fd5b5b505050565b60606110f384845f856110fc565b90509392505050565b606082471015611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890611ce3565b60405180910390fd5b61114a8561120c565b611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090611d4b565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516111b19190611dad565b5f6040518083038185875af1925050503d805f81146111eb576040519150601f19603f3d011682016040523d82523d5f602084013e6111f0565b606091505b509150915061120082828661121d565b92505050949350505050565b5f80823b90505f8111915050919050565b6060831561122d5782905061127c565b5f8351111561123f5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273919061130d565b60405180910390fd5b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156112ba57808201518184015260208101905061129f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6112df82611283565b6112e9818561128d565b93506112f981856020860161129d565b611302816112c5565b840191505092915050565b5f6020820190508181035f83015261132581846112d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61135a82611331565b9050919050565b61136a81611350565b8114611374575f80fd5b50565b5f8135905061138581611361565b92915050565b5f819050919050565b61139d8161138b565b81146113a7575f80fd5b50565b5f813590506113b881611394565b92915050565b5f80604083850312156113d4576113d361132d565b5b5f6113e185828601611377565b92505060206113f2858286016113aa565b9150509250929050565b5f8115159050919050565b611410816113fc565b82525050565b5f6020820190506114295f830184611407565b92915050565b6114388161138b565b82525050565b5f6020820190506114515f83018461142f565b92915050565b5f805f6060848603121561146e5761146d61132d565b5b5f61147b86828701611377565b935050602061148c86828701611377565b925050604061149d868287016113aa565b9150509250925092565b5f60ff82169050919050565b6114bc816114a7565b82525050565b5f6020820190506114d55f8301846114b3565b92915050565b5f602082840312156114f0576114ef61132d565b5b5f6114fd84828501611377565b91505092915050565b61150f81611350565b82525050565b5f6020820190506115285f830184611506565b92915050565b5f80604083850312156115445761154361132d565b5b5f61155185828601611377565b925050602061156285828601611377565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115b057607f821691505b6020821081036115c3576115c261156c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61162360288361128d565b915061162e826115c9565b604082019050919050565b5f6020820190508181035f83015261165081611617565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61168e8261138b565b91506116998361138b565b92508282019050808211156116b1576116b0611657565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6116eb60208361128d565b91506116f6826116b7565b602082019050919050565b5f6020820190508181035f830152611718816116df565b9050919050565b7f43616e6e6f7420636c6561722073616d6520746f6b656e7320617320593234005f82015250565b5f611753601f8361128d565b915061175e8261171f565b602082019050919050565b5f6020820190508181035f83015261178081611747565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6117e160258361128d565b91506117ec82611787565b604082019050919050565b5f6020820190508181035f83015261180e816117d5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61186f60268361128d565b915061187a82611815565b604082019050919050565b5f6020820190508181035f83015261189c81611863565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6118fd60248361128d565b9150611908826118a3565b604082019050919050565b5f6020820190508181035f83015261192a816118f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61198b60228361128d565b915061199682611931565b604082019050919050565b5f6020820190508181035f8301526119b88161197f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611a1960258361128d565b9150611a24826119bf565b604082019050919050565b5f6020820190508181035f830152611a4681611a0d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611aa760238361128d565b9150611ab282611a4d565b604082019050919050565b5f6020820190508181035f830152611ad481611a9b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611b3560268361128d565b9150611b4082611adb565b604082019050919050565b5f6020820190508181035f830152611b6281611b29565b9050919050565b5f604082019050611b7c5f830185611506565b611b89602083018461142f565b9392505050565b611b99816113fc565b8114611ba3575f80fd5b50565b5f81519050611bb481611b90565b92915050565b5f60208284031215611bcf57611bce61132d565b5b5f611bdc84828501611ba6565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f611c3f602a8361128d565b9150611c4a82611be5565b604082019050919050565b5f6020820190508181035f830152611c6c81611c33565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f611ccd60268361128d565b9150611cd882611c73565b604082019050919050565b5f6020820190508181035f830152611cfa81611cc1565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f611d35601d8361128d565b9150611d4082611d01565b602082019050919050565b5f6020820190508181035f830152611d6281611d29565b9050919050565b5f81519050919050565b5f81905092915050565b5f611d8782611d69565b611d918185611d73565b9350611da181856020860161129d565b80840191505092915050565b5f611db88284611d7d565b91508190509291505056fea26469706673582212200ba71de70b4e643e865944d7b888cdc9a3e426f843d35ec2ee0d326d7cefc64f64736f6c63430008160033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000002faf08000000000000000000000000000000000000000000000000000000000000000085969656c6420323400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035932340000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100f3575f3560e01c806370a0823111610095578063a457c2d711610064578063a457c2d714610273578063a9059cbb146102a3578063dd62ed3e146102d3578063f2fde38b14610303576100f3565b806370a08231146101fd578063715018a61461022d5780638da5cb5b1461023757806395d89b4114610255576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce5671461019357806339509351146101b15780635f821b62146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff61031f565b60405161010c919061130d565b60405180910390f35b61012f600480360381019061012a91906113be565b6103af565b60405161013c9190611416565b60405180910390f35b61014d6103cc565b60405161015a919061143e565b60405180910390f35b61017d60048036038101906101789190611457565b6103d5565b60405161018a9190611416565b60405180910390f35b61019b6104c7565b6040516101a891906114c2565b60405180910390f35b6101cb60048036038101906101c691906113be565b6104cf565b6040516101d89190611416565b60405180910390f35b6101fb60048036038101906101f691906113be565b610576565b005b610217600480360381019061021291906114db565b61068f565b604051610224919061143e565b60405180910390f35b6102356106d4565b005b61023f61075b565b60405161024c9190611515565b60405180910390f35b61025d610783565b60405161026a919061130d565b60405180910390f35b61028d600480360381019061028891906113be565b610813565b60405161029a9190611416565b60405180910390f35b6102bd60048036038101906102b891906113be565b6108f9565b6040516102ca9190611416565b60405180910390f35b6102ed60048036038101906102e8919061152e565b610916565b6040516102fa919061143e565b60405180910390f35b61031d600480360381019061031891906114db565b610998565b005b60606003805461032e90611599565b80601f016020809104026020016040519081016040528092919081815260200182805461035a90611599565b80156103a55780601f1061037c576101008083540402835291602001916103a5565b820191905f5260205f20905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b5f6103c26103bb610a8e565b8484610a95565b6001905092915050565b5f600254905090565b5f6103e1848484610c58565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610428610a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049e90611639565b60405180910390fd5b6104bb856104b3610a8e565b858403610a95565b60019150509392505050565b5f6012905090565b5f61056c6104db610a8e565b848460015f6104e8610a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105679190611684565b610a95565b6001905092915050565b61057e610a8e565b73ffffffffffffffffffffffffffffffffffffffff1661059c61075b565b73ffffffffffffffffffffffffffffffffffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990611701565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065790611769565b60405180910390fd5b61068b33828473ffffffffffffffffffffffffffffffffffffffff16610ecd9092919063ffffffff16565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106dc610a8e565b73ffffffffffffffffffffffffffffffffffffffff166106fa61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074790611701565b60405180910390fd5b6107595f610f53565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461079290611599565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90611599565b80156108095780601f106107e057610100808354040283529160200191610809565b820191905f5260205f20905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b5f8060015f610820610a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906117f7565b60405180910390fd5b6108ee6108e5610a8e565b85858403610a95565b600191505092915050565b5f61090c610905610a8e565b8484610c58565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109a0610a8e565b73ffffffffffffffffffffffffffffffffffffffff166109be61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0b90611701565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990611885565b60405180910390fd5b610a8b81610f53565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90611913565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b68906119a1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c4b919061143e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd90611a2f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b90611abd565b60405180910390fd5b610d3f838383611016565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990611b4b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e509190611684565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb4919061143e565b60405180910390a3610ec784848461101b565b50505050565b610f4e8363a9059cbb60e01b8484604051602401610eec929190611b69565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611020565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b5f611081826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110e59092919063ffffffff16565b90505f815111156110e057808060200190518101906110a09190611bba565b6110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d690611c55565b60405180910390fd5b5b505050565b60606110f384845f856110fc565b90509392505050565b606082471015611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890611ce3565b60405180910390fd5b61114a8561120c565b611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090611d4b565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516111b19190611dad565b5f6040518083038185875af1925050503d805f81146111eb576040519150601f19603f3d011682016040523d82523d5f602084013e6111f0565b606091505b509150915061120082828661121d565b92505050949350505050565b5f80823b90505f8111915050919050565b6060831561122d5782905061127c565b5f8351111561123f5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273919061130d565b60405180910390fd5b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156112ba57808201518184015260208101905061129f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6112df82611283565b6112e9818561128d565b93506112f981856020860161129d565b611302816112c5565b840191505092915050565b5f6020820190508181035f83015261132581846112d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61135a82611331565b9050919050565b61136a81611350565b8114611374575f80fd5b50565b5f8135905061138581611361565b92915050565b5f819050919050565b61139d8161138b565b81146113a7575f80fd5b50565b5f813590506113b881611394565b92915050565b5f80604083850312156113d4576113d361132d565b5b5f6113e185828601611377565b92505060206113f2858286016113aa565b9150509250929050565b5f8115159050919050565b611410816113fc565b82525050565b5f6020820190506114295f830184611407565b92915050565b6114388161138b565b82525050565b5f6020820190506114515f83018461142f565b92915050565b5f805f6060848603121561146e5761146d61132d565b5b5f61147b86828701611377565b935050602061148c86828701611377565b925050604061149d868287016113aa565b9150509250925092565b5f60ff82169050919050565b6114bc816114a7565b82525050565b5f6020820190506114d55f8301846114b3565b92915050565b5f602082840312156114f0576114ef61132d565b5b5f6114fd84828501611377565b91505092915050565b61150f81611350565b82525050565b5f6020820190506115285f830184611506565b92915050565b5f80604083850312156115445761154361132d565b5b5f61155185828601611377565b925050602061156285828601611377565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115b057607f821691505b6020821081036115c3576115c261156c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61162360288361128d565b915061162e826115c9565b604082019050919050565b5f6020820190508181035f83015261165081611617565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61168e8261138b565b91506116998361138b565b92508282019050808211156116b1576116b0611657565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6116eb60208361128d565b91506116f6826116b7565b602082019050919050565b5f6020820190508181035f830152611718816116df565b9050919050565b7f43616e6e6f7420636c6561722073616d6520746f6b656e7320617320593234005f82015250565b5f611753601f8361128d565b915061175e8261171f565b602082019050919050565b5f6020820190508181035f83015261178081611747565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6117e160258361128d565b91506117ec82611787565b604082019050919050565b5f6020820190508181035f83015261180e816117d5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61186f60268361128d565b915061187a82611815565b604082019050919050565b5f6020820190508181035f83015261189c81611863565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6118fd60248361128d565b9150611908826118a3565b604082019050919050565b5f6020820190508181035f83015261192a816118f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61198b60228361128d565b915061199682611931565b604082019050919050565b5f6020820190508181035f8301526119b88161197f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611a1960258361128d565b9150611a24826119bf565b604082019050919050565b5f6020820190508181035f830152611a4681611a0d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611aa760238361128d565b9150611ab282611a4d565b604082019050919050565b5f6020820190508181035f830152611ad481611a9b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611b3560268361128d565b9150611b4082611adb565b604082019050919050565b5f6020820190508181035f830152611b6281611b29565b9050919050565b5f604082019050611b7c5f830185611506565b611b89602083018461142f565b9392505050565b611b99816113fc565b8114611ba3575f80fd5b50565b5f81519050611bb481611b90565b92915050565b5f60208284031215611bcf57611bce61132d565b5b5f611bdc84828501611ba6565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f611c3f602a8361128d565b9150611c4a82611be5565b604082019050919050565b5f6020820190508181035f830152611c6c81611c33565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f611ccd60268361128d565b9150611cd882611c73565b604082019050919050565b5f6020820190508181035f830152611cfa81611cc1565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f611d35601d8361128d565b9150611d4082611d01565b602082019050919050565b5f6020820190508181035f830152611d6281611d29565b9050919050565b5f81519050919050565b5f81905092915050565b5f611d8782611d69565b611d918185611d73565b9350611da181856020860161129d565b80840191505092915050565b5f611db88284611d7d565b91508190509291505056fea26469706673582212200ba71de70b4e643e865944d7b888cdc9a3e426f843d35ec2ee0d326d7cefc64f64736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000002faf08000000000000000000000000000000000000000000000000000000000000000085969656c6420323400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035932340000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Yield 24
Arg [1] : _symbol (string): Y24
Arg [2] : _initialSupply (uint256): 50000000
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000002faf080
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 5969656c64203234000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 5932340000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
153:503:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2063:98:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4160:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3151:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4793:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3000:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5666:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;432:222:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3315:125:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1598:92:6;;;:::i;:::-;;966:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2274:102:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6365:405;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3643:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3873:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1839:189:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2063:98:3;2117:13;2149:5;2142:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2063:98;:::o;4160:166::-;4243:4;4259:39;4268:12;:10;:12::i;:::-;4282:7;4291:6;4259:8;:39::i;:::-;4315:4;4308:11;;4160:166;;;;:::o;3151:106::-;3212:7;3238:12;;3231:19;;3151:106;:::o;4793:478::-;4929:4;4945:36;4955:6;4963:9;4974:6;4945:9;:36::i;:::-;4992:24;5019:11;:19;5031:6;5019:19;;;;;;;;;;;;;;;:33;5039:12;:10;:12::i;:::-;5019:33;;;;;;;;;;;;;;;;4992:60;;5090:6;5070:16;:26;;5062:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5175:57;5184:6;5192:12;:10;:12::i;:::-;5225:6;5206:16;:25;5175:8;:57::i;:::-;5260:4;5253:11;;;4793:478;;;;;:::o;3000:91::-;3058:5;3082:2;3075:9;;3000:91;:::o;5666:212::-;5754:4;5770:80;5779:12;:10;:12::i;:::-;5793:7;5839:10;5802:11;:25;5814:12;:10;:12::i;:::-;5802:25;;;;;;;;;;;;;;;:34;5828:7;5802:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5770:8;:80::i;:::-;5867:4;5860:11;;5666:212;;;;:::o;432:222:9:-;1189:12:6;:10;:12::i;:::-;1178:23;;:7;:5;:7::i;:::-;:23;;;1170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;548:4:9::1;530:23;;:6;:23;;::::0;522:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;599:48;627:10;639:7;606:6;599:27;;;;:48;;;;;:::i;:::-;432:222:::0;;:::o;3315:125:3:-;3389:7;3415:9;:18;3425:7;3415:18;;;;;;;;;;;;;;;;3408:25;;3315:125;;;:::o;1598:92:6:-;1189:12;:10;:12::i;:::-;1178:23;;:7;:5;:7::i;:::-;:23;;;1170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1662:21:::1;1680:1;1662:9;:21::i;:::-;1598:92::o:0;966:85::-;1012:7;1038:6;;;;;;;;;;;1031:13;;966:85;:::o;2274:102:3:-;2330:13;2362:7;2355:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:102;:::o;6365:405::-;6458:4;6474:24;6501:11;:25;6513:12;:10;:12::i;:::-;6501:25;;;;;;;;;;;;;;;:34;6527:7;6501:34;;;;;;;;;;;;;;;;6474:61;;6573:15;6553:16;:35;;6545:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6664:67;6673:12;:10;:12::i;:::-;6687:7;6715:15;6696:16;:34;6664:8;:67::i;:::-;6759:4;6752:11;;;6365:405;;;;:::o;3643:172::-;3729:4;3745:42;3755:12;:10;:12::i;:::-;3769:9;3780:6;3745:9;:42::i;:::-;3804:4;3797:11;;3643:172;;;;:::o;3873:149::-;3962:7;3988:11;:18;4000:5;3988:18;;;;;;;;;;;;;;;:27;4007:7;3988:27;;;;;;;;;;;;;;;;3981:34;;3873:149;;;;:::o;1839:189:6:-;1189:12;:10;:12::i;:::-;1178:23;;:7;:5;:7::i;:::-;:23;;;1170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1947:1:::1;1927:22;;:8;:22;;::::0;1919:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2002:19;2012:8;2002:9;:19::i;:::-;1839:189:::0;:::o;587:96:2:-;640:7;666:10;659:17;;587:96;:::o;9941:370:3:-;10089:1;10072:19;;:5;:19;;;10064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10169:1;10150:21;;:7;:21;;;10142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:6;10221:11;:18;10233:5;10221:18;;;;;;;;;;;;;;;:27;10240:7;10221:27;;;;;;;;;;;;;;;:36;;;;10288:7;10272:32;;10281:5;10272:32;;;10297:6;10272:32;;;;;;:::i;:::-;;;;;;;;9941:370;;;:::o;7244:713::-;7397:1;7379:20;;:6;:20;;;7371:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:1;7459:23;;:9;:23;;;7451:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7533:47;7554:6;7562:9;7573:6;7533:20;:47::i;:::-;7591:21;7615:9;:17;7625:6;7615:17;;;;;;;;;;;;;;;;7591:41;;7667:6;7650:13;:23;;7642:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7786:6;7770:13;:22;7750:9;:17;7760:6;7750:17;;;;;;;;;;;;;;;:42;;;;7836:6;7812:9;:20;7822:9;7812:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7875:9;7858:35;;7867:6;7858:35;;;7886:6;7858:35;;;;;;:::i;:::-;;;;;;;;7904:46;7924:6;7932:9;7943:6;7904:19;:46::i;:::-;7361:596;7244:713;;;:::o;620:205:7:-;732:86;752:5;782:23;;;807:2;811:5;759:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;732:19;:86::i;:::-;620:205;;;:::o;2034:169:6:-;2089:16;2108:6;;;;;;;;;;;2089:25;;2133:8;2124:6;;:17;;;;;;;;;;;;;;;;;;2187:8;2156:40;;2177:8;2156:40;;;;;;;;;;;;2079:124;2034:169;:::o;10895:121:3:-;;;;:::o;11604:120::-;;;;:::o;3126:706:7:-;3545:23;3571:69;3599:4;3571:69;;;;;;;;;;;;;;;;;3579:5;3571:27;;;;:69;;;;;:::i;:::-;3545:95;;3674:1;3654:10;:17;:21;3650:176;;;3749:10;3738:30;;;;;;;;;;;;:::i;:::-;3730:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3650:176;3196:636;3126:706;;:::o;3461:223:0:-;3594:12;3625:52;3647:6;3655:4;3661:1;3664:12;3625:21;:52::i;:::-;3618:59;;3461:223;;;;;:::o;4548:499::-;4713:12;4770:5;4745:21;:30;;4737:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;4836:18;4847:6;4836:10;:18::i;:::-;4828:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4900:12;4914:23;4941:6;:11;;4960:5;4967:4;4941:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4899:73;;;;4989:51;5006:7;5015:10;5027:12;4989:16;:51::i;:::-;4982:58;;;;4548:499;;;;;;:::o;718:377::-;778:4;981:12;1046:7;1034:20;1026:28;;1087:1;1080:4;:8;1073:15;;;718:377;;;:::o;7161:692::-;7307:12;7335:7;7331:516;;;7365:10;7358:17;;;;7331:516;7496:1;7476:10;:17;:21;7472:365;;;7670:10;7664:17;7730:15;7717:10;7713:2;7709:19;7702:44;7472:365;7809:12;7802:20;;;;;;;;;;;:::i;:::-;;;;;;;;7161:692;;;;;;:::o;7:99:10:-;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:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:227::-;6672:34;6668:1;6660:6;6656:14;6649:58;6741:10;6736:2;6728:6;6724:15;6717:35;6532:227;:::o;6765:366::-;6907:3;6928:67;6992:2;6987:3;6928:67;:::i;:::-;6921:74;;7004:93;7093:3;7004:93;:::i;:::-;7122:2;7117:3;7113:12;7106:19;;6765:366;;;:::o;7137:419::-;7303:4;7341:2;7330:9;7326:18;7318:26;;7390:9;7384:4;7380:20;7376:1;7365:9;7361:17;7354:47;7418:131;7544:4;7418:131;:::i;:::-;7410:139;;7137:419;;;:::o;7562:180::-;7610:77;7607:1;7600:88;7707:4;7704:1;7697:15;7731:4;7728:1;7721:15;7748:191;7788:3;7807:20;7825:1;7807:20;:::i;:::-;7802:25;;7841:20;7859:1;7841:20;:::i;:::-;7836:25;;7884:1;7881;7877:9;7870:16;;7905:3;7902:1;7899:10;7896:36;;;7912:18;;:::i;:::-;7896:36;7748:191;;;;:::o;7945:182::-;8085:34;8081:1;8073:6;8069:14;8062:58;7945:182;:::o;8133:366::-;8275:3;8296:67;8360:2;8355:3;8296:67;:::i;:::-;8289:74;;8372:93;8461:3;8372:93;:::i;:::-;8490:2;8485:3;8481:12;8474:19;;8133:366;;;:::o;8505:419::-;8671:4;8709:2;8698:9;8694:18;8686:26;;8758:9;8752:4;8748:20;8744:1;8733:9;8729:17;8722:47;8786:131;8912:4;8786:131;:::i;:::-;8778:139;;8505:419;;;:::o;8930:181::-;9070:33;9066:1;9058:6;9054:14;9047:57;8930:181;:::o;9117:366::-;9259:3;9280:67;9344:2;9339:3;9280:67;:::i;:::-;9273:74;;9356:93;9445:3;9356:93;:::i;:::-;9474:2;9469:3;9465:12;9458:19;;9117:366;;;:::o;9489:419::-;9655:4;9693:2;9682:9;9678:18;9670:26;;9742:9;9736:4;9732:20;9728:1;9717:9;9713:17;9706:47;9770:131;9896:4;9770:131;:::i;:::-;9762:139;;9489:419;;;:::o;9914:224::-;10054:34;10050:1;10042:6;10038:14;10031:58;10123:7;10118:2;10110:6;10106:15;10099:32;9914:224;:::o;10144:366::-;10286:3;10307:67;10371:2;10366:3;10307:67;:::i;:::-;10300:74;;10383:93;10472:3;10383:93;:::i;:::-;10501:2;10496:3;10492:12;10485:19;;10144:366;;;:::o;10516:419::-;10682:4;10720:2;10709:9;10705:18;10697:26;;10769:9;10763:4;10759:20;10755:1;10744:9;10740:17;10733:47;10797:131;10923:4;10797:131;:::i;:::-;10789:139;;10516:419;;;:::o;10941:225::-;11081:34;11077:1;11069:6;11065:14;11058:58;11150:8;11145:2;11137:6;11133:15;11126:33;10941:225;:::o;11172:366::-;11314:3;11335:67;11399:2;11394:3;11335:67;:::i;:::-;11328:74;;11411:93;11500:3;11411:93;:::i;:::-;11529:2;11524:3;11520:12;11513:19;;11172:366;;;:::o;11544:419::-;11710:4;11748:2;11737:9;11733:18;11725:26;;11797:9;11791:4;11787:20;11783:1;11772:9;11768:17;11761:47;11825:131;11951:4;11825:131;:::i;:::-;11817:139;;11544:419;;;:::o;11969:223::-;12109:34;12105:1;12097:6;12093:14;12086:58;12178:6;12173:2;12165:6;12161:15;12154:31;11969:223;:::o;12198:366::-;12340:3;12361:67;12425:2;12420:3;12361:67;:::i;:::-;12354:74;;12437:93;12526:3;12437:93;:::i;:::-;12555:2;12550:3;12546:12;12539:19;;12198:366;;;:::o;12570:419::-;12736:4;12774:2;12763:9;12759:18;12751:26;;12823:9;12817:4;12813:20;12809:1;12798:9;12794:17;12787:47;12851:131;12977:4;12851:131;:::i;:::-;12843:139;;12570:419;;;:::o;12995:221::-;13135:34;13131:1;13123:6;13119:14;13112:58;13204:4;13199:2;13191:6;13187:15;13180:29;12995:221;:::o;13222:366::-;13364:3;13385:67;13449:2;13444:3;13385:67;:::i;:::-;13378:74;;13461:93;13550:3;13461:93;:::i;:::-;13579:2;13574:3;13570:12;13563:19;;13222:366;;;:::o;13594:419::-;13760:4;13798:2;13787:9;13783:18;13775:26;;13847:9;13841:4;13837:20;13833:1;13822:9;13818:17;13811:47;13875:131;14001:4;13875:131;:::i;:::-;13867:139;;13594:419;;;:::o;14019:224::-;14159:34;14155:1;14147:6;14143:14;14136:58;14228:7;14223:2;14215:6;14211:15;14204:32;14019:224;:::o;14249:366::-;14391:3;14412:67;14476:2;14471:3;14412:67;:::i;:::-;14405:74;;14488:93;14577:3;14488:93;:::i;:::-;14606:2;14601:3;14597:12;14590:19;;14249:366;;;:::o;14621:419::-;14787:4;14825:2;14814:9;14810:18;14802:26;;14874:9;14868:4;14864:20;14860:1;14849:9;14845:17;14838:47;14902:131;15028:4;14902:131;:::i;:::-;14894:139;;14621:419;;;:::o;15046:222::-;15186:34;15182:1;15174:6;15170:14;15163:58;15255:5;15250:2;15242:6;15238:15;15231:30;15046:222;:::o;15274:366::-;15416:3;15437:67;15501:2;15496:3;15437:67;:::i;:::-;15430:74;;15513:93;15602:3;15513:93;:::i;:::-;15631:2;15626:3;15622:12;15615:19;;15274:366;;;:::o;15646:419::-;15812:4;15850:2;15839:9;15835:18;15827:26;;15899:9;15893:4;15889:20;15885:1;15874:9;15870:17;15863:47;15927:131;16053:4;15927:131;:::i;:::-;15919:139;;15646:419;;;:::o;16071:225::-;16211:34;16207:1;16199:6;16195:14;16188:58;16280:8;16275:2;16267:6;16263:15;16256:33;16071:225;:::o;16302:366::-;16444:3;16465:67;16529:2;16524:3;16465:67;:::i;:::-;16458:74;;16541:93;16630:3;16541:93;:::i;:::-;16659:2;16654:3;16650:12;16643:19;;16302:366;;;:::o;16674:419::-;16840:4;16878:2;16867:9;16863:18;16855:26;;16927:9;16921:4;16917:20;16913:1;16902:9;16898:17;16891:47;16955:131;17081:4;16955:131;:::i;:::-;16947:139;;16674:419;;;:::o;17099:332::-;17220:4;17258:2;17247:9;17243:18;17235:26;;17271:71;17339:1;17328:9;17324:17;17315:6;17271:71;:::i;:::-;17352:72;17420:2;17409:9;17405:18;17396:6;17352:72;:::i;:::-;17099:332;;;;;:::o;17437:116::-;17507:21;17522:5;17507:21;:::i;:::-;17500:5;17497:32;17487:60;;17543:1;17540;17533:12;17487:60;17437:116;:::o;17559:137::-;17613:5;17644:6;17638:13;17629:22;;17660:30;17684:5;17660:30;:::i;:::-;17559:137;;;;:::o;17702:345::-;17769:6;17818:2;17806:9;17797:7;17793:23;17789:32;17786:119;;;17824:79;;:::i;:::-;17786:119;17944:1;17969:61;18022:7;18013:6;18002:9;17998:22;17969:61;:::i;:::-;17959:71;;17915:125;17702:345;;;;:::o;18053:229::-;18193:34;18189:1;18181:6;18177:14;18170:58;18262:12;18257:2;18249:6;18245:15;18238:37;18053:229;:::o;18288:366::-;18430:3;18451:67;18515:2;18510:3;18451:67;:::i;:::-;18444:74;;18527:93;18616:3;18527:93;:::i;:::-;18645:2;18640:3;18636:12;18629:19;;18288:366;;;:::o;18660:419::-;18826:4;18864:2;18853:9;18849:18;18841:26;;18913:9;18907:4;18903:20;18899:1;18888:9;18884:17;18877:47;18941:131;19067:4;18941:131;:::i;:::-;18933:139;;18660:419;;;:::o;19085:225::-;19225:34;19221:1;19213:6;19209:14;19202:58;19294:8;19289:2;19281:6;19277:15;19270:33;19085:225;:::o;19316:366::-;19458:3;19479:67;19543:2;19538:3;19479:67;:::i;:::-;19472:74;;19555:93;19644:3;19555:93;:::i;:::-;19673:2;19668:3;19664:12;19657:19;;19316:366;;;:::o;19688:419::-;19854:4;19892:2;19881:9;19877:18;19869:26;;19941:9;19935:4;19931:20;19927:1;19916:9;19912:17;19905:47;19969:131;20095:4;19969:131;:::i;:::-;19961:139;;19688:419;;;:::o;20113:179::-;20253:31;20249:1;20241:6;20237:14;20230:55;20113:179;:::o;20298:366::-;20440:3;20461:67;20525:2;20520:3;20461:67;:::i;:::-;20454:74;;20537:93;20626:3;20537:93;:::i;:::-;20655:2;20650:3;20646:12;20639:19;;20298:366;;;:::o;20670:419::-;20836:4;20874:2;20863:9;20859:18;20851:26;;20923:9;20917:4;20913:20;20909:1;20898:9;20894:17;20887:47;20951:131;21077:4;20951:131;:::i;:::-;20943:139;;20670:419;;;:::o;21095:98::-;21146:6;21180:5;21174:12;21164:22;;21095:98;;;:::o;21199:147::-;21300:11;21337:3;21322:18;;21199:147;;;;:::o;21352:386::-;21456:3;21484:38;21516:5;21484:38;:::i;:::-;21538:88;21619:6;21614:3;21538:88;:::i;:::-;21531:95;;21635:65;21693:6;21688:3;21681:4;21674:5;21670:16;21635:65;:::i;:::-;21725:6;21720:3;21716:16;21709:23;;21460:278;21352:386;;;;:::o;21744:271::-;21874:3;21896:93;21985:3;21976:6;21896:93;:::i;:::-;21889:100;;22006:3;21999:10;;21744:271;;;;:::o
Swarm Source
ipfs://0ba71de70b4e643e865944d7b888cdc9a3e426f843d35ec2ee0d326d7cefc64f
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
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.