Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Swap Address | 16681417 | 684 days ago | IN | 0 ETH | 0.00074419 |
Loading...
Loading
Contract Name:
FVSTAKE
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-22 */ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) 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; } } /** * @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; address private _nextOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _owner = address(0); emit OwnershipTransferred(_owner, 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" ); _nextOwner = newOwner; } //Called at constructor function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } /** * @dev Transfers ownership of the contract to a new account (`_nextOwner`). */ function acceptOwnership() external { require(msg.sender == _nextOwner, "only the new owner can accept"); address oldOwner = _owner; _owner = _nextOwner; emit OwnershipTransferred(oldOwner, _nextOwner); } } 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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } /** * @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); } /** * @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.openzeppelin.com/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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * 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 `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, 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) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, 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) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `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. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _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; // Overflow not possible: amount <= accountBalance <= totalSupply. _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 Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - 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 {} } interface ISwap { function getReferralPercent() external view returns (uint8); } contract FVSTAKE is Ownable { address public FINEVIPAddress; address public SWAPAddress; address public immutable USDC; uint96 public lockUpPeriod = 7 days; uint96 public claimPeriod = 1 days; uint8 public percent; uint256 difDecimal = 10**12; mapping(address => uint256) public stakingTAmount; mapping(address => uint256) public referralAmount; mapping(address => uint256) public claimDate; struct StakingInfo { uint256 stakingAmount; uint96 stakingDate; uint96 claimDate; uint8 percent; bool unstaked; } struct ClaimInfo { uint256 rewardAmount; uint96 claimDate; uint8 percent; } struct ReferralInfo { uint256 referralAmount; uint96 claimDate; uint8 percent; } mapping(address => StakingInfo[]) _stakingInfo; mapping(address => ClaimInfo[]) _claimInfo; mapping(address => ReferralInfo[]) _referralInfo; event Staking(address indexed staker, uint256 amount, uint256 timestamp); event UnStaking(address indexed staker, uint256 amount, uint256 timestamp); event ClaimReward( address indexed staker, uint256 amount, uint256 timestamp ); event IncreaseReferAmount( address indexed refer, uint256 amount, uint256 timestamp ); constructor( address finevip, address usdc, uint8 _percent ) { FINEVIPAddress = finevip; USDC = usdc; percent = _percent; } function setSwapAddress(address _swap) external onlyOwner { require(_swap != address(0), "Swap Address cannot be the zero address"); SWAPAddress = _swap; } function changePercent(uint8 _percent) external onlyOwner { require( _percent > 0 && _percent <= 5, "percent should be between 0 and 5" ); percent = _percent; } function changeFineVipContract(address newAddy) external onlyOwner { require( newAddy != address(0), "New Address cannot be the zero address" ); FINEVIPAddress = newAddy; } function Stake(uint256 amount) external { require(amount > 0, "amount should not be zero"); stakingTAmount[msg.sender] += amount; claimDate[msg.sender] = block.timestamp; ERC20(FINEVIPAddress).transferFrom(msg.sender, address(this), amount); _stakingInfo[msg.sender].push( StakingInfo( amount, uint96(block.timestamp), uint96(block.timestamp), percent, false ) ); emit Staking(msg.sender, amount, block.timestamp); } function Unstake(uint256 idx) external { require(stakingTAmount[msg.sender] > 0, "You are not staker"); require( _stakingInfo[msg.sender][idx].stakingAmount > 0, "You are not staker" ); require( !_stakingInfo[msg.sender][idx].unstaked, "You already unstaked" ); require( block.timestamp - _stakingInfo[msg.sender][idx].stakingDate > lockUpPeriod, "You can unstaked after 7 days from staking" ); ERC20(FINEVIPAddress).transfer( msg.sender, _stakingInfo[msg.sender][idx].stakingAmount ); stakingTAmount[msg.sender] -= _stakingInfo[msg.sender][idx] .stakingAmount; claimReward(); _stakingInfo[msg.sender][idx].unstaked = true; emit UnStaking( msg.sender, stakingTAmount[msg.sender], uint96(block.timestamp) ); } function claimReward() public { (uint256 rewardAmount0, uint256 rewardAmount1) = availableRewards( msg.sender ); uint256 rewardAmount = rewardAmount0 + rewardAmount1; if(rewardAmount > 0) { require( rewardAmount <= ERC20(USDC).balanceOf(address(this)), "Not enough USDC" ); ERC20(USDC).transfer(msg.sender, rewardAmount); referralAmount[msg.sender] = 0; claimDate[msg.sender] = block.timestamp; uint8 referralPercent = ISwap(SWAPAddress).getReferralPercent(); if (rewardAmount0 > 0) { _referralInfo[msg.sender].push( ReferralInfo( rewardAmount0, uint96(block.timestamp), referralPercent ) ); } if (rewardAmount1 > 0) { _claimInfo[msg.sender].push( ClaimInfo(rewardAmount1, uint96(block.timestamp), percent) ); } emit ClaimReward(msg.sender, rewardAmount, block.timestamp); } } function increaseReferralAmount(address ref, uint256 amount) external { require( msg.sender == SWAPAddress, "only Swap contract can call this function" ); require( ref != address(0), "Referral Address cannot be the zero address" ); require(amount > 0, "amount shoule be greater than zero"); referralAmount[ref] += amount; emit IncreaseReferAmount(ref, amount, block.timestamp); } function withdrawUSDC(address receiver) external onlyOwner { require( receiver != address(0), "Receiver Address cannot be the zero address" ); uint256 amount = ERC20(USDC).balanceOf(address(this)); require(amount > 0, "No USDC amount"); ERC20(USDC).transfer(receiver, amount); } function getStakingHistory(address staker) external view returns (StakingInfo[] memory) { return _stakingInfo[staker]; } function getClaimRewardHistory(address staker) external view returns (ClaimInfo[] memory) { return _claimInfo[staker]; } function getClaimCommissionHistory(address _user) external view returns (ReferralInfo[] memory) { return _referralInfo[_user]; } function getUSDCBalance() public view returns (uint256) { return ERC20(USDC).balanceOf(address(this)); } function availableRewards(address _user) public view returns (uint256, uint256) { uint256 rewardAmount0 = referralAmount[_user]; uint256 rewardAmount1 = 0; for (uint8 i = 0; i < _stakingInfo[_user].length; i++) { if (!_stakingInfo[_user][i].unstaked) { if (block.timestamp - claimDate[_user] > claimPeriod) { uint256 passTime = block.timestamp - claimDate[_user]; rewardAmount1 += (_stakingInfo[_user][i].stakingAmount * ((passTime / claimPeriod) * _stakingInfo[_user][i].percent)) / (100 * difDecimal); } } } return (rewardAmount0, rewardAmount1); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"finevip","type":"address"},{"internalType":"address","name":"usdc","type":"address"},{"internalType":"uint8","name":"_percent","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ClaimReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"refer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"IncreaseReferAmount","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":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Staking","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":"timestamp","type":"uint256"}],"name":"UnStaking","type":"event"},{"inputs":[],"name":"FINEVIPAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SWAPAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"Unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"availableRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddy","type":"address"}],"name":"changeFineVipContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_percent","type":"uint8"}],"name":"changePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimPeriod","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getClaimCommissionHistory","outputs":[{"components":[{"internalType":"uint256","name":"referralAmount","type":"uint256"},{"internalType":"uint96","name":"claimDate","type":"uint96"},{"internalType":"uint8","name":"percent","type":"uint8"}],"internalType":"struct FVSTAKE.ReferralInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getClaimRewardHistory","outputs":[{"components":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"uint96","name":"claimDate","type":"uint96"},{"internalType":"uint8","name":"percent","type":"uint8"}],"internalType":"struct FVSTAKE.ClaimInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getStakingHistory","outputs":[{"components":[{"internalType":"uint256","name":"stakingAmount","type":"uint256"},{"internalType":"uint96","name":"stakingDate","type":"uint96"},{"internalType":"uint96","name":"claimDate","type":"uint96"},{"internalType":"uint8","name":"percent","type":"uint8"},{"internalType":"bool","name":"unstaked","type":"bool"}],"internalType":"struct FVSTAKE.StakingInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUSDCBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseReferralAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockUpPeriod","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percent","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referralAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_swap","type":"address"}],"name":"setSwapAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakingTAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"withdrawUSDC","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040526003805461127560a71b6001600160a01b03909116179055600480546001600160601b0319166201518017905564e8d4a510006005553480156200004757600080fd5b5060405162001fc838038062001fc88339810160408190526200006a916200014e565b6200007e62000078620000dd565b620000e1565b600280546001600160a01b0319166001600160a01b03949094169390931790925560601b6001600160601b0319166080526004805460ff60601b19166c0100000000000000000000000060ff909316929092029190911790556200019f565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014957600080fd5b919050565b60008060006060848603121562000163578283fd5b6200016e8462000131565b92506200017e6020850162000131565b9150604084015160ff8116811462000194578182fd5b809150509250925092565b60805160601c611de7620001e1600039600081816106bf0152818161077d0152818161082501528181610b3801528181610bc90152610c840152611de76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806383d728fa116100de578063bfca10a511610097578063da34188b11610071578063da34188b1461032d578063f1f1db1e14610335578063f2fde38b14610348578063f854a27f1461035b5761018e565b8063bfca10a5146102ff578063c4ce335314610307578063c97a72411461031a5761018e565b806383d728fa1461029457806389a30271146102b45780638ac4915b146102c95780638da5cb5b146102dc57806395d4c7bb146102e4578063b88a802f146102f75761018e565b80636c6925f91161014b57806379ba50971161012557806379ba5097146102515780637d9ef0bf146102595780637dc2cd98146102795780637dc4b9cc146102815761018e565b80636c6925f91461021f57806370ba111314610234578063715018a6146102495761018e565b806304c8de33146101935780630a3e86b1146101a8578063227a473b146101d15780632fdd7ad5146101e457806331cc5f6c146102045780633cfd1ccc14610217575b600080fd5b6101a66101a1366004611687565b61037c565b005b6101bb6101b6366004611687565b6103d5565b6040516101c89190611cab565b60405180910390f35b6101a66101df3660046116f1565b6103e7565b6101f76101f2366004611687565b6105d9565b6040516101c8919061181d565b6101a6610212366004611687565b610677565b6101bb61080b565b6102276108af565b6040516101c89190611ce7565b61023c6108c5565b6040516101c89190611cd9565b6101a66108d5565b6101a6610919565b61026c610267366004611687565b610995565b6040516101c8919061185f565b610227610a48565b6101a661028f366004611687565b610a57565b6102a76102a2366004611687565b610aa7565b6040516101c891906117cf565b6102bc610b36565b6040516101c8919061177e565b6101bb6102d7366004611687565b610b5a565b6102bc610b6c565b6101bb6102f2366004611687565b610b7b565b6101a6610b8d565b6102bc610f15565b6101a66103153660046116a8565b610f24565b6101a6610328366004611721565b61100a565b6102bc611065565b6101a66103433660046116f1565b611074565b6101a6610356366004611687565b6113c9565b61036e610369366004611687565b611419565b6040516101c8929190611cb4565b61038461162b565b6001600160a01b0381166103b35760405162461bcd60e51b81526004016103aa90611c65565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60086020526000908152604090205481565b600081116104075760405162461bcd60e51b81526004016103aa90611a67565b3360009081526006602052604081208054839290610426908490611cfb565b9091555050336000818152600860205260409081902042905560025490516323b872dd60e01b81526001600160a01b03909116916323b872dd91610471919030908690600401611792565b602060405180830381600087803b15801561048b57600080fd5b505af115801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c391906116d1565b50336000818152600960209081526040808320815160a081018352868152426001600160601b03818116838701818152848701918252600454600160601b9081900460ff90811660608801908152608088018c8152895460018082018c559a8e529b909c2097516002909b02909701998a5591519890960180549251955199516001600160601b0319909316988416989098176bffffffffffffffffffffffff60601b1916949092169094029290921760ff60c01b1916600160c01b96909216959095021760ff60c81b1916600160c81b9115159190910217909155517fa7cce4e8ff59a515dccbee3a6382e94deb1db79bdb43cf35a51251d41ea395f0916105ce91859190611cb4565b60405180910390a250565b6001600160a01b0381166000908152600b60209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561066b5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160601b03811684860152600160601b900460ff16918301919091529083529092019101610611565b5050505090505b919050565b61067f61162b565b6001600160a01b0381166106a55760405162461bcd60e51b81526004016103aa90611bf2565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906106f490309060040161177e565b60206040518083038186803b15801561070c57600080fd5b505afa158015610720573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107449190611709565b9050600081116107665760405162461bcd60e51b81526004016103aa90611c3d565b60405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906107b490859085906004016117b6565b602060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080691906116d1565b505050565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061085a90309060040161177e565b60206040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190611709565b905090565b600354600160a01b90046001600160601b031681565b600454600160601b900460ff1681565b6108dd61162b565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6001546001600160a01b031633146109435760405162461bcd60e51b81526004016103aa906118de565b600080546001546001600160a01b039081166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0381166000908152600960209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561066b5760008481526020908190206040805160a08101825260028602909201805483526001908101546001600160601b0380821685870152600160601b8204169284019290925260ff600160c01b830481166060850152600160c81b9092049091161515608083015290835290920191016109cd565b6004546001600160601b031681565b610a5f61162b565b6001600160a01b038116610a855760405162461bcd60e51b81526004016103aa90611b09565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600a6020908152604080832080548251818502810185019093528083526060949293919290918401821561066b5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160601b03811684860152600160601b900460ff16918301919091529083529092019101610611565b7f000000000000000000000000000000000000000000000000000000000000000081565b60066020526000908152604090205481565b6000546001600160a01b031690565b60076020526000908152604090205481565b600080610b9933611419565b90925090506000610baa8284611cfb565b90508015610806576040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610bfe90309060040161177e565b60206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e9190611709565b811115610c6d5760405162461bcd60e51b81526004016103aa90611a9e565b60405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90610cbb90339085906004016117b6565b602060405180830381600087803b158015610cd557600080fd5b505af1158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d91906116d1565b50336000908152600760209081526040808320839055600882528083204290556003548151633fc9fc9960e11b815291516001600160a01b0390911692637f93f9329260048082019391829003018186803b158015610d6b57600080fd5b505afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da3919061173d565b90508315610e3657336000908152600b6020908152604080832081516060810183528881526001600160601b0342811682860190815260ff808916958401958652845460018181018755958952969097209251600290960290920194855590519390910180549251909416600160601b0260ff60601b19939091166001600160601b031990921691909117919091161790555b8215610ecc57336000908152600a6020908152604080832081516060810183528781526001600160601b0342811682860190815260045460ff600160601b918290048116968501968752855460018181018855968a5297909820935160029097029093019586555194909201805493519095160260ff60601b19939091166001600160601b031990921691909117919091161790555b336001600160a01b03167fe74e5c9d4ac1fc33412485f18c159a0a391efe287ab3fd271123f30e6bacf4e38342604051610f07929190611cb4565b60405180910390a250505050565b6002546001600160a01b031681565b6003546001600160a01b03163314610f4e5760405162461bcd60e51b81526004016103aa90611a1e565b6001600160a01b038216610f745760405162461bcd60e51b81526004016103aa9061195f565b60008111610f945760405162461bcd60e51b81526004016103aa90611ac7565b6001600160a01b03821660009081526007602052604081208054839290610fbc908490611cfb565b92505081905550816001600160a01b03167f0d2e3b9847b0d39ecbba2d7277b3c377b57a1489e2d565021d3925434d2c8a658242604051610ffe929190611cb4565b60405180910390a25050565b61101261162b565b60008160ff16118015611029575060058160ff1611155b6110455760405162461bcd60e51b81526004016103aa90611b50565b6004805460ff909216600160601b0260ff60601b19909216919091179055565b6003546001600160a01b031681565b336000908152600660205260409020546110a05760405162461bcd60e51b81526004016103aa90611bc6565b3360009081526009602052604081208054839081106110cf57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000154116110fe5760405162461bcd60e51b81526004016103aa90611bc6565b33600090815260096020526040902080548290811061112d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160199054906101000a900460ff16156111695760405162461bcd60e51b81526004016103aa906119f0565b6003543360009081526009602052604090208054600160a01b9092046001600160601b031691839081106111ad57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546111d4906001600160601b031642611d52565b116111f15760405162461bcd60e51b81526004016103aa90611915565b60025433600081815260096020526040902080546001600160a01b039093169263a9059cbb9291908590811061123757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001546040518363ffffffff1660e01b81526004016112669291906117b6565b602060405180830381600087803b15801561128057600080fd5b505af1158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b891906116d1565b503360009081526009602052604090208054829081106112e857634e487b7160e01b600052603260045260246000fd5b60009182526020808320600290920290910154338352600690915260408220805491929091611318908490611d52565b909155506113269050610b8d565b3360009081526009602052604090208054600191908390811061135957634e487b7160e01b600052603260045260246000fd5b600091825260208083206001600290930201919091018054931515600160c81b0260ff60c81b19909416939093179092553380825260069092526040908190205490517fc7c828c532c03d3105bb4d86d724a0b9aae548a0fb733a5eaee9fea00959c5e5916105ce914290611cc2565b6113d161162b565b6001600160a01b0381166113f75760405162461bcd60e51b81526004016103aa906119aa565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260076020526040812054819081805b6001600160a01b03861660009081526009602052604090205460ff82161015611620576001600160a01b0386166000908152600960205260409020805460ff831690811061149557634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160199054906101000a900460ff1661160e576004546001600160a01b0387166000908152600860205260409020546001600160601b03909116906114ea9042611d52565b111561160e576001600160a01b0386166000908152600860205260408120546115139042611d52565b905060055460646115249190611d33565b6001600160a01b0388166000908152600960205260409020805460ff851690811061155f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020160010154600454600160c01b90910460ff1690611595906001600160601b031684611d13565b61159f9190611d33565b6001600160a01b0389166000908152600960205260409020805460ff86169081106115da57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001546115f69190611d33565b6116009190611d13565b61160a9084611cfb565b9250505b8061161881611d69565b915050611437565b509092509050915091565b61163361166c565b6001600160a01b0316611644610b6c565b6001600160a01b03161461166a5760405162461bcd60e51b81526004016103aa90611b91565b565b3390565b80356001600160a01b038116811461067257600080fd5b600060208284031215611698578081fd5b6116a182611670565b9392505050565b600080604083850312156116ba578081fd5b6116c383611670565b946020939093013593505050565b6000602082840312156116e2578081fd5b815180151581146116a1578182fd5b600060208284031215611702578081fd5b5035919050565b60006020828403121561171a578081fd5b5051919050565b600060208284031215611732578081fd5b81356116a181611d9f565b60006020828403121561174e578081fd5b81516116a181611d9f565b805182526020808201516001600160601b03169083015260409081015160ff16910152565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611811576117fe838551611759565b92840192606092909201916001016117eb565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156118115761184c838551611759565b9284019260609290920191600101611839565b602080825282518282018190526000919060409081850190868401855b828110156118d157815180518552868101516001600160601b039081168887015286820151168686015260608082015160ff169086015260809081015115159085015260a0909301929085019060010161187c565b5091979650505050505050565b6020808252601d908201527f6f6e6c7920746865206e6577206f776e65722063616e20616363657074000000604082015260600190565b6020808252602a908201527f596f752063616e20756e7374616b6564206166746572203720646179732066726040820152696f6d207374616b696e6760b01b606082015260800190565b6020808252602b908201527f526566657272616c20416464726573732063616e6e6f7420626520746865207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b602080825260149082015273165bdd48185b1c9958591e481d5b9cdd185ad95960621b604082015260600190565b60208082526029908201527f6f6e6c79205377617020636f6e74726163742063616e2063616c6c207468697360408201526810333ab731ba34b7b760b91b606082015260800190565b60208082526019908201527f616d6f756e742073686f756c64206e6f74206265207a65726f00000000000000604082015260600190565b6020808252600f908201526e4e6f7420656e6f756768205553444360881b604082015260600190565b60208082526022908201527f616d6f756e742073686f756c652062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b60208082526027908201527f5377617020416464726573732063616e6e6f7420626520746865207a65726f206040820152666164647265737360c81b606082015260800190565b60208082526021908201527f70657263656e742073686f756c64206265206265747765656e203020616e64206040820152603560f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601290820152712cb7ba9030b932903737ba1039ba30b5b2b960711b604082015260600190565b6020808252602b908201527f526563656976657220416464726573732063616e6e6f7420626520746865207a60408201526a65726f206164647265737360a81b606082015260800190565b6020808252600e908201526d139bc81554d110c8185b5bdd5b9d60921b604082015260600190565b60208082526026908201527f4e657720416464726573732063616e6e6f7420626520746865207a65726f206160408201526564647265737360d01b606082015260800190565b90815260200190565b918252602082015260400190565b9182526001600160601b0316602082015260400190565b60ff91909116815260200190565b6001600160601b0391909116815260200190565b60008219821115611d0e57611d0e611d89565b500190565b600082611d2e57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d4d57611d4d611d89565b500290565b600082821015611d6457611d64611d89565b500390565b600060ff821660ff811415611d8057611d80611d89565b60010192915050565b634e487b7160e01b600052601160045260246000fd5b60ff81168114611dae57600080fd5b5056fea2646970667358221220446ab987bebfb507437ed745a031e8136bf6ef0cfcb0bc9a44aaebd8ca0e338364736f6c6343000800003300000000000000000000000030d8242184ad37c95d04a39710941786650aa7ca000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000002
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806383d728fa116100de578063bfca10a511610097578063da34188b11610071578063da34188b1461032d578063f1f1db1e14610335578063f2fde38b14610348578063f854a27f1461035b5761018e565b8063bfca10a5146102ff578063c4ce335314610307578063c97a72411461031a5761018e565b806383d728fa1461029457806389a30271146102b45780638ac4915b146102c95780638da5cb5b146102dc57806395d4c7bb146102e4578063b88a802f146102f75761018e565b80636c6925f91161014b57806379ba50971161012557806379ba5097146102515780637d9ef0bf146102595780637dc2cd98146102795780637dc4b9cc146102815761018e565b80636c6925f91461021f57806370ba111314610234578063715018a6146102495761018e565b806304c8de33146101935780630a3e86b1146101a8578063227a473b146101d15780632fdd7ad5146101e457806331cc5f6c146102045780633cfd1ccc14610217575b600080fd5b6101a66101a1366004611687565b61037c565b005b6101bb6101b6366004611687565b6103d5565b6040516101c89190611cab565b60405180910390f35b6101a66101df3660046116f1565b6103e7565b6101f76101f2366004611687565b6105d9565b6040516101c8919061181d565b6101a6610212366004611687565b610677565b6101bb61080b565b6102276108af565b6040516101c89190611ce7565b61023c6108c5565b6040516101c89190611cd9565b6101a66108d5565b6101a6610919565b61026c610267366004611687565b610995565b6040516101c8919061185f565b610227610a48565b6101a661028f366004611687565b610a57565b6102a76102a2366004611687565b610aa7565b6040516101c891906117cf565b6102bc610b36565b6040516101c8919061177e565b6101bb6102d7366004611687565b610b5a565b6102bc610b6c565b6101bb6102f2366004611687565b610b7b565b6101a6610b8d565b6102bc610f15565b6101a66103153660046116a8565b610f24565b6101a6610328366004611721565b61100a565b6102bc611065565b6101a66103433660046116f1565b611074565b6101a6610356366004611687565b6113c9565b61036e610369366004611687565b611419565b6040516101c8929190611cb4565b61038461162b565b6001600160a01b0381166103b35760405162461bcd60e51b81526004016103aa90611c65565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60086020526000908152604090205481565b600081116104075760405162461bcd60e51b81526004016103aa90611a67565b3360009081526006602052604081208054839290610426908490611cfb565b9091555050336000818152600860205260409081902042905560025490516323b872dd60e01b81526001600160a01b03909116916323b872dd91610471919030908690600401611792565b602060405180830381600087803b15801561048b57600080fd5b505af115801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c391906116d1565b50336000818152600960209081526040808320815160a081018352868152426001600160601b03818116838701818152848701918252600454600160601b9081900460ff90811660608801908152608088018c8152895460018082018c559a8e529b909c2097516002909b02909701998a5591519890960180549251955199516001600160601b0319909316988416989098176bffffffffffffffffffffffff60601b1916949092169094029290921760ff60c01b1916600160c01b96909216959095021760ff60c81b1916600160c81b9115159190910217909155517fa7cce4e8ff59a515dccbee3a6382e94deb1db79bdb43cf35a51251d41ea395f0916105ce91859190611cb4565b60405180910390a250565b6001600160a01b0381166000908152600b60209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561066b5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160601b03811684860152600160601b900460ff16918301919091529083529092019101610611565b5050505090505b919050565b61067f61162b565b6001600160a01b0381166106a55760405162461bcd60e51b81526004016103aa90611bf2565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a08231906106f490309060040161177e565b60206040518083038186803b15801561070c57600080fd5b505afa158015610720573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107449190611709565b9050600081116107665760405162461bcd60e51b81526004016103aa90611c3d565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48169063a9059cbb906107b490859085906004016117b6565b602060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080691906116d1565b505050565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a082319061085a90309060040161177e565b60206040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190611709565b905090565b600354600160a01b90046001600160601b031681565b600454600160601b900460ff1681565b6108dd61162b565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6001546001600160a01b031633146109435760405162461bcd60e51b81526004016103aa906118de565b600080546001546001600160a01b039081166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0381166000908152600960209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561066b5760008481526020908190206040805160a08101825260028602909201805483526001908101546001600160601b0380821685870152600160601b8204169284019290925260ff600160c01b830481166060850152600160c81b9092049091161515608083015290835290920191016109cd565b6004546001600160601b031681565b610a5f61162b565b6001600160a01b038116610a855760405162461bcd60e51b81526004016103aa90611b09565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600a6020908152604080832080548251818502810185019093528083526060949293919290918401821561066b5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160601b03811684860152600160601b900460ff16918301919091529083529092019101610611565b7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b60066020526000908152604090205481565b6000546001600160a01b031690565b60076020526000908152604090205481565b600080610b9933611419565b90925090506000610baa8284611cfb565b90508015610806576040516370a0823160e01b81526001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a0823190610bfe90309060040161177e565b60206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e9190611709565b811115610c6d5760405162461bcd60e51b81526004016103aa90611a9e565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48169063a9059cbb90610cbb90339085906004016117b6565b602060405180830381600087803b158015610cd557600080fd5b505af1158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d91906116d1565b50336000908152600760209081526040808320839055600882528083204290556003548151633fc9fc9960e11b815291516001600160a01b0390911692637f93f9329260048082019391829003018186803b158015610d6b57600080fd5b505afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da3919061173d565b90508315610e3657336000908152600b6020908152604080832081516060810183528881526001600160601b0342811682860190815260ff808916958401958652845460018181018755958952969097209251600290960290920194855590519390910180549251909416600160601b0260ff60601b19939091166001600160601b031990921691909117919091161790555b8215610ecc57336000908152600a6020908152604080832081516060810183528781526001600160601b0342811682860190815260045460ff600160601b918290048116968501968752855460018181018855968a5297909820935160029097029093019586555194909201805493519095160260ff60601b19939091166001600160601b031990921691909117919091161790555b336001600160a01b03167fe74e5c9d4ac1fc33412485f18c159a0a391efe287ab3fd271123f30e6bacf4e38342604051610f07929190611cb4565b60405180910390a250505050565b6002546001600160a01b031681565b6003546001600160a01b03163314610f4e5760405162461bcd60e51b81526004016103aa90611a1e565b6001600160a01b038216610f745760405162461bcd60e51b81526004016103aa9061195f565b60008111610f945760405162461bcd60e51b81526004016103aa90611ac7565b6001600160a01b03821660009081526007602052604081208054839290610fbc908490611cfb565b92505081905550816001600160a01b03167f0d2e3b9847b0d39ecbba2d7277b3c377b57a1489e2d565021d3925434d2c8a658242604051610ffe929190611cb4565b60405180910390a25050565b61101261162b565b60008160ff16118015611029575060058160ff1611155b6110455760405162461bcd60e51b81526004016103aa90611b50565b6004805460ff909216600160601b0260ff60601b19909216919091179055565b6003546001600160a01b031681565b336000908152600660205260409020546110a05760405162461bcd60e51b81526004016103aa90611bc6565b3360009081526009602052604081208054839081106110cf57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000154116110fe5760405162461bcd60e51b81526004016103aa90611bc6565b33600090815260096020526040902080548290811061112d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160199054906101000a900460ff16156111695760405162461bcd60e51b81526004016103aa906119f0565b6003543360009081526009602052604090208054600160a01b9092046001600160601b031691839081106111ad57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546111d4906001600160601b031642611d52565b116111f15760405162461bcd60e51b81526004016103aa90611915565b60025433600081815260096020526040902080546001600160a01b039093169263a9059cbb9291908590811061123757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001546040518363ffffffff1660e01b81526004016112669291906117b6565b602060405180830381600087803b15801561128057600080fd5b505af1158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b891906116d1565b503360009081526009602052604090208054829081106112e857634e487b7160e01b600052603260045260246000fd5b60009182526020808320600290920290910154338352600690915260408220805491929091611318908490611d52565b909155506113269050610b8d565b3360009081526009602052604090208054600191908390811061135957634e487b7160e01b600052603260045260246000fd5b600091825260208083206001600290930201919091018054931515600160c81b0260ff60c81b19909416939093179092553380825260069092526040908190205490517fc7c828c532c03d3105bb4d86d724a0b9aae548a0fb733a5eaee9fea00959c5e5916105ce914290611cc2565b6113d161162b565b6001600160a01b0381166113f75760405162461bcd60e51b81526004016103aa906119aa565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260076020526040812054819081805b6001600160a01b03861660009081526009602052604090205460ff82161015611620576001600160a01b0386166000908152600960205260409020805460ff831690811061149557634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160199054906101000a900460ff1661160e576004546001600160a01b0387166000908152600860205260409020546001600160601b03909116906114ea9042611d52565b111561160e576001600160a01b0386166000908152600860205260408120546115139042611d52565b905060055460646115249190611d33565b6001600160a01b0388166000908152600960205260409020805460ff851690811061155f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020160010154600454600160c01b90910460ff1690611595906001600160601b031684611d13565b61159f9190611d33565b6001600160a01b0389166000908152600960205260409020805460ff86169081106115da57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001546115f69190611d33565b6116009190611d13565b61160a9084611cfb565b9250505b8061161881611d69565b915050611437565b509092509050915091565b61163361166c565b6001600160a01b0316611644610b6c565b6001600160a01b03161461166a5760405162461bcd60e51b81526004016103aa90611b91565b565b3390565b80356001600160a01b038116811461067257600080fd5b600060208284031215611698578081fd5b6116a182611670565b9392505050565b600080604083850312156116ba578081fd5b6116c383611670565b946020939093013593505050565b6000602082840312156116e2578081fd5b815180151581146116a1578182fd5b600060208284031215611702578081fd5b5035919050565b60006020828403121561171a578081fd5b5051919050565b600060208284031215611732578081fd5b81356116a181611d9f565b60006020828403121561174e578081fd5b81516116a181611d9f565b805182526020808201516001600160601b03169083015260409081015160ff16910152565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611811576117fe838551611759565b92840192606092909201916001016117eb565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156118115761184c838551611759565b9284019260609290920191600101611839565b602080825282518282018190526000919060409081850190868401855b828110156118d157815180518552868101516001600160601b039081168887015286820151168686015260608082015160ff169086015260809081015115159085015260a0909301929085019060010161187c565b5091979650505050505050565b6020808252601d908201527f6f6e6c7920746865206e6577206f776e65722063616e20616363657074000000604082015260600190565b6020808252602a908201527f596f752063616e20756e7374616b6564206166746572203720646179732066726040820152696f6d207374616b696e6760b01b606082015260800190565b6020808252602b908201527f526566657272616c20416464726573732063616e6e6f7420626520746865207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b602080825260149082015273165bdd48185b1c9958591e481d5b9cdd185ad95960621b604082015260600190565b60208082526029908201527f6f6e6c79205377617020636f6e74726163742063616e2063616c6c207468697360408201526810333ab731ba34b7b760b91b606082015260800190565b60208082526019908201527f616d6f756e742073686f756c64206e6f74206265207a65726f00000000000000604082015260600190565b6020808252600f908201526e4e6f7420656e6f756768205553444360881b604082015260600190565b60208082526022908201527f616d6f756e742073686f756c652062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b60208082526027908201527f5377617020416464726573732063616e6e6f7420626520746865207a65726f206040820152666164647265737360c81b606082015260800190565b60208082526021908201527f70657263656e742073686f756c64206265206265747765656e203020616e64206040820152603560f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601290820152712cb7ba9030b932903737ba1039ba30b5b2b960711b604082015260600190565b6020808252602b908201527f526563656976657220416464726573732063616e6e6f7420626520746865207a60408201526a65726f206164647265737360a81b606082015260800190565b6020808252600e908201526d139bc81554d110c8185b5bdd5b9d60921b604082015260600190565b60208082526026908201527f4e657720416464726573732063616e6e6f7420626520746865207a65726f206160408201526564647265737360d01b606082015260800190565b90815260200190565b918252602082015260400190565b9182526001600160601b0316602082015260400190565b60ff91909116815260200190565b6001600160601b0391909116815260200190565b60008219821115611d0e57611d0e611d89565b500190565b600082611d2e57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d4d57611d4d611d89565b500290565b600082821015611d6457611d64611d89565b500390565b600060ff821660ff811415611d8057611d80611d89565b60010192915050565b634e487b7160e01b600052601160045260246000fd5b60ff81168114611dae57600080fd5b5056fea2646970667358221220446ab987bebfb507437ed745a031e8136bf6ef0cfcb0bc9a44aaebd8ca0e338364736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000030d8242184ad37c95d04a39710941786650aa7ca000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000002
-----Decoded View---------------
Arg [0] : finevip (address): 0x30d8242184AD37c95d04a39710941786650aa7Ca
Arg [1] : usdc (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [2] : _percent (uint8): 2
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000030d8242184ad37c95d04a39710941786650aa7ca
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000002
Deployed Bytecode Sourcemap
20659:7519:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22689:230;;;;;;:::i;:::-;;:::i;:::-;;21059:44;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22927:601;;;;;;:::i;:::-;;:::i;27021:174::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;26311:354::-;;;;;;:::i;:::-;;:::i;27203:118::-;;;:::i;20801:35::-;;;:::i;:::-;;;;;;;:::i;20884:20::-;;;:::i;:::-;;;;;;;:::i;2654:148::-;;;:::i;3534:247::-;;;:::i;26673:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20843:34::-;;;:::i;22277:178::-;;;;;;:::i;:::-;;:::i;26847:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20763:29::-;;;:::i;:::-;;;;;;;:::i;20947:49::-;;;;;;:::i;:::-;;:::i;2006:87::-;;;:::i;21003:49::-;;;;;;:::i;:::-;;:::i;24560:1232::-;;;:::i;20694:29::-;;;:::i;25800:503::-;;;;;;:::i;:::-;;:::i;22463:218::-;;;;;;:::i;:::-;;:::i;20730:26::-;;;:::i;23536:1016::-;;;;;;:::i;:::-;;:::i;2957:231::-;;;;;;:::i;:::-;;:::i;27329:846::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;22689:230::-;1892:13;:11;:13::i;:::-;-1:-1:-1;;;;;22789:21:0;::::1;22767:109;;;;-1:-1:-1::0;;;22767:109:0::1;;;;;;;:::i;:::-;;;;;;;;;22887:14;:24:::0;;-1:-1:-1;;;;;;22887:24:0::1;-1:-1:-1::0;;;;;22887:24:0;;;::::1;::::0;;;::::1;::::0;;22689:230::o;21059:44::-;;;;;;;;;;;;;:::o;22927:601::-;22995:1;22986:6;:10;22978:48;;;;-1:-1:-1;;;22978:48:0;;;;;;;:::i;:::-;23054:10;23039:26;;;;:14;:26;;;;;:36;;23069:6;;23039:26;:36;;23069:6;;23039:36;:::i;:::-;;;;-1:-1:-1;;23096:10:0;23086:21;;;;:9;:21;;;;;;;23110:15;23086:39;;23144:14;;23138:69;;-1:-1:-1;;;23138:69:0;;-1:-1:-1;;;;;23144:14:0;;;;23138:34;;:69;;23096:10;23193:4;;23200:6;;23138:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;23231:10:0;23218:24;;;;:12;:24;;;;;;;;23262:185;;;;;;;;;;23324:15;-1:-1:-1;;;;;23262:185:0;;;;;;;;;;;;;;;23401:7;;-1:-1:-1;;;23401:7:0;;;;;;;;23262:185;;;;;;;;;;;;23218:240;;23262:185;23218:240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23218:240:0;;;;;;;;;;-1:-1:-1;;;;23218:240:0;;;;;;;;;;;;-1:-1:-1;;;;23218:240:0;-1:-1:-1;;;23218:240:0;;;;;;;;;-1:-1:-1;;;;23218:240:0;-1:-1:-1;;;23218:240:0;;;;;;;;;;;23476:44;;;;;23262:185;;23324:15;23476:44;:::i;:::-;;;;;;;;22927:601;:::o;27021:174::-;-1:-1:-1;;;;;27167:20:0;;;;;;:13;:20;;;;;;;;27160:27;;;;;;;;;;;;;;;;;27121:21;;27160:27;;27167:20;;27160:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27160:27:0;;;;;;-1:-1:-1;;;27160:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27021:174;;;;:::o;26311:354::-;1892:13;:11;:13::i;:::-;-1:-1:-1;;;;;26403:22:0;::::1;26381:115;;;;-1:-1:-1::0;;;26381:115:0::1;;;;;;;:::i;:::-;26524:36;::::0;-1:-1:-1;;;26524:36:0;;26507:14:::1;::::0;-1:-1:-1;;;;;26530:4:0::1;26524:21;::::0;::::1;::::0;:36:::1;::::0;26554:4:::1;::::0;26524:36:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26507:53;;26588:1;26579:6;:10;26571:37;;;;-1:-1:-1::0;;;26571:37:0::1;;;;;;;:::i;:::-;26619:38;::::0;-1:-1:-1;;;26619:38:0;;-1:-1:-1;;;;;26625:4:0::1;26619:20;::::0;::::1;::::0;:38:::1;::::0;26640:8;;26650:6;;26619:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1916:1;26311:354:::0;:::o;27203:118::-;27277:36;;-1:-1:-1;;;27277:36:0;;27250:7;;-1:-1:-1;;;;;27283:4:0;27277:21;;;;:36;;27307:4;;27277:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27270:43;;27203:118;:::o;20801:35::-;;;-1:-1:-1;;;20801:35:0;;-1:-1:-1;;;;;20801:35:0;;:::o;20884:20::-;;;-1:-1:-1;;;20884:20:0;;;;;:::o;2654:148::-;1892:13;:11;:13::i;:::-;2736:1:::1;2719:19:::0;;-1:-1:-1;;;;;;2719:19:0::1;::::0;;2754:40:::1;::::0;2736:1;;2754:40:::1;::::0;2736:1;;2754:40:::1;2654:148::o:0;3534:247::-;3603:10;;-1:-1:-1;;;;;3603:10:0;3589;:24;3581:66;;;;-1:-1:-1;;;3581:66:0;;;;;;;:::i;:::-;3658:16;3677:6;;;3703:10;-1:-1:-1;;;;;3703:10:0;;;-1:-1:-1;;;;;;3694:19:0;;;;;;3729:42;;3677:6;;;;;;;3729:42;;3658:16;3729:42;3534:247;:::o;26673:166::-;-1:-1:-1;;;;;26811:20:0;;;;;;:12;:20;;;;;;;;26804:27;;;;;;;;;;;;;;;;;26766:20;;26804:27;;26811:20;;26804:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26804:27:0;;;;;;;-1:-1:-1;;;26804:27:0;;;;;;;;;;;-1:-1:-1;;;26804:27:0;;;;;;;;-1:-1:-1;;;26804:27:0;;;;;;;;;;;;;;;;;;;;;;20843:34;;;-1:-1:-1;;;;;20843:34:0;;:::o;22277:178::-;1892:13;:11;:13::i;:::-;-1:-1:-1;;;;;22354:19:0;::::1;22346:71;;;;-1:-1:-1::0;;;22346:71:0::1;;;;;;;:::i;:::-;22428:11;:19:::0;;-1:-1:-1;;;;;;22428:19:0::1;-1:-1:-1::0;;;;;22428:19:0;;;::::1;::::0;;;::::1;::::0;;22277:178::o;26847:166::-;-1:-1:-1;;;;;26987:18:0;;;;;;:10;:18;;;;;;;;26980:25;;;;;;;;;;;;;;;;;26944:18;;26980:25;;26987:18;;26980:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26980:25:0;;;;;;-1:-1:-1;;;26980:25:0;;;;;;;;;;;;;;;;;;;;;20763:29;;;:::o;20947:49::-;;;;;;;;;;;;;:::o;2006:87::-;2052:7;2079:6;-1:-1:-1;;;;;2079:6:0;2006:87;:::o;21003:49::-;;;;;;;;;;;;;:::o;24560:1232::-;24602:21;24625;24650:52;24681:10;24650:16;:52::i;:::-;24601:101;;-1:-1:-1;24601:101:0;-1:-1:-1;24715:20:0;24738:29;24601:101;;24738:29;:::i;:::-;24715:52;-1:-1:-1;24783:16:0;;24780:1005;;24858:36;;-1:-1:-1;;;24858:36:0;;-1:-1:-1;;;;;24864:4:0;24858:21;;;;:36;;24888:4;;24858:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24842:12;:52;;24816:129;;;;-1:-1:-1;;;24816:129:0;;;;;;;:::i;:::-;24962:46;;-1:-1:-1;;;24962:46:0;;-1:-1:-1;;;;;24968:4:0;24962:20;;;;:46;;24983:10;;24995:12;;24962:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25038:10:0;25052:1;25023:26;;;:14;:26;;;;;;;;:30;;;25068:9;:21;;;;;25092:15;25068:39;;25152:11;;25146:39;;-1:-1:-1;;;25146:39:0;;;;-1:-1:-1;;;;;25152:11:0;;;;25146:37;;:39;;;;;;;;;;;25152:11;25146:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25122:63;-1:-1:-1;25206:17:0;;25202:297;;25258:10;25244:25;;;;:13;:25;;;;;;;;25297:167;;;;;;;;;;-1:-1:-1;;;;;25383:15:0;25297:167;;;;;;;;;;;;;;;;;;25244:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25244:239:0;-1:-1:-1;;;;25244:239:0;;;;-1:-1:-1;;;;;;25244:239:0;;;;;;;;;;;;;;25202:297;25517:17;;25513:185;;25566:10;25555:22;;;;:10;:22;;;;;;;;25605:58;;;;;;;;;;-1:-1:-1;;;;;25637:15:0;25605:58;;;;;;;;25655:7;;;-1:-1:-1;;;25655:7:0;;;;;;25605:58;;;;;;25555:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;25555:127:0;;;;-1:-1:-1;;;;;;25555:127:0;;;;;;;;;;;;;;25513:185;25731:10;-1:-1:-1;;;;;25719:54:0;;25743:12;25757:15;25719:54;;;;;;;:::i;:::-;;;;;;;;24780:1005;24560:1232;;;:::o;20694:29::-;;;-1:-1:-1;;;;;20694:29:0;;:::o;25800:503::-;25917:11;;-1:-1:-1;;;;;25917:11:0;25903:10;:25;25881:116;;;;-1:-1:-1;;;25881:116:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26030:17:0;;26008:110;;;;-1:-1:-1;;;26008:110:0;;;;;;;:::i;:::-;26146:1;26137:6;:10;26129:57;;;;-1:-1:-1;;;26129:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26199:19:0;;;;;;:14;:19;;;;;:29;;26222:6;;26199:19;:29;;26222:6;;26199:29;:::i;:::-;;;;;;;;26266:3;-1:-1:-1;;;;;26246:49:0;;26271:6;26279:15;26246:49;;;;;;;:::i;:::-;;;;;;;;25800:503;;:::o;22463:218::-;1892:13;:11;:13::i;:::-;22565:1:::1;22554:8;:12;;;:29;;;;;22582:1;22570:8;:13;;;;22554:29;22532:112;;;;-1:-1:-1::0;;;22532:112:0::1;;;;;;;:::i;:::-;22655:7;:18:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;22655:18:0::1;-1:-1:-1::0;;;;22655:18:0;;::::1;::::0;;;::::1;::::0;;22463:218::o;20730:26::-;;;-1:-1:-1;;;;;20730:26:0;;:::o;23536:1016::-;23609:10;23623:1;23594:26;;;:14;:26;;;;;;23586:61;;;;-1:-1:-1;;;23586:61:0;;;;;;;:::i;:::-;23693:10;23726:1;23680:24;;;:12;:24;;;;;:29;;23705:3;;23680:29;;;;-1:-1:-1;;;23680:29:0;;;;;;;;;;;;;;;;;;;:43;;;:47;23658:115;;;;-1:-1:-1;;;23658:115:0;;;;;;;:::i;:::-;23820:10;23807:24;;;;:12;:24;;;;;:29;;23832:3;;23807:29;;;;-1:-1:-1;;;23807:29:0;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;23806:39;23784:109;;;;-1:-1:-1;;;23784:109:0;;;;;;;:::i;:::-;24005:12;;23957:10;23944:24;;;;:12;:24;;;;;:29;;-1:-1:-1;;;24005:12:0;;;-1:-1:-1;;;;;24005:12:0;;23969:3;;23944:29;;;;-1:-1:-1;;;23944:29:0;;;;;;;;;;;;;;;;;:41;:29;;;;;:41;;23926:59;;-1:-1:-1;;;;;23944:41:0;23926:15;:59;:::i;:::-;:91;23904:183;;;;-1:-1:-1;;;23904:183:0;;;;;;;:::i;:::-;24106:14;;24145:10;24106:14;24170:24;;;:12;:24;;;;;:29;;-1:-1:-1;;;;;24106:14:0;;;;24100:30;;24145:10;24170:24;24195:3;;24170:29;;;;-1:-1:-1;;;24170:29:0;;;;;;;;;;;;;;;;;;;:43;;;24100:124;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24278:10:0;24265:24;;;;:12;:24;;;;;:29;;24290:3;;24265:29;;;;-1:-1:-1;;;24265:29:0;;;;;;;;;;;;;;;;;;;;;;;;:57;24250:10;24235:26;;:14;:26;;;;;;:87;;24265:57;;24235:26;;:87;;24265:57;;24235:87;:::i;:::-;;;;-1:-1:-1;24333:13:0;;-1:-1:-1;24333:11:0;:13::i;:::-;24370:10;24357:24;;;;:12;:24;;;;;:29;;24398:4;;24357:24;24382:3;;24357:29;;;;-1:-1:-1;;;24357:29:0;;;;;;;;;;;;;;;;;:38;:29;;;;;:38;;;;:45;;;;;-1:-1:-1;;;24357:45:0;-1:-1:-1;;;;24357:45:0;;;;;;;;;;24444:10;24469:26;;;:14;:26;;;;;;;;;24420:124;;;;;;24517:15;;24420:124;:::i;2957:231::-;1892:13;:11;:13::i;:::-;-1:-1:-1;;;;;3060:22:0;::::1;3038:110;;;;-1:-1:-1::0;;;3038:110:0::1;;;;;;;:::i;:::-;3159:10;:21:::0;;-1:-1:-1;;;;;;3159:21:0::1;-1:-1:-1::0;;;;;3159:21:0;;;::::1;::::0;;;::::1;::::0;;2957:231::o;27329:846::-;-1:-1:-1;;;;;27476:21:0;;27418:7;27476:21;;;:14;:21;;;;;;27418:7;;;;27544:576;-1:-1:-1;;;;;27566:19:0;;;;;;:12;:19;;;;;:26;27562:30;;;;27544:576;;;-1:-1:-1;;;;;27619:19:0;;;;;;:12;:19;;;;;:22;;;;;;;;;;-1:-1:-1;;;27619:22:0;;;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;27614:495;;27712:11;;-1:-1:-1;;;;;27693:16:0;;27712:11;27693:16;;;:9;:16;;;;;;-1:-1:-1;;;;;27712:11:0;;;;27675:34;;:15;:34;:::i;:::-;:48;27671:423;;;-1:-1:-1;;;;;27785:16:0;;27748;27785;;;:9;:16;;;;;;27767:34;;:15;:34;:::i;:::-;27748:53;;28063:10;;28057:3;:16;;;;:::i;:::-;-1:-1:-1;;;;;27996:19:0;;;;;;:12;:19;;;;;:22;;;;;;;;;;-1:-1:-1;;;27996:22:0;;;;;;;;;;;;;;;;;;;;;;:30;;;27948:11;;-1:-1:-1;;;27996:30:0;;;;;;27937:22;;-1:-1:-1;;;;;27948:11:0;27937:8;:22;:::i;:::-;27936:90;;;;:::i;:::-;-1:-1:-1;;;;;27867:19:0;;;;;;:12;:19;;;;;:22;;;;;;;;;;-1:-1:-1;;;27867:22:0;;;;;;;;;;;;;;;;;;;:36;;;:160;;;;:::i;:::-;27866:208;;;;:::i;:::-;27824:250;;;;:::i;:::-;;;27671:423;;27594:3;;;;:::i;:::-;;;;27544:576;;;-1:-1:-1;28138:13:0;;-1:-1:-1;28153:13:0;-1:-1:-1;27329:846:0;;;:::o;2171:132::-;2246:12;:10;:12::i;:::-;-1:-1:-1;;;;;2235:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2235:23:0;;2227:68;;;;-1:-1:-1;;;2227:68:0;;;;;;;:::i;:::-;2171:132::o;655:98::-;735:10;655:98;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:266::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;653:2;638:18;;;;625:32;;-1:-1:-1;;;484:179:1:o;668:297::-;;788:2;776:9;767:7;763:23;759:32;756:2;;;809:6;801;794:22;756:2;846:9;840:16;899:5;892:13;885:21;878:5;875:32;865:2;;926:6;918;911:22;970:190;;1082:2;1070:9;1061:7;1057:23;1053:32;1050:2;;;1103:6;1095;1088:22;1050:2;-1:-1:-1;1131:23:1;;1040:120;-1:-1:-1;1040:120:1:o;1165:194::-;;1288:2;1276:9;1267:7;1263:23;1259:32;1256:2;;;1309:6;1301;1294:22;1256:2;-1:-1:-1;1337:16:1;;1246:113;-1:-1:-1;1246:113:1:o;1364:255::-;;1474:2;1462:9;1453:7;1449:23;1445:32;1442:2;;;1495:6;1487;1480:22;1442:2;1539:9;1526:23;1558:31;1583:5;1558:31;:::i;1624:259::-;;1745:2;1733:9;1724:7;1720:23;1716:32;1713:2;;;1766:6;1758;1751:22;1713:2;1803:9;1797:16;1822:31;1847:5;1822:31;:::i;1888:253::-;1966:12;;1954:25;;2032:4;2021:16;;;2015:23;-1:-1:-1;;;;;2011:56:1;1995:14;;;1988:80;2121:4;2110:16;;;2104:23;2129:4;2100:34;2084:14;;2077:58;1944:197::o;2146:203::-;-1:-1:-1;;;;;2310:32:1;;;;2292:51;;2280:2;2265:18;;2247:102::o;2354:375::-;-1:-1:-1;;;;;2612:15:1;;;2594:34;;2664:15;;;;2659:2;2644:18;;2637:43;2711:2;2696:18;;2689:34;;;;2544:2;2529:18;;2511:218::o;2734:274::-;-1:-1:-1;;;;;2926:32:1;;;;2908:51;;2990:2;2975:18;;2968:34;2896:2;2881:18;;2863:145::o;3013:713::-;3236:2;3288:21;;;3358:13;;3261:18;;;3380:22;;;3013:713;;3236:2;3459:15;;;;3433:2;3418:18;;;3013:713;3505:195;3519:6;3516:1;3513:13;3505:195;;;3568:50;3614:3;3605:6;3599:13;3568:50;:::i;:::-;3675:15;;;;3647:4;3638:14;;;;;3541:1;3534:9;3505:195;;;-1:-1:-1;3717:3:1;;3216:510;-1:-1:-1;;;;;;3216:510:1:o;3731:719::-;3960:2;4012:21;;;4082:13;;3985:18;;;4104:22;;;3731:719;;3960:2;4183:15;;;;4157:2;4142:18;;;3731:719;4229:195;4243:6;4240:1;4237:13;4229:195;;;4292:50;4338:3;4329:6;4323:13;4292:50;:::i;:::-;4399:15;;;;4371:4;4362:14;;;;;4265:1;4258:9;4229:195;;4455:1151;4682:2;4734:21;;;4804:13;;4707:18;;;4826:22;;;4455:1151;;4682:2;4867;;4885:18;;;;4926:15;;;4455:1151;4972:608;4986:6;4983:1;4980:13;4972:608;;;5045:13;;5083:9;;5071:22;;5132:11;;;5126:18;-1:-1:-1;;;;;5227:21:1;;;5213:12;;;5206:43;5293:11;;;5287:18;5283:27;5269:12;;;5262:49;5334:4;5382:11;;;5376:18;5396:4;5372:29;5358:12;;;5351:51;5425:4;5483:11;;;5477:18;5470:26;5463:34;5449:12;;;5442:56;5527:4;5518:14;;;;5555:15;;;;5008:1;5001:9;4972:608;;;-1:-1:-1;5597:3:1;;4662:944;-1:-1:-1;;;;;;;4662:944:1:o;5611:353::-;5813:2;5795:21;;;5852:2;5832:18;;;5825:30;5891:31;5886:2;5871:18;;5864:59;5955:2;5940:18;;5785:179::o;5969:406::-;6171:2;6153:21;;;6210:2;6190:18;;;6183:30;6249:34;6244:2;6229:18;;6222:62;-1:-1:-1;;;6315:2:1;6300:18;;6293:40;6365:3;6350:19;;6143:232::o;6380:407::-;6582:2;6564:21;;;6621:2;6601:18;;;6594:30;6660:34;6655:2;6640:18;;6633:62;-1:-1:-1;;;6726:2:1;6711:18;;6704:41;6777:3;6762:19;;6554:233::o;6792:402::-;6994:2;6976:21;;;7033:2;7013:18;;;7006:30;7072:34;7067:2;7052:18;;7045:62;-1:-1:-1;;;7138:2:1;7123:18;;7116:36;7184:3;7169:19;;6966:228::o;7199:344::-;7401:2;7383:21;;;7440:2;7420:18;;;7413:30;-1:-1:-1;;;7474:2:1;7459:18;;7452:50;7534:2;7519:18;;7373:170::o;7548:405::-;7750:2;7732:21;;;7789:2;7769:18;;;7762:30;7828:34;7823:2;7808:18;;7801:62;-1:-1:-1;;;7894:2:1;7879:18;;7872:39;7943:3;7928:19;;7722:231::o;7958:349::-;8160:2;8142:21;;;8199:2;8179:18;;;8172:30;8238:27;8233:2;8218:18;;8211:55;8298:2;8283:18;;8132:175::o;8312:339::-;8514:2;8496:21;;;8553:2;8533:18;;;8526:30;-1:-1:-1;;;8587:2:1;8572:18;;8565:45;8642:2;8627:18;;8486:165::o;8656:398::-;8858:2;8840:21;;;8897:2;8877:18;;;8870:30;8936:34;8931:2;8916:18;;8909:62;-1:-1:-1;;;9002:2:1;8987:18;;8980:32;9044:3;9029:19;;8830:224::o;9059:403::-;9261:2;9243:21;;;9300:2;9280:18;;;9273:30;9339:34;9334:2;9319:18;;9312:62;-1:-1:-1;;;9405:2:1;9390:18;;9383:37;9452:3;9437:19;;9233:229::o;9467:397::-;9669:2;9651:21;;;9708:2;9688:18;;;9681:30;9747:34;9742:2;9727:18;;9720:62;-1:-1:-1;;;9813:2:1;9798:18;;9791:31;9854:3;9839:19;;9641:223::o;9869:356::-;10071:2;10053:21;;;10090:18;;;10083:30;10149:34;10144:2;10129:18;;10122:62;10216:2;10201:18;;10043:182::o;10230:342::-;10432:2;10414:21;;;10471:2;10451:18;;;10444:30;-1:-1:-1;;;10505:2:1;10490:18;;10483:48;10563:2;10548:18;;10404:168::o;10577:407::-;10779:2;10761:21;;;10818:2;10798:18;;;10791:30;10857:34;10852:2;10837:18;;10830:62;-1:-1:-1;;;10923:2:1;10908:18;;10901:41;10974:3;10959:19;;10751:233::o;10989:338::-;11191:2;11173:21;;;11230:2;11210:18;;;11203:30;-1:-1:-1;;;11264:2:1;11249:18;;11242:44;11318:2;11303:18;;11163:164::o;11332:402::-;11534:2;11516:21;;;11573:2;11553:18;;;11546:30;11612:34;11607:2;11592:18;;11585:62;-1:-1:-1;;;11678:2:1;11663:18;;11656:36;11724:3;11709:19;;11506:228::o;11739:177::-;11885:25;;;11873:2;11858:18;;11840:76::o;11921:248::-;12095:25;;;12151:2;12136:18;;12129:34;12083:2;12068:18;;12050:119::o;12174:280::-;12347:25;;;-1:-1:-1;;;;;12408:39:1;12403:2;12388:18;;12381:67;12335:2;12320:18;;12302:152::o;12459:184::-;12631:4;12619:17;;;;12601:36;;12589:2;12574:18;;12556:87::o;12648:208::-;-1:-1:-1;;;;;12810:39:1;;;;12792:58;;12780:2;12765:18;;12747:109::o;12861:128::-;;12932:1;12928:6;12925:1;12922:13;12919:2;;;12938:18;;:::i;:::-;-1:-1:-1;12974:9:1;;12909:80::o;12994:217::-;;13060:1;13050:2;;-1:-1:-1;;;13085:31:1;;13139:4;13136:1;13129:15;13167:4;13092:1;13157:15;13050:2;-1:-1:-1;13196:9:1;;13040:171::o;13216:168::-;;13322:1;13318;13314:6;13310:14;13307:1;13304:21;13299:1;13292:9;13285:17;13281:45;13278:2;;;13329:18;;:::i;:::-;-1:-1:-1;13369:9:1;;13268:116::o;13389:125::-;;13457:1;13454;13451:8;13448:2;;;13462:18;;:::i;:::-;-1:-1:-1;13499:9:1;;13438:76::o;13519:175::-;;13600:4;13593:5;13589:16;13629:4;13620:7;13617:17;13614:2;;;13637:18;;:::i;:::-;13686:1;13673:15;;13564:130;-1:-1:-1;;13564:130:1:o;13699:127::-;13760:10;13755:3;13751:20;13748:1;13741:31;13791:4;13788:1;13781:15;13815:4;13812:1;13805:15;13831:116;13917:4;13910:5;13906:16;13899:5;13896:27;13886:2;;13937:1;13934;13927:12;13886:2;13876:71;:::o
Swarm Source
ipfs://446ab987bebfb507437ed745a031e8136bf6ef0cfcb0bc9a44aaebd8ca0e3383
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.999198 | 15 | $14.99 |
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.