More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 449 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Claim All | 20278224 | 9 hrs ago | IN | 0 ETH | 0.00097109 | ||||
Claim All | 20278199 | 9 hrs ago | IN | 0 ETH | 0.00108175 | ||||
Claim All | 20275564 | 18 hrs ago | IN | 0 ETH | 0.00071579 | ||||
Claim All | 20272086 | 29 hrs ago | IN | 0 ETH | 0.00059669 | ||||
Claim All | 20268169 | 42 hrs ago | IN | 0 ETH | 0.00059075 | ||||
Claim All | 20267748 | 44 hrs ago | IN | 0 ETH | 0.00062674 | ||||
Claim All | 20263597 | 2 days ago | IN | 0 ETH | 0.00064662 | ||||
Claim All | 20244304 | 5 days ago | IN | 0 ETH | 0.00044063 | ||||
Claim All | 20241986 | 5 days ago | IN | 0 ETH | 0.001023 | ||||
Claim All | 20241824 | 5 days ago | IN | 0 ETH | 0.00075877 | ||||
Claim All | 20239479 | 5 days ago | IN | 0 ETH | 0.00158959 | ||||
Claim All | 20238996 | 5 days ago | IN | 0 ETH | 0.00268701 | ||||
Claim All | 20220235 | 8 days ago | IN | 0 ETH | 0.00117473 | ||||
Claim All | 20217717 | 8 days ago | IN | 0 ETH | 0.00056174 | ||||
Claim All | 20214650 | 9 days ago | IN | 0 ETH | 0.0007984 | ||||
Claim All | 20211039 | 9 days ago | IN | 0 ETH | 0.00047701 | ||||
Claim All | 20210612 | 9 days ago | IN | 0 ETH | 0.00071287 | ||||
Claim All | 20206222 | 10 days ago | IN | 0 ETH | 0.00048099 | ||||
Claim All | 20206203 | 10 days ago | IN | 0 ETH | 0.000524 | ||||
Upsert Vestings | 20205480 | 10 days ago | IN | 0 ETH | 0.00020339 | ||||
Upsert Vestings | 20205478 | 10 days ago | IN | 0 ETH | 0.00022089 | ||||
Upsert Vestings | 20205476 | 10 days ago | IN | 0 ETH | 0.00022542 | ||||
Claim All | 20202820 | 10 days ago | IN | 0 ETH | 0.00032804 | ||||
Claim All | 20202160 | 11 days ago | IN | 0 ETH | 0.00029731 | ||||
Claim All | 20201643 | 11 days ago | IN | 0 ETH | 0.00034307 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
VestingControlV2
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-08 */ // Sources flattened with hardhat v2.19.3 https://hardhat.org // SPDX-License-Identifier: MIT AND UNLICENSED // File @openzeppelin/contracts/utils/[email protected] // Original license: 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; } } // File @openzeppelin/contracts/access/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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() { _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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File @openzeppelin/contracts/security/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File @openzeppelin/contracts/token/ERC20/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } // File contracts/VestingControlV2.sol // Original license: SPDX_License_Identifier: UNLICENSED pragma solidity =0.8.19; contract VestingControlV2 is Ownable, ReentrancyGuard { event Transfer(address indexed to, uint256 token); string magic = "9cYj17lrpiKd0uPS"; address public tokenAddr; // erc20 token address, decimals 1e18 int8 public roundLatest = -1; // round is start at 0 struct RoundOpt { uint256 startTime; // round start at uint256 endTime; // round end at uint256 totalSupply; // total erc20 token supply for this round uint256 raiseCap; // total raise cap, 0 means nolimit uint256 perUnit; // token amount = perUnit * 1ETH, 0 means we should wait for the round to end uint256 minBuy; // minimun amount per wallet uint256 maxBuy; // maximum amount per wallet, 0 means nolimit address signerAddress; // signer for whitelist, empty means nolimit // vesting period uint256 vestingStartTime; // vestingStartTime > tokenReleaseAt uint256 vestingEndTime; // uint256 tgeStartTime; uint256 tgePerc; // 0~100 } struct RoundStat { uint256 totalRaised; // eth uint256 totalToken; // token uint256 totalClaim; // token } struct Wallet { uint256 totalDeposited; // eth uint256 totalToken; // token uint256 totalClaim; // token } struct Vesting { uint256 amount; address beneficary; } mapping(int8 => RoundOpt) public roundOpts; mapping(int8 => RoundStat) public roundStat; mapping(int8 => mapping(address => Wallet)) public wallets; constructor(address _tokenAddr) { tokenAddr = _tokenAddr; } // ============= State Function ============= function currentRound() public view returns (int8) { int8 _currentRound = -1; for (int8 roundNum = 0; roundNum <= roundLatest; roundNum++) { RoundOpt storage opt = roundOpts[roundNum]; if (opt.startTime <= block.timestamp) { _currentRound = roundNum; } } return _currentRound; } // ============= Exchange Function ============= // ============= Claim Fuciton =============== // User claim function totalToken(address addr) external view returns (uint256 deposited, uint256 amount, uint256 claimable, uint256 claimed) { int8 _currentRound = currentRound(); for (int8 roundNum = 0; roundNum <= _currentRound; roundNum++) { RoundOpt storage opt = roundOpts[roundNum]; RoundStat storage stat = roundStat[roundNum]; Wallet storage wallet = wallets[roundNum][addr]; amount += _getBoughtToken(wallet, opt, stat); claimable += _claimableToken(wallet, opt, stat); claimed += wallet.totalClaim; deposited += wallet.totalDeposited; } return (deposited, amount, claimable, claimed); } function _getBoughtToken( Wallet storage wallet, RoundOpt storage opt, RoundStat storage stat ) private view returns (uint256) { if (opt.perUnit == 0) { if (opt.endTime > block.timestamp) { return 0; } else { return opt.totalSupply / stat.totalRaised * wallet.totalDeposited; } } else { return wallet.totalToken; } } function _claimableToken( Wallet storage wallet, RoundOpt storage opt, RoundStat storage stat ) private view returns (uint256) { uint256 _totalToken = _getBoughtToken(wallet, opt, stat); uint256 vested = getVestedAmount(_totalToken, opt); require(vested <= _totalToken, "AssertionFailed: vested <= _totalToken"); require(vested >= wallet.totalClaim, "AssertionFailed: vested >= wallet.totalClaim"); return vested - wallet.totalClaim; } function getVestedAmount(uint256 boughtAmount, RoundOpt storage opt) private view returns (uint256) { if (opt.tgeStartTime > block.timestamp) { return 0; } uint256 initVestedAmount = boughtAmount / 100 * opt.tgePerc; if (block.timestamp < opt.vestingStartTime) { return initVestedAmount; } uint256 vestingAmount = boughtAmount - initVestedAmount; uint256 vestedAmount = 0; if (opt.vestingEndTime < block.timestamp) { vestedAmount = vestingAmount; } else { vestedAmount = vestingAmount / (opt.vestingEndTime - opt.vestingStartTime) * (block.timestamp - opt.vestingStartTime); } return vestedAmount + initVestedAmount; } // claimAll claimable token function claimAll(address addr) external nonReentrant { int8 _currentRound = currentRound(); for (int8 roundNum = 0; roundNum <= _currentRound; roundNum++) { _claim(addr, roundNum); } } function _claim(address addr, int8 roundNum) private { RoundStat storage stat = roundStat[roundNum]; Wallet storage wallet = wallets[roundNum][addr]; uint256 claimable = _claimableToken(wallet, roundOpts[roundNum], stat); if (claimable == 0) { return; } wallet.totalClaim += claimable; stat.totalClaim += claimable; IERC20(tokenAddr).transfer(addr, claimable); emit Transfer(addr, claimable); } // =========== Admin Fuction (onlyOwner)============ // setup round function setupRound( int8 roundNum, RoundOpt calldata opt ) external onlyOwner { require(roundNum >= 0 && roundNum <= roundLatest + 1, "Presale: invalid roundNum"); require( opt.startTime > 0 && opt.endTime > opt.startTime, "Presale: invalid startTime or endTime" ); require(opt.minBuy > 0, "Presale: invalid minBuy"); require( opt.raiseCap >= 0 && opt.totalSupply > 0, "Presale: invalid raiseCap or totalSupply" ); if (opt.raiseCap > 0 && opt.totalSupply > 0) { require(opt.perUnit > 0, "Presale: invalid perUnit"); } if (roundNum > roundLatest) { roundLatest = roundNum; } roundOpts[roundNum] = opt; } function upsertVestings(int8 roundNum, Vesting[] calldata beneficaries) external onlyOwner() { for (uint256 index = 0; index < beneficaries.length; index++) { Vesting calldata beneficary = beneficaries[index]; Wallet storage wallet = wallets[roundNum][beneficary.beneficary]; wallet.totalToken = beneficary.amount; } } function updateVestingBeneficary(int8 roundNum, address from, address to) external onlyOwner() { // copy wallet Wallet memory wallet = wallets[roundNum][from]; wallets[roundNum][to] = wallet; // remove amount wallets[roundNum][from].totalToken = 0; } // withdraw function withdraw() external onlyOwner { uint256 count = address(this).balance; (payable(msg.sender)).transfer(count); } function withdrawToken(address addr) external onlyOwner { uint256 count = IERC20(tokenAddr).balanceOf(address(this)); IERC20(tokenAddr).transfer(addr, count); } // internal helper }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentRound","outputs":[{"internalType":"int8","name":"","type":"int8"}],"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":"roundLatest","outputs":[{"internalType":"int8","name":"","type":"int8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int8","name":"","type":"int8"}],"name":"roundOpts","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"raiseCap","type":"uint256"},{"internalType":"uint256","name":"perUnit","type":"uint256"},{"internalType":"uint256","name":"minBuy","type":"uint256"},{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"address","name":"signerAddress","type":"address"},{"internalType":"uint256","name":"vestingStartTime","type":"uint256"},{"internalType":"uint256","name":"vestingEndTime","type":"uint256"},{"internalType":"uint256","name":"tgeStartTime","type":"uint256"},{"internalType":"uint256","name":"tgePerc","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int8","name":"","type":"int8"}],"name":"roundStat","outputs":[{"internalType":"uint256","name":"totalRaised","type":"uint256"},{"internalType":"uint256","name":"totalToken","type":"uint256"},{"internalType":"uint256","name":"totalClaim","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int8","name":"roundNum","type":"int8"},{"components":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"raiseCap","type":"uint256"},{"internalType":"uint256","name":"perUnit","type":"uint256"},{"internalType":"uint256","name":"minBuy","type":"uint256"},{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"address","name":"signerAddress","type":"address"},{"internalType":"uint256","name":"vestingStartTime","type":"uint256"},{"internalType":"uint256","name":"vestingEndTime","type":"uint256"},{"internalType":"uint256","name":"tgeStartTime","type":"uint256"},{"internalType":"uint256","name":"tgePerc","type":"uint256"}],"internalType":"struct VestingControlV2.RoundOpt","name":"opt","type":"tuple"}],"name":"setupRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"totalToken","outputs":[{"internalType":"uint256","name":"deposited","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"claimable","type":"uint256"},{"internalType":"uint256","name":"claimed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int8","name":"roundNum","type":"int8"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"updateVestingBeneficary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int8","name":"roundNum","type":"int8"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"beneficary","type":"address"}],"internalType":"struct VestingControlV2.Vesting[]","name":"beneficaries","type":"tuple[]"}],"name":"upsertVestings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int8","name":"","type":"int8"},{"internalType":"address","name":"","type":"address"}],"name":"wallets","outputs":[{"internalType":"uint256","name":"totalDeposited","type":"uint256"},{"internalType":"uint256","name":"totalToken","type":"uint256"},{"internalType":"uint256","name":"totalClaim","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052601060809081526f3963596a31376c7270694b643075505360801b60a0526002906200003190826200019f565b506003805460ff60a01b191660ff60a01b1790553480156200005257600080fd5b50604051620014da380380620014da83398101604081905262000075916200026b565b6200008033620000aa565b60018055600380546001600160a01b0319166001600160a01b03929092169190911790556200029d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200012557607f821691505b6020821081036200014657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019a57600081815260208120601f850160051c81016020861015620001755750805b601f850160051c820191505b81811015620001965782815560010162000181565b5050505b505050565b81516001600160401b03811115620001bb57620001bb620000fa565b620001d381620001cc845462000110565b846200014c565b602080601f8311600181146200020b5760008415620001f25750858301515b600019600386901b1c1916600185901b17855562000196565b600085815260208120601f198616915b828110156200023c578886015182559484019460019091019084016200021b565b50858210156200025b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200027e57600080fd5b81516001600160a01b03811681146200029657600080fd5b9392505050565b61122d80620002ad6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638947606911610097578063b300696611610066578063b30069661461025b578063b849352b1461028a578063e4cdcbee1461029d578063f2fde38b1461037657600080fd5b806389476069146102085780638a19c8bc1461021b5780638da5cb5b1461023657806391f3839a1461024757600080fd5b80635fbe4d1d116100d35780635fbe4d1d1461016d57806361ab4dad14610198578063715018a6146101ed57806377329f35146101f557600080fd5b8063135338231461010557806327a6520d1461011a5780633ccfd60b1461012d5780635cf3b15f14610135575b600080fd5b610118610113366004610ea9565b610389565b005b610118610128366004610ef2565b610405565b61011861067b565b610148610143366004610f33565b6106b6565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b600354610180906001600160a01b031681565b6040516001600160a01b039091168152602001610164565b6101d26101a6366004610f50565b600660209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610164565b610118610778565b610118610203366004610f33565b61078c565b610118610216366004610f33565b610824565b610223610917565b60405160009190910b8152602001610164565b6000546001600160a01b0316610180565b60035461022390600160a01b900460000b81565b6101d2610269366004610f87565b60056020526000908152604090208054600182015460029092015490919083565b610118610298366004610fa2565b61096b565b6103146102ab366004610f87565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460088801546009890154600a8a0154600b909a0154989a979996989596949593946001600160a01b0390931693919290918c565b604080519c8d5260208d019b909b52998b019890985260608a0196909652608089019490945260a088019290925260c08701526001600160a01b031660e086015261010085015261012084015261014083015261016082015261018001610164565b610118610384366004610f33565b610a00565b610391610a79565b600092830b83526006602090815260408085206001600160a01b039485168087528184528287208351606081018552815481526001808301805483890190815260029485015484890190815299909a168b529490965293882093518455955193830193909355925193019290925590825255565b61040d610a79565b60008260000b1215801561043e575060035461043490600160a01b900460000b600161103e565b60000b8260000b13155b61048f5760405162461bcd60e51b815260206004820152601960248201527f50726573616c653a20696e76616c696420726f756e644e756d0000000000000060448201526064015b60405180910390fd5b8035158015906104a3575080356020820135115b6104fd5760405162461bcd60e51b815260206004820152602560248201527f50726573616c653a20696e76616c696420737461727454696d65206f7220656e6044820152646454696d6560d81b6064820152608401610486565b60008160a00135116105515760405162461bcd60e51b815260206004820152601760248201527f50726573616c653a20696e76616c6964206d696e4275790000000000000000006044820152606401610486565b60008160400135116105b65760405162461bcd60e51b815260206004820152602860248201527f50726573616c653a20696e76616c6964207261697365436170206f7220746f74604482015267616c537570706c7960c01b6064820152608401610486565b600081606001351180156105ce575060008160400135115b156106275760008160800135116106275760405162461bcd60e51b815260206004820152601860248201527f50726573616c653a20696e76616c696420706572556e697400000000000000006044820152606401610486565b600354600160a01b9004600090810b9083900b1315610659576003805460ff60a01b1916600160a01b60ff8516021790555b600082810b81526004602052604090208190610675828261106c565b50505050565b610683610a79565b6040514790339082156108fc029083906000818181858888f193505050501580156106b2573d6000803e3d6000fd5b5050565b60008060008060006106c6610917565b905060005b8160000b8160000b1361076f57600081810b815260046020908152604080832060058352818420600684528285206001600160a01b038d1686529093529220610715818484610ad3565b61071f908961110f565b975061072c818484610b27565b610736908861110f565b9650806002015486610748919061110f565b8154909650610757908a61110f565b9850505050808061076790611122565b9150506106cb565b50509193509193565b610780610a79565b61078a6000610c26565b565b6002600154036107de5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610486565b600260015560006107ed610917565b905060005b8160000b8160000b1361081b576108098382610c76565b8061081381611122565b9150506107f2565b50506001805550565b61082c610a79565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190611141565b60035460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156108ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610912919061115a565b505050565b6000600019815b600354600160a01b9004600090810b9082900b1361096557600081810b815260046020526040902080544210610952578192505b508061095d81611122565b91505061091e565b50919050565b610973610a79565b60005b8181101561067557368383838181106109915761099161117c565b90506040020190506000600660008760000b60000b815260200190815260200160002060008360200160208101906109c99190610f33565b6001600160a01b031681526020810191909152604001600020913560019092019190915550806109f881611192565b915050610976565b610a08610a79565b6001600160a01b038116610a6d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610486565b610a7681610c26565b50565b6000546001600160a01b0316331461078a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610486565b60008260040154600003610b19574283600101541115610af557506000610b20565b835482546002850154610b0891906111ab565b610b1291906111cd565b9050610b20565b5060018301545b9392505050565b600080610b35858585610ad3565b90506000610b438286610dc2565b905081811115610ba45760405162461bcd60e51b815260206004820152602660248201527f417373657274696f6e4661696c65643a20766573746564203c3d205f746f7461604482015265362a37b5b2b760d11b6064820152608401610486565b8560020154811015610c0d5760405162461bcd60e51b815260206004820152602c60248201527f417373657274696f6e4661696c65643a20766573746564203e3d2077616c6c6560448201526b742e746f74616c436c61696d60a01b6064820152608401610486565b6002860154610c1c90826111e4565b9695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081810b808252600560209081526040808420600683528185206001600160a01b0388168652835281852093855260049092528320909290610cbb90839085610b27565b905080600003610ccc575050505050565b80826002016000828254610ce0919061110f565b9250508190555080836002016000828254610cfb919061110f565b909155505060035460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d77919061115a565b50846001600160a01b03167f69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de282604051610db391815260200190565b60405180910390a25050505050565b60004282600a01541115610dd857506000610e77565b600b820154600090610deb6064866111ab565b610df591906111cd565b90508260080154421015610e0a579050610e77565b6000610e1682866111e4565b905060004285600901541015610e2d575080610e67565b6008850154610e3c90426111e4565b85600801548660090154610e5091906111e4565b610e5a90846111ab565b610e6491906111cd565b90505b610e71838261110f565b93505050505b92915050565b8035600081900b8114610e8f57600080fd5b919050565b6001600160a01b0381168114610a7657600080fd5b600080600060608486031215610ebe57600080fd5b610ec784610e7d565b92506020840135610ed781610e94565b91506040840135610ee781610e94565b809150509250925092565b6000808284036101a0811215610f0757600080fd5b610f1084610e7d565b9250610180601f1982011215610f2557600080fd5b506020830190509250929050565b600060208284031215610f4557600080fd5b8135610b2081610e94565b60008060408385031215610f6357600080fd5b610f6c83610e7d565b91506020830135610f7c81610e94565b809150509250929050565b600060208284031215610f9957600080fd5b610b2082610e7d565b600080600060408486031215610fb757600080fd5b610fc084610e7d565b9250602084013567ffffffffffffffff80821115610fdd57600080fd5b818601915086601f830112610ff157600080fd5b81358181111561100057600080fd5b8760208260061b850101111561101557600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052601160045260246000fd5b600081810b9083900b01607f8113607f1982121715610e7757610e77611028565b60008135610e7781610e94565b813581556020820135600182015560408201356002820155606082013560038201556080820135600482015560a0820135600582015560c082013560068201556110df6110bb60e0840161105f565b6007830180546001600160a01b0319166001600160a01b0392909216919091179055565b61010082013560088201556101208201356009820155610140820135600a820155610160820135600b8201555050565b80820180821115610e7757610e77611028565b60008160000b607f810361113857611138611028565b60010192915050565b60006020828403121561115357600080fd5b5051919050565b60006020828403121561116c57600080fd5b81518015158114610b2057600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016111a4576111a4611028565b5060010190565b6000826111c857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e7757610e77611028565b81810381811115610e7757610e7761102856fea26469706673582212200a63da9da3f5bf432ab2441b6c501eaf31ec5dd6d30e663910ab03cb78277b7464736f6c6343000813003300000000000000000000000087c22db324b8b0637c8f09d2670ae7777651dbb8
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c80638947606911610097578063b300696611610066578063b30069661461025b578063b849352b1461028a578063e4cdcbee1461029d578063f2fde38b1461037657600080fd5b806389476069146102085780638a19c8bc1461021b5780638da5cb5b1461023657806391f3839a1461024757600080fd5b80635fbe4d1d116100d35780635fbe4d1d1461016d57806361ab4dad14610198578063715018a6146101ed57806377329f35146101f557600080fd5b8063135338231461010557806327a6520d1461011a5780633ccfd60b1461012d5780635cf3b15f14610135575b600080fd5b610118610113366004610ea9565b610389565b005b610118610128366004610ef2565b610405565b61011861067b565b610148610143366004610f33565b6106b6565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b600354610180906001600160a01b031681565b6040516001600160a01b039091168152602001610164565b6101d26101a6366004610f50565b600660209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610164565b610118610778565b610118610203366004610f33565b61078c565b610118610216366004610f33565b610824565b610223610917565b60405160009190910b8152602001610164565b6000546001600160a01b0316610180565b60035461022390600160a01b900460000b81565b6101d2610269366004610f87565b60056020526000908152604090208054600182015460029092015490919083565b610118610298366004610fa2565b61096b565b6103146102ab366004610f87565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460088801546009890154600a8a0154600b909a0154989a979996989596949593946001600160a01b0390931693919290918c565b604080519c8d5260208d019b909b52998b019890985260608a0196909652608089019490945260a088019290925260c08701526001600160a01b031660e086015261010085015261012084015261014083015261016082015261018001610164565b610118610384366004610f33565b610a00565b610391610a79565b600092830b83526006602090815260408085206001600160a01b039485168087528184528287208351606081018552815481526001808301805483890190815260029485015484890190815299909a168b529490965293882093518455955193830193909355925193019290925590825255565b61040d610a79565b60008260000b1215801561043e575060035461043490600160a01b900460000b600161103e565b60000b8260000b13155b61048f5760405162461bcd60e51b815260206004820152601960248201527f50726573616c653a20696e76616c696420726f756e644e756d0000000000000060448201526064015b60405180910390fd5b8035158015906104a3575080356020820135115b6104fd5760405162461bcd60e51b815260206004820152602560248201527f50726573616c653a20696e76616c696420737461727454696d65206f7220656e6044820152646454696d6560d81b6064820152608401610486565b60008160a00135116105515760405162461bcd60e51b815260206004820152601760248201527f50726573616c653a20696e76616c6964206d696e4275790000000000000000006044820152606401610486565b60008160400135116105b65760405162461bcd60e51b815260206004820152602860248201527f50726573616c653a20696e76616c6964207261697365436170206f7220746f74604482015267616c537570706c7960c01b6064820152608401610486565b600081606001351180156105ce575060008160400135115b156106275760008160800135116106275760405162461bcd60e51b815260206004820152601860248201527f50726573616c653a20696e76616c696420706572556e697400000000000000006044820152606401610486565b600354600160a01b9004600090810b9083900b1315610659576003805460ff60a01b1916600160a01b60ff8516021790555b600082810b81526004602052604090208190610675828261106c565b50505050565b610683610a79565b6040514790339082156108fc029083906000818181858888f193505050501580156106b2573d6000803e3d6000fd5b5050565b60008060008060006106c6610917565b905060005b8160000b8160000b1361076f57600081810b815260046020908152604080832060058352818420600684528285206001600160a01b038d1686529093529220610715818484610ad3565b61071f908961110f565b975061072c818484610b27565b610736908861110f565b9650806002015486610748919061110f565b8154909650610757908a61110f565b9850505050808061076790611122565b9150506106cb565b50509193509193565b610780610a79565b61078a6000610c26565b565b6002600154036107de5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610486565b600260015560006107ed610917565b905060005b8160000b8160000b1361081b576108098382610c76565b8061081381611122565b9150506107f2565b50506001805550565b61082c610a79565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190611141565b60035460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156108ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610912919061115a565b505050565b6000600019815b600354600160a01b9004600090810b9082900b1361096557600081810b815260046020526040902080544210610952578192505b508061095d81611122565b91505061091e565b50919050565b610973610a79565b60005b8181101561067557368383838181106109915761099161117c565b90506040020190506000600660008760000b60000b815260200190815260200160002060008360200160208101906109c99190610f33565b6001600160a01b031681526020810191909152604001600020913560019092019190915550806109f881611192565b915050610976565b610a08610a79565b6001600160a01b038116610a6d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610486565b610a7681610c26565b50565b6000546001600160a01b0316331461078a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610486565b60008260040154600003610b19574283600101541115610af557506000610b20565b835482546002850154610b0891906111ab565b610b1291906111cd565b9050610b20565b5060018301545b9392505050565b600080610b35858585610ad3565b90506000610b438286610dc2565b905081811115610ba45760405162461bcd60e51b815260206004820152602660248201527f417373657274696f6e4661696c65643a20766573746564203c3d205f746f7461604482015265362a37b5b2b760d11b6064820152608401610486565b8560020154811015610c0d5760405162461bcd60e51b815260206004820152602c60248201527f417373657274696f6e4661696c65643a20766573746564203e3d2077616c6c6560448201526b742e746f74616c436c61696d60a01b6064820152608401610486565b6002860154610c1c90826111e4565b9695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081810b808252600560209081526040808420600683528185206001600160a01b0388168652835281852093855260049092528320909290610cbb90839085610b27565b905080600003610ccc575050505050565b80826002016000828254610ce0919061110f565b9250508190555080836002016000828254610cfb919061110f565b909155505060035460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d77919061115a565b50846001600160a01b03167f69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de282604051610db391815260200190565b60405180910390a25050505050565b60004282600a01541115610dd857506000610e77565b600b820154600090610deb6064866111ab565b610df591906111cd565b90508260080154421015610e0a579050610e77565b6000610e1682866111e4565b905060004285600901541015610e2d575080610e67565b6008850154610e3c90426111e4565b85600801548660090154610e5091906111e4565b610e5a90846111ab565b610e6491906111cd565b90505b610e71838261110f565b93505050505b92915050565b8035600081900b8114610e8f57600080fd5b919050565b6001600160a01b0381168114610a7657600080fd5b600080600060608486031215610ebe57600080fd5b610ec784610e7d565b92506020840135610ed781610e94565b91506040840135610ee781610e94565b809150509250925092565b6000808284036101a0811215610f0757600080fd5b610f1084610e7d565b9250610180601f1982011215610f2557600080fd5b506020830190509250929050565b600060208284031215610f4557600080fd5b8135610b2081610e94565b60008060408385031215610f6357600080fd5b610f6c83610e7d565b91506020830135610f7c81610e94565b809150509250929050565b600060208284031215610f9957600080fd5b610b2082610e7d565b600080600060408486031215610fb757600080fd5b610fc084610e7d565b9250602084013567ffffffffffffffff80821115610fdd57600080fd5b818601915086601f830112610ff157600080fd5b81358181111561100057600080fd5b8760208260061b850101111561101557600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052601160045260246000fd5b600081810b9083900b01607f8113607f1982121715610e7757610e77611028565b60008135610e7781610e94565b813581556020820135600182015560408201356002820155606082013560038201556080820135600482015560a0820135600582015560c082013560068201556110df6110bb60e0840161105f565b6007830180546001600160a01b0319166001600160a01b0392909216919091179055565b61010082013560088201556101208201356009820155610140820135600a820155610160820135600b8201555050565b80820180821115610e7757610e77611028565b60008160000b607f810361113857611138611028565b60010192915050565b60006020828403121561115357600080fd5b5051919050565b60006020828403121561116c57600080fd5b81518015158114610b2057600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016111a4576111a4611028565b5060010190565b6000826111c857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e7757610e77611028565b81810381811115610e7757610e7761102856fea26469706673582212200a63da9da3f5bf432ab2441b6c501eaf31ec5dd6d30e663910ab03cb78277b7464736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000087c22db324b8b0637c8f09d2670ae7777651dbb8
-----Decoded View---------------
Arg [0] : _tokenAddr (address): 0x87C22DB324b8b0637C8f09d2670aE7777651dBb8
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000087c22db324b8b0637c8f09d2670ae7777651dbb8
Deployed Bytecode Sourcemap
9704:7550:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16565:301;;;;;;:::i;:::-;;:::i;:::-;;15354:814;;;;;;:::i;:::-;;:::i;16891:143::-;;;:::i;11956:721::-;;;;;;:::i;:::-;;:::i;:::-;;;;1601:25:1;;;1657:2;1642:18;;1635:34;;;;1685:18;;;1678:34;1743:2;1728:18;;1721:34;1588:3;1573:19;11956:721:0;;;;;;;;9865:24;;;;;-1:-1:-1;;;;;9865:24:0;;;;;;-1:-1:-1;;;;;1930:32:1;;;1912:51;;1900:2;1885:18;9865:24:0;1766:203:1;11236:58:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2496:25:1;;;2552:2;2537:18;;2530:34;;;;2580:18;;;2573:34;2484:2;2469:18;11236:58:0;2294:319:1;3001:103:0;;;:::i;14519:232::-;;;;;;:::i;:::-;;:::i;17042:183::-;;;;;;:::i;:::-;;:::i;11442:376::-;;;:::i;:::-;;;2704:4:1;2776:21;;;;2758:40;;2746:2;2731:18;11442:376:0;2618:186:1;2353:87:0;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;2353:87;;9934:28;;;;;-1:-1:-1;;;9934:28:0;;;;;;11186:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;16176:381;;;;;;:::i;:::-;;:::i;11137:42::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11137:42:0;;;;;;;;;;;;;;4165:25:1;;;4221:2;4206:18;;4199:34;;;;4249:18;;;4242:34;;;;4307:2;4292:18;;4285:34;;;;4350:3;4335:19;;4328:35;;;;4394:3;4379:19;;4372:35;;;;4438:3;4423:19;;4416:35;-1:-1:-1;;;;;4488:32:1;4482:3;4467:19;;4460:61;4552:3;4537:19;;4530:35;4596:3;4581:19;;4574:35;4640:3;4625:19;;4618:36;4685:3;4670:19;;4663:36;4152:3;4137:19;11137:42:0;3708:997:1;3259:201:0;;;;;;:::i;:::-;;:::i;16565:301::-;2239:13;:11;:13::i;:::-;16695:20:::1;16718:17:::0;;::::1;::::0;;:7:::1;:17;::::0;;;;;;;-1:-1:-1;;;;;16718:23:0;;::::1;::::0;;;;;;;;;16695:46;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;16753:21;;;::::1;::::0;;;;;;;;;:30;;;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;;16820:23;;;:38;16565:301::o;15354:814::-;2239:13;:11;:13::i;:::-;15487:1:::1;15475:8;:13;;;;:44;;;;-1:-1:-1::0;15504:11:0::1;::::0;:15:::1;::::0;-1:-1:-1;;;15504:11:0;::::1;;;15518:1;15504:15;:::i;:::-;15492:27;;:8;:27;;;;15475:44;15467:82;;;::::0;-1:-1:-1;;;15467:82:0;;5229:2:1;15467:82:0::1;::::0;::::1;5211:21:1::0;5268:2;5248:18;;;5241:30;5307:27;5287:18;;;5280:55;5352:18;;15467:82:0::1;;;;;;;;;15582:13:::0;::::1;:17:::0;;;;:48:::1;;-1:-1:-1::0;15617:13:0;::::1;15603:11;::::0;::::1;;:27;15582:48;15560:135;;;::::0;-1:-1:-1;;;15560:135:0;;5583:2:1;15560:135:0::1;::::0;::::1;5565:21:1::0;5622:2;5602:18;;;5595:30;5661:34;5641:18;;;5634:62;-1:-1:-1;;;5712:18:1;;;5705:35;5757:19;;15560:135:0::1;5381:401:1::0;15560:135:0::1;15727:1;15714:3;:10;;;:14;15706:50;;;::::0;-1:-1:-1;;;15706:50:0;;5989:2:1;15706:50:0::1;::::0;::::1;5971:21:1::0;6028:2;6008:18;;;6001:30;6067:25;6047:18;;;6040:53;6110:18;;15706:50:0::1;5787:347:1::0;15706:50:0::1;15828:1;15810:3;:15;;;:19;15767:130;;;::::0;-1:-1:-1;;;15767:130:0;;6341:2:1;15767:130:0::1;::::0;::::1;6323:21:1::0;6380:2;6360:18;;;6353:30;6419:34;6399:18;;;6392:62;-1:-1:-1;;;6470:18:1;;;6463:38;6518:19;;15767:130:0::1;6139:404:1::0;15767:130:0::1;15929:1;15914:3;:12;;;:16;:39;;;;;15952:1;15934:3;:15;;;:19;15914:39;15910:124;;;15992:1;15978:3;:11;;;:15;15970:52;;;::::0;-1:-1:-1;;;15970:52:0;;6750:2:1;15970:52:0::1;::::0;::::1;6732:21:1::0;6789:2;6769:18;;;6762:30;6828:26;6808:18;;;6801:54;6872:18;;15970:52:0::1;6548:348:1::0;15970:52:0::1;16061:11;::::0;-1:-1:-1;;;16061:11:0;::::1;;::::0;;::::1;16050:22:::0;;;::::1;;16046:77;;;16089:11;:22:::0;;-1:-1:-1;;;;16089:22:0::1;-1:-1:-1::0;;;16089:22:0::1;::::0;;::::1;;::::0;;16046:77:::1;16135:19;::::0;;::::1;::::0;;:9:::1;:19;::::0;;;;16157:3;;16135:25:::1;16157:3:::0;16135:19;:25:::1;:::i;:::-;-1:-1:-1::0;;;;15354:814:0:o;16891:143::-;2239:13;:11;:13::i;:::-;16989:37:::1;::::0;16957:21:::1;::::0;16998:10:::1;::::0;16989:37;::::1;;;::::0;16957:21;;16941:13:::1;16989:37:::0;16941:13;16989:37;16957:21;16998:10;16989:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16930:104;16891:143::o:0;11956:721::-;12013:17;12032:14;12048:17;12067:15;12095:18;12116:14;:12;:14::i;:::-;12095:35;;12148:13;12143:468;12179:13;12167:25;;:8;:25;;;12143:468;;12221:20;12244:19;;;;;:9;:19;;;;;;;;12303:9;:19;;;;;12361:7;:17;;;;;-1:-1:-1;;;;;12361:23:0;;;;;;;;;12411:34;12361:23;12244:19;12303;12411:15;:34::i;:::-;12401:44;;;;:::i;:::-;;;12473:34;12489:6;12497:3;12502:4;12473:15;:34::i;:::-;12460:47;;;;:::i;:::-;;;12533:6;:17;;;12522:28;;;;;:::i;:::-;12578:21;;12522:28;;-1:-1:-1;12565:34:0;;;;:::i;:::-;;;12206:405;;;12194:10;;;;;:::i;:::-;;;;12143:468;;;;12623:46;11956:721;;;;;:::o;3001:103::-;2239:13;:11;:13::i;:::-;3066:30:::1;3093:1;3066:18;:30::i;:::-;3001:103::o:0;14519:232::-;5687:1;6285:7;;:19;6277:63;;;;-1:-1:-1;;;6277:63:0;;8693:2:1;6277:63:0;;;8675:21:1;8732:2;8712:18;;;8705:30;8771:33;8751:18;;;8744:61;8822:18;;6277:63:0;8491:355:1;6277:63:0;5687:1;6418:7;:18;14584::::1;14605:14;:12;:14::i;:::-;14584:35;;14637:13;14632:112;14668:13;14656:25;;:8;:25;;;14632:112;;14710:22;14717:4;14723:8;14710:6;:22::i;:::-;14683:10:::0;::::1;::::0;::::1;:::i;:::-;;;;14632:112;;;-1:-1:-1::0;;5643:1:0;6597:22;;-1:-1:-1;14519:232:0:o;17042:183::-;2239:13;:11;:13::i;:::-;17132:9:::1;::::0;17125:42:::1;::::0;-1:-1:-1;;;17125:42:0;;17161:4:::1;17125:42;::::0;::::1;1912:51:1::0;17109:13:0::1;::::0;-1:-1:-1;;;;;17132:9:0::1;::::0;17125:27:::1;::::0;1885:18:1;;17125:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17185:9;::::0;17178:39:::1;::::0;-1:-1:-1;;;17178:39:0;;-1:-1:-1;;;;;9232:32:1;;;17178:39:0::1;::::0;::::1;9214:51:1::0;9281:18;;;9274:34;;;17109:58:0;;-1:-1:-1;17185:9:0;::::1;::::0;17178:26:::1;::::0;9187:18:1;;17178:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17098:127;17042:183:::0;:::o;11442:376::-;11487:4;-1:-1:-1;;11487:4:0;11538:241;11574:11;;-1:-1:-1;;;11574:11:0;;;;;;11562:23;;;;;11538:241;;11614:20;11637:19;;;;;:9;:19;;;;;11675:13;;11692:15;-1:-1:-1;11671:97:0;;11744:8;11728:24;;11671:97;-1:-1:-1;11587:10:0;;;;:::i;:::-;;;;11538:241;;;-1:-1:-1;11797:13:0;11442:376;-1:-1:-1;11442:376:0:o;16176:381::-;2239:13;:11;:13::i;:::-;16285::::1;16280:270;16304:27:::0;;::::1;16280:270;;;16357:27;16387:12;;16400:5;16387:19;;;;;;;:::i;:::-;;;;;;16357:49;;16421:21;16445:7;:17;16453:8;16445:17;;;;;;;;;;;;;;;:40;16463:10;:21;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16445:40:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16445:40:0;16521:17;::::1;16501;::::0;;::::1;:37:::0;;;;-1:-1:-1;16333:7:0;::::1;::::0;::::1;:::i;:::-;;;;16280:270;;3259:201:::0;2239:13;:11;:13::i;:::-;-1:-1:-1;;;;;3348:22:0;::::1;3340:73;;;::::0;-1:-1:-1;;;3340:73:0;;10075:2:1;3340:73:0::1;::::0;::::1;10057:21:1::0;10114:2;10094:18;;;10087:30;10153:34;10133:18;;;10126:62;-1:-1:-1;;;10204:18:1;;;10197:36;10250:19;;3340:73:0::1;9873:402:1::0;3340:73:0::1;3424:28;3443:8;3424:18;:28::i;:::-;3259:201:::0;:::o;2518:132::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;929:10;2582:23;2574:68;;;;-1:-1:-1;;;2574:68:0;;10482:2:1;2574:68:0;;;10464:21:1;;;10501:18;;;10494:30;10560:34;10540:18;;;10533:62;10612:18;;2574:68:0;10280:356:1;12687:466:0;12837:7;12861:3;:11;;;12876:1;12861:16;12857:289;;12912:15;12898:3;:11;;;:29;12894:184;;;-1:-1:-1;12955:1:0;12948:8;;12894:184;13041:21;;13022:16;;13004:15;;;;:34;;13022:16;13004:34;:::i;:::-;:58;;;;:::i;:::-;12997:65;;;;12857:289;-1:-1:-1;13117:17:0;;;;12857:289;12687:466;;;;;:::o;13161:523::-;13311:7;13331:19;13353:34;13369:6;13377:3;13382:4;13353:15;:34::i;:::-;13331:56;;13400:14;13417:33;13433:11;13446:3;13417:15;:33::i;:::-;13400:50;;13481:11;13471:6;:21;;13463:72;;;;-1:-1:-1;;;13463:72:0;;11238:2:1;13463:72:0;;;11220:21:1;11277:2;11257:18;;;11250:30;11316:34;11296:18;;;11289:62;-1:-1:-1;;;11367:18:1;;;11360:36;11413:19;;13463:72:0;11036:402:1;13463:72:0;13564:6;:17;;;13554:6;:27;;13546:84;;;;-1:-1:-1;;;13546:84:0;;11645:2:1;13546:84:0;;;11627:21:1;11684:2;11664:18;;;11657:30;11723:34;11703:18;;;11696:62;-1:-1:-1;;;11774:18:1;;;11767:42;11826:19;;13546:84:0;11443:408:1;13546:84:0;13659:17;;;;13650:26;;:6;:26;:::i;:::-;13643:33;13161:523;-1:-1:-1;;;;;;13161:523:0:o;3620:191::-;3694:16;3713:6;;-1:-1:-1;;;;;3730:17:0;;;-1:-1:-1;;;;;;3730:17:0;;;;;;3763:40;;3713:6;;;;;;;3763:40;;3694:16;3763:40;3683:128;3620:191;:::o;14763:503::-;14827:22;14852:19;;;;;;:9;:19;;;;;;;;14906:7;:17;;;;;-1:-1:-1;;;;;14906:23:0;;;;;;;;;14986:19;;;:9;:19;;;;;14852;;14827:22;14962:50;;14906:23;;14852:19;14962:15;:50::i;:::-;14942:70;;15027:9;15040:1;15027:14;15023:53;;15058:7;;;14763:503;;:::o;15023:53::-;15109:9;15088:6;:17;;;:30;;;;;;;:::i;:::-;;;;;;;;15148:9;15129:4;:15;;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;15181:9:0;;15174:43;;-1:-1:-1;;;15174:43:0;;-1:-1:-1;;;;;9232:32:1;;;15174:43:0;;;9214:51:1;9281:18;;;9274:34;;;15181:9:0;;;;15174:26;;9187:18:1;;15174:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15242:4;-1:-1:-1;;;;;15233:25:0;;15248:9;15233:25;;;;12135::1;;12123:2;12108:18;;11989:177;15233:25:0;;;;;;;;14816:450;;;14763:503;;:::o;13692:786::-;13783:7;13826:15;13807:3;:16;;;:34;13803:75;;;-1:-1:-1;13865:1:0;13858:8;;13803:75;13938:11;;;;13890:24;;13917:18;13932:3;13917:12;:18;:::i;:::-;:32;;;;:::i;:::-;13890:59;;13984:3;:20;;;13966:15;:38;13962:94;;;14028:16;-1:-1:-1;14021:23:0;;13962:94;14070:21;14094:31;14109:16;14094:12;:31;:::i;:::-;14070:55;;14138:20;14198:15;14177:3;:18;;;:36;14173:247;;;-1:-1:-1;14245:13:0;14173:247;;;14387:20;;;;14369:38;;:15;:38;:::i;:::-;14344:3;:20;;;14323:3;:18;;;:41;;;;:::i;:::-;14306:59;;:13;:59;:::i;:::-;:102;;;;:::i;:::-;14291:117;;14173:247;14439:31;14454:16;14439:12;:31;:::i;:::-;14432:38;;;;;13692:786;;;;;:::o;14:159:1:-;79:20;;50:5;128:20;;;118:31;;108:59;;163:1;160;153:12;108:59;14:159;;;:::o;178:131::-;-1:-1:-1;;;;;253:31:1;;243:42;;233:70;;299:1;296;289:12;314:456;388:6;396;404;457:2;445:9;436:7;432:23;428:32;425:52;;;473:1;470;463:12;425:52;496:26;512:9;496:26;:::i;:::-;486:36;;572:2;561:9;557:18;544:32;585:31;610:5;585:31;:::i;:::-;635:5;-1:-1:-1;692:2:1;677:18;;664:32;705:33;664:32;705:33;:::i;:::-;757:7;747:17;;;314:456;;;;;:::o;775:338::-;867:6;875;919:9;910:7;906:23;949:3;945:2;941:12;938:32;;;966:1;963;956:12;938:32;989:26;1005:9;989:26;:::i;:::-;979:36;-1:-1:-1;1049:3:1;-1:-1:-1;;1031:16:1;;1027:26;1024:46;;;1066:1;1063;1056:12;1024:46;;1104:2;1093:9;1089:18;1079:28;;775:338;;;;;:::o;1118:247::-;1177:6;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;1974:315::-;2039:6;2047;2100:2;2088:9;2079:7;2075:23;2071:32;2068:52;;;2116:1;2113;2106:12;2068:52;2139:26;2155:9;2139:26;:::i;:::-;2129:36;;2215:2;2204:9;2200:18;2187:32;2228:31;2253:5;2228:31;:::i;:::-;2278:5;2268:15;;;1974:315;;;;;:::o;2809:180::-;2865:6;2918:2;2906:9;2897:7;2893:23;2889:32;2886:52;;;2934:1;2931;2924:12;2886:52;2957:26;2973:9;2957:26;:::i;2994:709::-;3112:6;3120;3128;3181:2;3169:9;3160:7;3156:23;3152:32;3149:52;;;3197:1;3194;3187:12;3149:52;3220:26;3236:9;3220:26;:::i;:::-;3210:36;;3297:2;3286:9;3282:18;3269:32;3320:18;3361:2;3353:6;3350:14;3347:34;;;3377:1;3374;3367:12;3347:34;3415:6;3404:9;3400:22;3390:32;;3460:7;3453:4;3449:2;3445:13;3441:27;3431:55;;3482:1;3479;3472:12;3431:55;3522:2;3509:16;3548:2;3540:6;3537:14;3534:34;;;3564:1;3561;3554:12;3534:34;3617:7;3612:2;3602:6;3599:1;3595:14;3591:2;3587:23;3583:32;3580:45;3577:65;;;3638:1;3635;3628:12;3577:65;3669:2;3665;3661:11;3651:21;;3691:6;3681:16;;;;;2994:709;;;;;:::o;4710:127::-;4771:10;4766:3;4762:20;4759:1;4752:31;4802:4;4799:1;4792:15;4826:4;4823:1;4816:15;4842:180;4879:3;4908:16;;;4926;;;;4904:39;4987:3;4958:14;;-1:-1:-1;;4974:18:1;;4955:38;4952:64;;;4996:18;;:::i;6901:176::-;6946:11;6998:3;6985:17;7011:31;7036:5;7011:31;:::i;7282:891::-;7445:5;7432:19;7426:4;7419:33;7506:2;7499:5;7495:14;7482:28;7478:1;7472:4;7468:12;7461:50;7565:2;7558:5;7554:14;7541:28;7537:1;7531:4;7527:12;7520:50;7624:2;7617:5;7613:14;7600:28;7596:1;7590:4;7586:12;7579:50;7683:3;7676:5;7672:15;7659:29;7655:1;7649:4;7645:12;7638:51;7743:3;7736:5;7732:15;7719:29;7715:1;7709:4;7705:12;7698:51;7803:3;7796:5;7792:15;7779:29;7775:1;7769:4;7765:12;7758:51;7818:107;7880:44;7919:3;7912:5;7908:15;7880:44;:::i;:::-;7876:1;7870:4;7866:12;7186:11;;-1:-1:-1;;;;;;7182:54:1;-1:-1:-1;;;;;7238:31:1;;;;7179:91;;;;7166:105;;7082:195;7818:107;7979:3;7972:5;7968:15;7955:29;7951:1;7945:4;7941:12;7934:51;8039:3;8032:5;8028:15;8015:29;8011:1;8005:4;8001:12;7994:51;8100:3;8093:5;8089:15;8076:29;8071:2;8065:4;8061:13;8054:52;8161:3;8154:5;8150:15;8137:29;8132:2;8126:4;8122:13;8115:52;;;7282:891::o;8178:125::-;8243:9;;;8264:10;;;8261:36;;;8277:18;;:::i;8308:178::-;8344:3;8391:5;8388:1;8377:20;8421:4;8412:7;8409:17;8406:43;;8429:18;;:::i;:::-;8478:1;8465:15;;8308:178;-1:-1:-1;;8308:178:1:o;8851:184::-;8921:6;8974:2;8962:9;8953:7;8949:23;8945:32;8942:52;;;8990:1;8987;8980:12;8942:52;-1:-1:-1;9013:16:1;;8851:184;-1:-1:-1;8851:184:1:o;9319:277::-;9386:6;9439:2;9427:9;9418:7;9414:23;9410:32;9407:52;;;9455:1;9452;9445:12;9407:52;9487:9;9481:16;9540:5;9533:13;9526:21;9519:5;9516:32;9506:60;;9562:1;9559;9552:12;9601:127;9662:10;9657:3;9653:20;9650:1;9643:31;9693:4;9690:1;9683:15;9717:4;9714:1;9707:15;9733:135;9772:3;9793:17;;;9790:43;;9813:18;;:::i;:::-;-1:-1:-1;9860:1:1;9849:13;;9733:135::o;10641:217::-;10681:1;10707;10697:132;;10751:10;10746:3;10742:20;10739:1;10732:31;10786:4;10783:1;10776:15;10814:4;10811:1;10804:15;10697:132;-1:-1:-1;10843:9:1;;10641:217::o;10863:168::-;10936:9;;;10967;;10984:15;;;10978:22;;10964:37;10954:71;;11005:18;;:::i;11856:128::-;11923:9;;;11944:11;;;11941:37;;;11958:18;;:::i
Swarm Source
ipfs://0a63da9da3f5bf432ab2441b6c501eaf31ec5dd6d30e663910ab03cb78277b74
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.004847 | 46,619.91 | $225.94 |
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.