Source Code
Latest 25 from a total of 89 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 24338133 | 36 days ago | IN | 0 ETH | 0.00005676 | ||||
| Set Treasury | 24338103 | 36 days ago | IN | 0 ETH | 0.0000553 | ||||
| Buy Tokens | 24264289 | 46 days ago | IN | 0.49999999 ETH | 0.00000551 | ||||
| Buy Tokens | 24204851 | 55 days ago | IN | 0.006 ETH | 0.00024743 | ||||
| Buy Tokens | 24193248 | 56 days ago | IN | 0.002 ETH | 0.00000357 | ||||
| Buy Tokens | 24118962 | 67 days ago | IN | 0.004 ETH | 0.00025234 | ||||
| Buy Tokens | 24105040 | 69 days ago | IN | 0.0032 ETH | 0.00017405 | ||||
| Buy Tokens | 24083313 | 72 days ago | IN | 0.003 ETH | 0.00000961 | ||||
| Advance To Stage | 24054963 | 76 days ago | IN | 0 ETH | 0.00009959 | ||||
| Add Stage | 24054945 | 76 days ago | IN | 0 ETH | 0.00025489 | ||||
| Buy Tokens | 24054470 | 76 days ago | IN | 0.004 ETH | 0.0000026 | ||||
| Buy Tokens | 24053801 | 76 days ago | IN | 0.00002 ETH | 0.00000215 | ||||
| Buy Tokens | 24053744 | 76 days ago | IN | 0.0005 ETH | 0.00017386 | ||||
| Buy Tokens | 24053734 | 76 days ago | IN | 0.0001 ETH | 0.00017341 | ||||
| Buy Tokens | 24053703 | 76 days ago | IN | 0.0001 ETH | 0.00017408 | ||||
| Buy Tokens | 24052624 | 76 days ago | IN | 0.0006 ETH | 0.00017373 | ||||
| Buy Tokens | 24049281 | 76 days ago | IN | 0.00005 ETH | 0.00023358 | ||||
| Buy Tokens | 24048069 | 76 days ago | IN | 0.0001 ETH | 0.00001206 | ||||
| Buy Tokens | 24048001 | 76 days ago | IN | 0.0001 ETH | 0.00001842 | ||||
| Buy Tokens | 24048001 | 76 days ago | IN | 0.000005 ETH | 0.00001842 | ||||
| Buy Tokens | 24047901 | 77 days ago | IN | 0.0171 ETH | 0.00021126 | ||||
| Buy Tokens | 24043533 | 77 days ago | IN | 0.0024 ETH | 0.00010177 | ||||
| Buy Tokens | 24040928 | 77 days ago | IN | 0.152 ETH | 0.00023546 | ||||
| Buy Tokens | 24035929 | 78 days ago | IN | 0.0000018 ETH | 0.00000277 | ||||
| Buy Tokens | 24035833 | 78 days ago | IN | 0.0000018 ETH | 0.00000239 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24264289 | 46 days ago | 0.49999999 ETH | ||||
| Transfer | 24204851 | 55 days ago | 0.006 ETH | ||||
| Transfer | 24193248 | 56 days ago | 0.002 ETH | ||||
| Transfer | 24118962 | 67 days ago | 0.004 ETH | ||||
| Transfer | 24105040 | 69 days ago | 0.0032 ETH | ||||
| Transfer | 24083313 | 72 days ago | 0.003 ETH | ||||
| Transfer | 24054470 | 76 days ago | 0.004 ETH | ||||
| Transfer | 24053801 | 76 days ago | 0.00002 ETH | ||||
| Transfer | 24053744 | 76 days ago | 0.0005 ETH | ||||
| Transfer | 24053734 | 76 days ago | 0.0001 ETH | ||||
| Transfer | 24053703 | 76 days ago | 0.0001 ETH | ||||
| Transfer | 24052624 | 76 days ago | 0.0006 ETH | ||||
| Transfer | 24049281 | 76 days ago | 0.00005 ETH | ||||
| Transfer | 24048069 | 76 days ago | 0.0001 ETH | ||||
| Transfer | 24048001 | 76 days ago | 0.0001 ETH | ||||
| Transfer | 24048001 | 76 days ago | 0.000005 ETH | ||||
| Transfer | 24047901 | 77 days ago | 0.0171 ETH | ||||
| Transfer | 24043533 | 77 days ago | 0.0024 ETH | ||||
| Transfer | 24040928 | 77 days ago | 0.152 ETH | ||||
| Transfer | 24035929 | 78 days ago | 0.0000018 ETH | ||||
| Transfer | 24035833 | 78 days ago | 0.0000018 ETH | ||||
| Transfer | 24033684 | 78 days ago | 0.00106 ETH | ||||
| Transfer | 24033233 | 79 days ago | 0.0004 ETH | ||||
| Transfer | 24020042 | 80 days ago | 0.01 ETH | ||||
| Transfer | 24020028 | 80 days ago | 0.0068 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TokenICO_v2
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
/*
TokenICO_v2 (Hardened)
- Tiered presale stages (time windows + prices)
- Whitelist gating (for private stage)
- Instant token delivery on purchase
- Vesting (linear release) for team/advisors/allocations
- Simple staking pools with fixed APRs and lock durations
- Pause, emergency withdraw, rescue tokens, treasury & liquidity addresses
- Reentrancy guard + gas-conscious custom errors
*/
interface IERC20 {
function transfer(address recipient, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract TokenICO_v2 {
/* ========== STATE ========== */
address public owner;
address public saleToken;
address public treasury;
address public liquidityWallet;
bool public paused;
uint256 public tokensSold;
uint256 public totalPresaleETH;
// sale token decimals (fallback if ERC20 decimals() fails)
uint8 public saleTokenDecimals;
struct Stage {
string name;
uint256 start;
uint256 end;
uint256 price; // wei per token unit
bool whitelistOnly;
}
Stage[] public stages;
uint256 public currentStageIndex;
mapping(address => bool) public whitelist;
struct Vesting {
uint256 totalAmount;
uint256 released;
uint256 start;
uint256 duration;
}
mapping(address => Vesting) public vestings;
struct StakeInfo {
uint256 amount;
uint256 startTs;
uint256 lockDuration;
bool active;
}
mapping(address => StakeInfo[]) public stakes;
mapping(uint256 => uint256) public aprBasisPointsByLockSeconds;
/* ========== EVENTS ========== */
event StageAdded(uint256 indexed index, string name, uint256 start, uint256 end, uint256 price, bool whitelistOnly);
event StageUpdated(uint256 indexed index, string name, uint256 start, uint256 end, uint256 price, bool whitelistOnly);
event StageAdvanced(uint256 indexed newIndex);
event SaleTokenSet(address indexed token);
event WhitelistSet(address indexed account, bool allowed);
event TokensPurchased(address indexed buyer, uint256 ethPaid, uint256 tokensBought, uint256 stageIndex);
event VestingCreated(address indexed beneficiary, uint256 amount, uint256 start, uint256 duration);
event VestedReleased(address indexed beneficiary, uint256 amount);
event WithdrawETH(address indexed to, uint256 amount);
event RescueTokens(address indexed token, uint256 amount);
event Paused(address indexed by);
event Unpaused(address indexed by);
event Staked(address indexed staker, uint256 amount, uint256 lockDuration);
event Unstaked(address indexed staker, uint256 amount, uint256 reward);
/* ========== ERRORS ========== */
error OnlyOwner();
error InvalidAddress();
error InvalidPrice();
error SaleTokenNotSet();
error StageNotActive();
error NotWhitelisted();
error NoEthSent();
error TokenTransferFailed();
error EthTransferFailed();
error PausedError();
error VestingNotFound();
error NothingToRelease();
error NoTokensToRescue();
error StakeNotActive();
error ZeroAmount();
error CannotRescueSaleToken();
error ReentrantCall();
/* ========== MODIFIERS ========== */
modifier onlyOwner() {
if (msg.sender != owner) revert OnlyOwner();
_;
}
modifier whenNotPaused() {
if (paused) revert PausedError();
_;
}
/* ========== REENTRANCY GUARD ========== */
uint8 private _reentrancyStatus;
uint8 private constant _NOT_ENTERED = 1;
uint8 private constant _ENTERED = 2;
modifier nonReentrant() {
if (_reentrancyStatus == _ENTERED) revert ReentrantCall();
_reentrancyStatus = _ENTERED;
_;
_reentrancyStatus = _NOT_ENTERED;
}
/* ========== CONSTRUCTOR ========== */
constructor(address _treasury, address _liquidityWallet) {
owner = msg.sender;
if (_treasury == address(0) || _liquidityWallet == address(0)) revert InvalidAddress();
treasury = _treasury;
liquidityWallet = _liquidityWallet;
_reentrancyStatus = _NOT_ENTERED;
aprBasisPointsByLockSeconds[30 days] = 800;
aprBasisPointsByLockSeconds[90 days] = 1800;
aprBasisPointsByLockSeconds[180 days] = 2800;
}
/* ========== ADMIN / CONFIG ========== */
function setSaleToken(address _token) external onlyOwner {
if (_token == address(0)) revert InvalidAddress();
saleToken = _token;
// Try to fetch decimals (fallback to 18)
try IERC20(_token).decimals() returns (uint8 d) {
saleTokenDecimals = d;
} catch {
saleTokenDecimals = 18;
}
emit SaleTokenSet(_token);
}
function setSaleTokenDecimals(uint8 d) external onlyOwner {
saleTokenDecimals = d;
}
function setTreasury(address _treasury) external onlyOwner {
if (_treasury == address(0)) revert InvalidAddress();
treasury = _treasury;
}
function setLiquidityWallet(address _liquidity) external onlyOwner {
if (_liquidity == address(0)) revert InvalidAddress();
liquidityWallet = _liquidity;
}
function pause() external onlyOwner {
paused = true;
emit Paused(msg.sender);
}
function unpause() external onlyOwner {
paused = false;
emit Unpaused(msg.sender);
}
/* ========== STAGE MANAGEMENT ========== */
function addStage(
string calldata name,
uint256 start,
uint256 end,
uint256 priceWeiPerTokenUnit,
bool whitelistOnly
) external onlyOwner {
if (start >= end) revert InvalidPrice();
if (priceWeiPerTokenUnit == 0) revert InvalidPrice();
stages.push(Stage(name, start, end, priceWeiPerTokenUnit, whitelistOnly));
emit StageAdded(stages.length - 1, name, start, end, priceWeiPerTokenUnit, whitelistOnly);
}
function updateStage(
uint256 index,
string calldata name,
uint256 start,
uint256 end,
uint256 priceWeiPerTokenUnit,
bool whitelistOnly
) external onlyOwner {
require(index < stages.length, "invalid index");
if (start >= end) revert InvalidPrice();
if (priceWeiPerTokenUnit == 0) revert InvalidPrice();
stages[index] = Stage(name, start, end, priceWeiPerTokenUnit, whitelistOnly);
emit StageUpdated(index, name, start, end, priceWeiPerTokenUnit, whitelistOnly);
}
function advanceToStage(uint256 index) external onlyOwner {
require(index < stages.length, "invalid index");
currentStageIndex = index;
emit StageAdvanced(index);
}
// simplified: either active by time or manual override
function getCurrentStage() public view returns (uint256 index, Stage memory s, bool active) {
for (uint256 i = 0; i < stages.length; ++i) {
if (block.timestamp >= stages[i].start && block.timestamp <= stages[i].end) {
return (i, stages[i], true);
}
}
if (currentStageIndex < stages.length) {
return (currentStageIndex, stages[currentStageIndex], false);
}
return (type(uint256).max, Stage("", 0, 0, 0, false), false);
}
/* ========== WHITELIST ========== */
function setWhitelist(address[] calldata accounts, bool allowed) external onlyOwner {
for (uint256 i = 0; i < accounts.length; ++i) {
whitelist[accounts[i]] = allowed;
emit WhitelistSet(accounts[i], allowed);
}
}
/* ========== PURCHASE ========== */
function buyTokens() external payable whenNotPaused nonReentrant {
if (msg.value == 0) revert NoEthSent();
if (saleToken == address(0)) revert SaleTokenNotSet();
(uint256 idx, Stage memory s, bool activeByTime) = getCurrentStage();
if (idx == type(uint256).max) revert StageNotActive();
bool stageActive = activeByTime || (idx == currentStageIndex);
if (!stageActive) revert StageNotActive();
if (s.whitelistOnly && !whitelist[msg.sender]) revert NotWhitelisted();
if (s.price == 0) revert InvalidPrice();
IERC20 tokenContract = IERC20(saleToken);
uint8 decimals = saleTokenDecimals;
require(decimals <= 36, "decimals too large");
uint256 tokenAmount = (msg.value * (10 ** uint256(decimals))) / s.price;
if (tokenAmount == 0) revert ZeroAmount();
uint256 contractBal = tokenContract.balanceOf(address(this));
require(contractBal >= tokenAmount, "insufficient token balance");
tokensSold += tokenAmount;
totalPresaleETH += msg.value;
bool ok = tokenContract.transfer(msg.sender, tokenAmount);
if (!ok) revert TokenTransferFailed();
(bool sent, ) = treasury.call{value: msg.value}("");
if (!sent) revert EthTransferFailed();
emit TokensPurchased(msg.sender, msg.value, tokenAmount, idx);
}
/* ========== VESTING ========== */
function createVesting(address beneficiary, uint256 amount, uint256 start, uint256 duration) external onlyOwner {
if (beneficiary == address(0)) revert InvalidAddress();
if (amount == 0) revert ZeroAmount();
Vesting storage v = vestings[beneficiary];
if (v.totalAmount == 0) {
v.totalAmount = amount;
v.start = start;
v.duration = duration;
v.released = 0;
} else {
v.totalAmount += amount;
}
emit VestingCreated(beneficiary, amount, start, duration);
}
function releaseVested(address beneficiary) external nonReentrant {
if (saleToken == address(0)) revert SaleTokenNotSet();
Vesting storage v = vestings[beneficiary];
if (v.totalAmount == 0) revert VestingNotFound();
uint256 vested = _vestedAmount(v);
uint256 releasable = vested - v.released;
if (releasable == 0) revert NothingToRelease();
v.released += releasable;
IERC20 tokenContract = IERC20(saleToken);
bool ok = tokenContract.transfer(beneficiary, releasable);
if (!ok) revert TokenTransferFailed();
emit VestedReleased(beneficiary, releasable);
}
function _vestedAmount(Vesting memory v) internal view returns (uint256) {
if (block.timestamp < v.start) return 0;
if (block.timestamp >= v.start + v.duration) return v.totalAmount;
uint256 timePassed = block.timestamp - v.start;
return (v.totalAmount * timePassed) / v.duration;
}
/* ========== STAKING ========== */
function stakeTokens(uint256 amount, uint256 lockDuration) external whenNotPaused nonReentrant {
if (saleToken == address(0)) revert SaleTokenNotSet();
if (amount == 0) revert ZeroAmount();
uint256 aprBp = aprBasisPointsByLockSeconds[lockDuration];
require(aprBp > 0, "invalid lock duration");
IERC20 tokenContract = IERC20(saleToken);
bool ok = tokenContract.transferFrom(msg.sender, address(this), amount);
if (!ok) revert TokenTransferFailed();
stakes[msg.sender].push(StakeInfo(amount, block.timestamp, lockDuration, true));
emit Staked(msg.sender, amount, lockDuration);
}
function unstake(uint256 stakeIndex) external whenNotPaused nonReentrant {
if (saleToken == address(0)) revert SaleTokenNotSet();
StakeInfo storage si = stakes[msg.sender][stakeIndex];
if (!si.active) revert StakeNotActive();
require(block.timestamp >= si.startTs + si.lockDuration, "stake locked");
uint256 principal = si.amount;
uint256 aprBp = aprBasisPointsByLockSeconds[si.lockDuration];
uint256 reward = (principal * aprBp * si.lockDuration) / (365 days * 10000);
si.active = false;
IERC20 tokenContract = IERC20(saleToken);
uint256 contractBal = tokenContract.balanceOf(address(this));
require(contractBal >= principal + reward, "insufficient reward balance");
bool ok1 = tokenContract.transfer(msg.sender, principal);
if (!ok1) revert TokenTransferFailed();
bool ok2 = tokenContract.transfer(msg.sender, reward);
if (!ok2) revert TokenTransferFailed();
emit Unstaked(msg.sender, principal, reward);
}
function transferOwnership(address newOwner) external onlyOwner {
if (newOwner == address(0)) revert InvalidAddress();
owner = newOwner;
}
/* ========== OWNER UTILITIES ========== */
function withdrawETH(uint256 amount, address to) external onlyOwner nonReentrant {
if (to == address(0)) revert InvalidAddress();
require(address(this).balance >= amount, "insufficient ETH");
(bool sent, ) = to.call{value: amount}("");
if (!sent) revert EthTransferFailed();
emit WithdrawETH(to, amount);
}
function rescueTokens(address tokenAddress) external onlyOwner nonReentrant {
if (tokenAddress == saleToken) revert CannotRescueSaleToken();
IERC20 tokenContract = IERC20(tokenAddress);
uint256 bal = tokenContract.balanceOf(address(this));
if (bal == 0) revert NoTokensToRescue();
bool ok = tokenContract.transfer(owner, bal);
if (!ok) revert TokenTransferFailed();
emit RescueTokens(tokenAddress, bal);
}
/* ========== VIEW HELPERS ========== */
function stagesLength() external view returns (uint256) {
return stages.length;
}
function getStage(uint256 index) external view returns (Stage memory) {
return stages[index];
}
function getVestedReleasable(address beneficiary) external view returns (uint256) {
Vesting memory v = vestings[beneficiary];
if (v.totalAmount == 0) return 0;
uint256 vested = _vestedAmount(v);
if (vested <= v.released) return 0;
return vested - v.released;
}
/* ========== FALLBACK / RECEIVE ========== */
receive() external payable {}
fallback() external payable {}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"viaIR": true,
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_liquidityWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CannotRescueSaleToken","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidPrice","type":"error"},{"inputs":[],"name":"NoEthSent","type":"error"},{"inputs":[],"name":"NoTokensToRescue","type":"error"},{"inputs":[],"name":"NotWhitelisted","type":"error"},{"inputs":[],"name":"NothingToRelease","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"PausedError","type":"error"},{"inputs":[],"name":"ReentrantCall","type":"error"},{"inputs":[],"name":"SaleTokenNotSet","type":"error"},{"inputs":[],"name":"StageNotActive","type":"error"},{"inputs":[],"name":"StakeNotActive","type":"error"},{"inputs":[],"name":"TokenTransferFailed","type":"error"},{"inputs":[],"name":"VestingNotFound","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RescueTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"SaleTokenSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"bool","name":"whitelistOnly","type":"bool"}],"name":"StageAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newIndex","type":"uint256"}],"name":"StageAdvanced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"bool","name":"whitelistOnly","type":"bool"}],"name":"StageUpdated","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":"lockDuration","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethPaid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensBought","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stageIndex","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"}],"name":"Unpaused","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":"reward","type":"uint256"}],"name":"Unstaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"VestedReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"VestingCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"WhitelistSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawETH","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"priceWeiPerTokenUnit","type":"uint256"},{"internalType":"bool","name":"whitelistOnly","type":"bool"}],"name":"addStage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"advanceToStage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"aprBasisPointsByLockSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"createVesting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStageIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentStage","outputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"whitelistOnly","type":"bool"}],"internalType":"struct TokenICO_v2.Stage","name":"s","type":"tuple"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getStage","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"whitelistOnly","type":"bool"}],"internalType":"struct TokenICO_v2.Stage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getVestedReleasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"releaseVested","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleTokenDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidity","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setSaleToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"d","type":"uint8"}],"name":"setSaleTokenDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stages","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"whitelistOnly","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stagesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockDuration","type":"uint256"}],"name":"stakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"startTs","type":"uint256"},{"internalType":"uint256","name":"lockDuration","type":"uint256"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPresaleETH","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":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"stakeIndex","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"priceWeiPerTokenUnit","type":"uint256"},{"internalType":"bool","name":"whitelistOnly","type":"bool"}],"name":"updateStage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vestings","outputs":[{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"released","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080346200010957620023aa90601f38839003908101601f19168201906001600160401b038211838310176200010e578083916040958694855283398101031262000109576200005d6020620000558362000124565b920162000124565b600080546001600160a01b031990811633178255909290916001600160a01b0391821680158015620000fe575b620000ed57918391610af095938795600254161760025516906003541617600355600160ff19600d541617600d5562278d008152600c602052610320828220556276a70081526107088282205562ed4e00815220555161227090816200013a8239f35b855163e6c4247b60e01b8152600490fd5b50828216156200008a565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001095756fe6080604081815260048036101561001e575b505050361561001c57005b005b600092833560e01c908162ae3bf8146118e55750806302a9e714146118c35780630665a06f146117ca5780630de46f851461176957806323ec65441461173c578063296f0a0c146116e95780632e17de78146113dd5780632e3250201461139357806336118b521461127f57806338fa4029146112605780633b7b6188146110205780633c271a0514610f135780633f4ba83a14610eba5780634069925a14610d33578063518ab2a814610d16578063584b62a114610c9f5780635c975abb14610c7857806361d027b314610c4f5780636d5fbc1a14610c3057806374f253ad14610bef578063792c02ea14610bd05780637ee837f214610ba95780638456cb5914610b3d578063845ddcb214610ac15780638da5cb5b14610a995780639b19251a14610a5b5780639f95b85b14610949578063a29f481c14610855578063acc8713414610705578063d0febe4c14610375578063d46980161461034c578063daf49863146102f2578063e985e367146102c5578063eedbe31d1461027f578063f0f442601461021c5763f2fde38b036100115734610218576020366003190112610218576101cb611a65565b835491906001600160a01b0390818416330361020857169283156101fb5750506001600160a01b03191617815580f35b5163e6c4247b60e01b8152fd5b8451635fc483c560e01b81528390fd5b8280fd5b503461021857602036600319011261021857610236611a65565b83546001600160a01b0391908216330361026f57169182156101fb5750506bffffffffffffffffffffffff60a01b600254161760025580f35b8351635fc483c560e01b81528390fd5b8284346102c257806003193601126102c2575061029a611fd9565b90926102b781519485948552606060208601526060850190611ac0565b911515908301520390f35b80fd5b5050346102ee57816003193601126102ee5760015490516001600160a01b039091168152602090f35b5080fd5b5050346102ee5760203660031901126102ee5760809181906001600160a01b0361031a611a65565b168152600a60205220908154916001810154916003600283015492015492815194855260208501528301526060820152f35b5050346102ee57816003193601126102ee5760035490516001600160a01b039091168152602090f35b508290816003193601126102ee5760ff60035460a01c166106f757600d5490600260ff8316146106e95760ff19918216600217600d5534156106db576001546001600160a01b03949085169182156106cd576103cf611fd9565b91979160001989146106bd5780156106b2575b156106a257608081015115158061068c575b61067c5760600180511561066d5760ff600654166024811161063557604d8111610622579061042961043192600a0a346120de565b9051906120f1565b9384156106125783516370a0823160e01b81523084820152602091908281602481855afa908115610608579087918a916105d3575b501061059057610477868554612111565b845561048534600554612111565b600555845163a9059cbb60e01b815233858201908152602081018890529091839183919082908c90829060400103925af1918215610586578892610559575b50501561054a5785808080933490600254165af16104e0612136565b501561053c575061052e600194957f0d1a0d5e3d583a0e92588799dd06e50fd78c07daf05f0cc06d7b848b1ca445f19251918291339534846040919493926060820195825260208201520152565b0390a2600d541617600d5580f35b9051630db2c7f160e31b8152fd5b50905163022e258160e11b8152fd5b6105789250803d1061057f575b6105708183611bf5565b81019061211e565b88806104c4565b503d610566565b85513d8a823e3d90fd5b845162461bcd60e51b8152808501839052601a60248201527f696e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606490fd5b809250848092503d8311610601575b6105ec8183611bf5565b810103126105fd578690518b610466565b8880fd5b503d6105e2565b86513d8b823e3d90fd5b8351631f2a200560e01b81528390fd5b634e487b7160e01b885260118452602488fd5b845162461bcd60e51b81526020818601526012602482015271646563696d616c7320746f6f206c6172676560701b6044820152606490fd5b835162bfc92160e01b81528390fd5b8351630b094f2760e31b81528390fd5b50338752600960205260ff8488205416156103f4565b8351630adfa6c760e11b81528390fd5b5060085488146103e2565b8451630adfa6c760e11b81528490fd5b905163a327f80560e01b8152fd5b835163717e6b7b60e01b8152fd5b83516306fda65d60e31b8152fd5b8251633b3b4caf60e21b8152fd5b509190346102ee5760a03660031901126102ee57823567ffffffffffffffff8111610218576107379036908501611cbd565b906084356064356044356024358315158085036105fd5788546001600160a01b0316330361084557828210156108365783156108365787519061077982611bd9565b610784368989611d07565b825282602083015283898301528460608301526080820152600754600160401b81101561082357906107bf8260016107c59401600755611b32565b90611d3e565b600754600019810197908811610810579161080a93917feb0d5275e803c6977d036ffd761c12dfb8c998285ab588f02a4a7c6f266c1fb2979695935196879687611ed5565b0390a280f35b634e487b7160e01b895260118a52602489fd5b634e487b7160e01b8a5260418b5260248afd5b875162bfc92160e01b81528a90fd5b8751635fc483c560e01b81528a90fd5b50346102185760203660031901126102185761086f611a65565b83546001600160a01b0391908216330361026f57169182156101fb57600180546001600160a01b031916841790555163313ce56760e01b815290602090829081855afa839181610908575b506108f55750601260ff1960065416176006555b7f3f8bb5f6e8ecfb5425a48c996d20089aff3396b3c168c13403c3fa3996f70a028280a280f35b60ff1660ff1960065416176006556108ce565b9091506020813d8211610941575b8161092360209383611bf5565b8101031261093d575160ff8116810361093d5790386108ba565b8380fd5b3d9150610916565b50346102185760c03660031901126102185780359160243567ffffffffffffffff8111610a575761097d9036908401611cbd565b929091604435606435906084359260a4359485151590818703610a53578a546001600160a01b03163303610a45576109b86007548b10611f1a565b84841015610a38578515610a3857509181610a2e61080a96947f55cda0750564d4b34cc79fdda191a9b2fd541a8d2ff32e830fceed07ca540ff49a999896945190610a0282611bd9565b610a0d368c8c611d07565b8252846020830152858483015286606083015260808201526107bf8c611b32565b5196879687611ed5565b825162bfc92160e01b8152fd5b8251635fc483c560e01b8152fd5b8a80fd5b8480fd5b5050346102ee5760203660031901126102ee5760209160ff9082906001600160a01b03610a86611a65565b1681526009855220541690519015158152f35b5050346102ee57816003193601126102ee57905490516001600160a01b039091168152602090f35b5034610218576020366003190112610218578035926007548410156102c25750610aed610b2493611b32565b5091610af883611c17565b9260018101549260ff60028301549160038401549301541692805196879660a0885260a0880190611a80565b9460208701528501526060840152151560808301520390f35b50903461021857826003193601126102185782546001600160a01b03163303610b9c576003805460ff60a01b1916600160a01b17905582337f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2588280a280f35b51635fc483c560e01b8152fd5b5034610218576020366003190112610218576020928291358152600c845220549051908152f35b5050346102ee57816003193601126102ee576020906007549051908152f35b50346102185760203660031901126102185780359160ff831680930361093d5783546001600160a01b03163303610b9c57505060ff19600654161760065580f35b5050346102ee57816003193601126102ee576020906005549051908152f35b5050346102ee57816003193601126102ee5760025490516001600160a01b039091168152602090f35b5050346102ee57816003193601126102ee5760209060ff60035460a01c1690519015158152f35b5050346102ee57806003193601126102ee57610cb9611a65565b6001600160a01b03168252600b602052808220805460243593908410156102c25750608092610ce791611b00565b509081549160018101549160ff6003600284015493015416928151948552602085015283015215156060820152f35b503461021857826003193601126102185760209250549051908152f35b509190346102ee576020928360031936011261021857610d51611a65565b90600d5492600260ff851614610ead5760ff19938416600217600d556001546001600160a01b0392908316156106cd5782841693848752600a885282872093845415610e9d576001610daa610da587612166565b612198565b9501610db881548097611eb2565b958615610e8d57928a928792610dd184610e0897612111565b905560015416908a875180968195829463a9059cbb60e01b84528a840160209093929193604081019460018060a01b031681520152565b03925af1908115610e83578791610e66575b5015610e585750947fb3eed180c840f385759bc64a7a3d431d4b2843d2e3d003d8a6c6f53148094d26916001959651908152a2600d541617600d5580f35b905163022e258160e11b8152fd5b610e7d9150883d8a1161057f576105708183611bf5565b38610e1a565b83513d89823e3d90fd5b855163b10205ed60e01b81528590fd5b835163e146a52b60e01b81528390fd5b516306fda65d60e31b8152fd5b50903461021857826003193601126102185782546001600160a01b03163303610b9c576003805460ff60a01b1916905582337f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa8280a280f35b509034610218578060031936011261021857813567ffffffffffffffff92838211610a575736602383011215610a575781810135938411610a57576024820191602436918660051b010111610a5757602435938415159283860361101c5786546001600160a01b0393908416330361100e5750865b828110610f93578780f35b8084610fab610fa66110099487876120ba565b6120ca565b168952602060098152610fcc89898c209060ff801983541691151516179055565b7f0aa5ec5ffdc7f6f9c4d0dded489d7450297155cb2f71cb771e02427f7dff4f5186610ffc610fa68589896120ba565b16918951898152a2611f82565b610f88565b8551635fc483c560e01b8152fd5b8680fd5b509190346102ee57806003193601126102ee5782356024359160ff60035460a01c1661125157600d5492600260ff8516146112415760ff19938416600217600d556001546001600160a01b0316801561123157831561122157818652602090600c825283872054156111e65781879160648651809481936323b872dd60e01b83528d33908401523060248401528a60448401525af19081156111dc5787916111bf575b50156111af57338652600b81528286208351906110df82611ba7565b85825282820142815285830190858252606084019260018452805490600160401b82101561119c579061111791600182018155611b00565b94909461118a5760019998979593611174937f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90989693600393518555518c85015551600284015551151591019060ff801983541691151516179055565b82519485528401523392a2600d541617600d5580f35b634e487b7160e01b8b528a8c5260248bfd5b634e487b7160e01b8c5260418d5260248cfd5b825163022e258160e11b81528790fd5b6111d69150823d841161057f576105708183611bf5565b386110c3565b84513d89823e3d90fd5b835162461bcd60e51b8152808901839052601560248201527434b73b30b634b2103637b1b590323ab930ba34b7b760591b6044820152606490fd5b8251631f2a200560e01b81528790fd5b825163a327f80560e01b81528790fd5b81516306fda65d60e31b81528690fd5b51633b3b4caf60e21b81528490fd5b5050346102ee57816003193601126102ee576020906008549051908152f35b509190346102ee57806003193601126102ee57823592602435916001600160a01b03808416929083850361138f57855416330361138157600d5493600260ff8616146113725760ff19948516600217600d5583156113635786471061132d578580808981945af16112ee612136565b501561053c57506020600194957f566e45b1c8057e725bf62796a7f1d37ae294393cab069725a09daddd1af98b799251908152a2600d541617600d5580f35b506020606492519162461bcd60e51b8352820152601060248201526f0d2dce6eaccccd2c6d2cadce8408aa8960831b6044820152fd5b50905163e6c4247b60e01b8152fd5b5090516306fda65d60e31b8152fd5b9051635fc483c560e01b8152fd5b8580fd5b5091346102c25760203660031901126102c257506113c66113c06113d9936113b9611f56565b5035611b32565b50611f91565b9051918291602083526020830190611ac0565b0390f35b508290346102ee57602090816003193601126102185760ff60035460a01c166116db57600d5491600260ff8416146116cc5760ff19928316600217600d556001546001600160a01b0391908216156116bc57338552600b81526114438335878720611b00565b5092600384019283549360ff8516156116ac5760018601549561146b60028201548098612111565b421061167a5764496cebb80061149789925498808c52600c88526114928d8d20548b6120de565b6120de565b04951690556001541687516370a0823160e01b815230838201528381602481855afa90811561167057889161163f575b506114d28587612111565b116115fd57875163a9059cbb60e01b808252338483019081526020810188905290919085908290819060400103818c875af19081156115f35789916115d6575b50156115c657885190815233838201908152602081018690529091849183919082908b90829060400103925af19081156115bc57879161159f575b50156115915750947f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e916001959682519485528401523392a2600d541617600d5580f35b865163022e258160e11b8152fd5b6115b69150833d851161057f576105708183611bf5565b8861154d565b88513d89823e3d90fd5b885163022e258160e11b81528390fd5b6115ed9150853d871161057f576105708183611bf5565b8a611512565b8a513d8b823e3d90fd5b5060649187519162461bcd60e51b8352820152601b60248201527f696e73756666696369656e74207265776172642062616c616e636500000000006044820152fd5b90508381813d8311611669575b6116568183611bf5565b810103126116655751896114c7565b8780fd5b503d61164c565b89513d8a823e3d90fd5b895162461bcd60e51b8152808501869052600c60248201526b1cdd185ad9481b1bd8dad95960a21b6044820152606490fd5b885163586ea33760e11b81528390fd5b855163a327f80560e01b81528390fd5b5083516306fda65d60e31b8152fd5b8351633b3b4caf60e21b8152fd5b503461021857602036600319011261021857611703611a65565b83546001600160a01b0391908216330361026f57169182156101fb5750506bffffffffffffffffffffffff60a01b600354161760035580f35b5050346102ee5760203660031901126102ee5760209061176261175d611a65565b6121e7565b9051908152f35b5034610218576020366003190112610218578254813592906001600160a01b03163303610b9c57505061179f6007548210611f1a565b806008557fd87d457666088f7f0056032aa92e6fd462f4ec64661117a66049cd349a0cae148280a280f35b509034610218576080366003190112610218576117e5611a65565b83546044359260243592606435926001600160a01b039190821633036118b357169485156118a557831561189757507f0d6c6184269aab4c45eaecc5cc21da2c4bc93cf48439a2aea39245d8e66e3d1b93929161080a91868852600a602052878181208581548015600014611885575090600191815587600282015584600382015501555b51938493846040919493926060820195825260208201520152565b611890929350612111565b905561186a565b9051631f2a200560e01b8152fd5b905163e6c4247b60e01b8152fd5b8251635fc483c560e01b81528790fd5b5050346102ee57816003193601126102ee5760209060ff600654169051908152f35b84838534610218576020938460031936011261093d57611903611a65565b9160018060a01b03938486541692833303611a595750600d5494600260ff8716146113725760ff19958616600217600d5560015494811694168414611a4b5781516370a0823160e01b81523082820152928784602481885afa938415610e83578794611a1c575b508315611a0d57825163a9059cbb60e01b81526001600160a01b039091168282019081526020810185905288908290819060400103818a895af1908115610e835787916119f0575b5015610e585750947fd13ac9f3bb7dbb7b11f27d03939dd67fd3c8ccab936545d44494fe995975471e916001959651908152a2600d541617600d5580f35b611a079150883d8a1161057f576105708183611bf5565b886119b2565b5090516362f3ba9760e01b8152fd5b9093508781813d8311611a44575b611a348183611bf5565b8101031261101c5751928861196a565b503d611a2a565b905163ad2b859d60e01b8152fd5b635fc483c560e01b8152fd5b600435906001600160a01b0382168203611a7b57565b600080fd5b919082519283825260005b848110611aac575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611a8b565b90608080611ad7845160a0855260a0850190611a80565b936020810151602085015260408101516040850152606081015160608501520151151591015290565b8054821015611b1c5760005260206000209060021b0190600090565b634e487b7160e01b600052603260045260246000fd5b600754811015611b1c576005906007600052027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880190600090565b90600182811c92168015611b9d575b6020831014611b8757565b634e487b7160e01b600052602260045260246000fd5b91607f1691611b7c565b6080810190811067ffffffffffffffff821117611bc357604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff821117611bc357604052565b90601f8019910116810190811067ffffffffffffffff821117611bc357604052565b9060405191826000825492611c2b84611b6d565b908184526001948581169081600014611c9a5750600114611c57575b5050611c5592500383611bf5565b565b9093915060005260209081600020936000915b818310611c82575050611c5593508201013880611c47565b85548884018501529485019487945091830191611c6a565b915050611c5594506020925060ff191682840152151560051b8201013880611c47565b9181601f84011215611a7b5782359167ffffffffffffffff8311611a7b5760208381860195010111611a7b57565b67ffffffffffffffff8111611bc357601f01601f191660200190565b929192611d1382611ceb565b91611d216040519384611bf5565b829481845281830111611a7b578281602093846000960137010152565b90929192611e9c57825192835167ffffffffffffffff8111611bc357611d648354611b6d565b601f8111611e54575b506020601f8211600114611de5579181608092600494611c559798600092611dda575b50508160011b916000199060031b1c19161784555b6020810151600185015560408101516002850155606081015160038501550151151591019060ff801983541691151516179055565b015190503880611d90565b601f1982169584600052816000209660005b818110611e3c575092611c559697600495936001938360809710611e23575b505050811b018455611da5565b015160001960f88460031b161c19169055388080611e16565b83830151895560019098019760209384019301611df7565b600084815260208120601f840160051c81019260208510611e92575b601f0160051c01915b828110611e87575050611d6d565b818155600101611e79565b9092508290611e70565b634e487b7160e01b600052600060045260246000fd5b91908203918211611ebf57565b634e487b7160e01b600052601160045260246000fd5b94918060c091608096939998959960a089528160a08a0152838901376000828289010152601f8019910116860101966020860152604085015260608401521515910152565b15611f2157565b60405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606490fd5b60405190611f6382611bd9565b6000608083606081528260208201528260408201528260608201520152565b6000198114611ebf5760010190565b90604051611f9e81611bd9565b608060ff60048395611faf81611c17565b85526001810154602086015260028101546040860152600381015460608601520154161515910152565b611fe1611f56565b5060075460005b818110612064575060085490811061205157506040519061200882611bd9565b6040516020810181811067ffffffffffffffff821117611bc357604052600081528252600060208301526000604083015260006060830152600060808301526000199190600090565b9061205e6113c083611b32565b90600090565b61206d81611b32565b50600180910154421015806120a3575b612090575061208b90611f82565b611fe8565b91509161209f6113c084611b32565b9190565b5060026120af83611b32565b50015442111561207d565b9190811015611b1c5760051b0190565b356001600160a01b0381168103611a7b5790565b81810292918115918404141715611ebf57565b81156120fb570490565b634e487b7160e01b600052601260045260246000fd5b91908201809211611ebf57565b90816020910312611a7b57518015158103611a7b5790565b3d15612161573d9061214782611ceb565b916121556040519384611bf5565b82523d6000602084013e565b606090565b9060405161217381611ba7565b6060600382948054845260018101546020850152600281015460408501520154910152565b604081018051908142106121df576121b66060840192835190612111565b4210156121d9576121d6926121cf610429925142611eb2565b90516120de565b90565b50505190565b505050600090565b6001600160a01b03166000908152600a6020526040902061220790612166565b80511561223457602061221982612198565b9101518082111561222d576121d691611eb2565b5050600090565b5060009056fea26469706673582212208e631255f69406520e92a561806ac93d966174531bf46f12cbe23618415e2b3a64736f6c63430008130033000000000000000000000000fe34d732f689f109342981cc37d45a16754e59960000000000000000000000000e2c415ec91f5e99980dffc9012d90eff19b2681
Deployed Bytecode
0x6080604081815260048036101561001e575b505050361561001c57005b005b600092833560e01c908162ae3bf8146118e55750806302a9e714146118c35780630665a06f146117ca5780630de46f851461176957806323ec65441461173c578063296f0a0c146116e95780632e17de78146113dd5780632e3250201461139357806336118b521461127f57806338fa4029146112605780633b7b6188146110205780633c271a0514610f135780633f4ba83a14610eba5780634069925a14610d33578063518ab2a814610d16578063584b62a114610c9f5780635c975abb14610c7857806361d027b314610c4f5780636d5fbc1a14610c3057806374f253ad14610bef578063792c02ea14610bd05780637ee837f214610ba95780638456cb5914610b3d578063845ddcb214610ac15780638da5cb5b14610a995780639b19251a14610a5b5780639f95b85b14610949578063a29f481c14610855578063acc8713414610705578063d0febe4c14610375578063d46980161461034c578063daf49863146102f2578063e985e367146102c5578063eedbe31d1461027f578063f0f442601461021c5763f2fde38b036100115734610218576020366003190112610218576101cb611a65565b835491906001600160a01b0390818416330361020857169283156101fb5750506001600160a01b03191617815580f35b5163e6c4247b60e01b8152fd5b8451635fc483c560e01b81528390fd5b8280fd5b503461021857602036600319011261021857610236611a65565b83546001600160a01b0391908216330361026f57169182156101fb5750506bffffffffffffffffffffffff60a01b600254161760025580f35b8351635fc483c560e01b81528390fd5b8284346102c257806003193601126102c2575061029a611fd9565b90926102b781519485948552606060208601526060850190611ac0565b911515908301520390f35b80fd5b5050346102ee57816003193601126102ee5760015490516001600160a01b039091168152602090f35b5080fd5b5050346102ee5760203660031901126102ee5760809181906001600160a01b0361031a611a65565b168152600a60205220908154916001810154916003600283015492015492815194855260208501528301526060820152f35b5050346102ee57816003193601126102ee5760035490516001600160a01b039091168152602090f35b508290816003193601126102ee5760ff60035460a01c166106f757600d5490600260ff8316146106e95760ff19918216600217600d5534156106db576001546001600160a01b03949085169182156106cd576103cf611fd9565b91979160001989146106bd5780156106b2575b156106a257608081015115158061068c575b61067c5760600180511561066d5760ff600654166024811161063557604d8111610622579061042961043192600a0a346120de565b9051906120f1565b9384156106125783516370a0823160e01b81523084820152602091908281602481855afa908115610608579087918a916105d3575b501061059057610477868554612111565b845561048534600554612111565b600555845163a9059cbb60e01b815233858201908152602081018890529091839183919082908c90829060400103925af1918215610586578892610559575b50501561054a5785808080933490600254165af16104e0612136565b501561053c575061052e600194957f0d1a0d5e3d583a0e92588799dd06e50fd78c07daf05f0cc06d7b848b1ca445f19251918291339534846040919493926060820195825260208201520152565b0390a2600d541617600d5580f35b9051630db2c7f160e31b8152fd5b50905163022e258160e11b8152fd5b6105789250803d1061057f575b6105708183611bf5565b81019061211e565b88806104c4565b503d610566565b85513d8a823e3d90fd5b845162461bcd60e51b8152808501839052601a60248201527f696e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606490fd5b809250848092503d8311610601575b6105ec8183611bf5565b810103126105fd578690518b610466565b8880fd5b503d6105e2565b86513d8b823e3d90fd5b8351631f2a200560e01b81528390fd5b634e487b7160e01b885260118452602488fd5b845162461bcd60e51b81526020818601526012602482015271646563696d616c7320746f6f206c6172676560701b6044820152606490fd5b835162bfc92160e01b81528390fd5b8351630b094f2760e31b81528390fd5b50338752600960205260ff8488205416156103f4565b8351630adfa6c760e11b81528390fd5b5060085488146103e2565b8451630adfa6c760e11b81528490fd5b905163a327f80560e01b8152fd5b835163717e6b7b60e01b8152fd5b83516306fda65d60e31b8152fd5b8251633b3b4caf60e21b8152fd5b509190346102ee5760a03660031901126102ee57823567ffffffffffffffff8111610218576107379036908501611cbd565b906084356064356044356024358315158085036105fd5788546001600160a01b0316330361084557828210156108365783156108365787519061077982611bd9565b610784368989611d07565b825282602083015283898301528460608301526080820152600754600160401b81101561082357906107bf8260016107c59401600755611b32565b90611d3e565b600754600019810197908811610810579161080a93917feb0d5275e803c6977d036ffd761c12dfb8c998285ab588f02a4a7c6f266c1fb2979695935196879687611ed5565b0390a280f35b634e487b7160e01b895260118a52602489fd5b634e487b7160e01b8a5260418b5260248afd5b875162bfc92160e01b81528a90fd5b8751635fc483c560e01b81528a90fd5b50346102185760203660031901126102185761086f611a65565b83546001600160a01b0391908216330361026f57169182156101fb57600180546001600160a01b031916841790555163313ce56760e01b815290602090829081855afa839181610908575b506108f55750601260ff1960065416176006555b7f3f8bb5f6e8ecfb5425a48c996d20089aff3396b3c168c13403c3fa3996f70a028280a280f35b60ff1660ff1960065416176006556108ce565b9091506020813d8211610941575b8161092360209383611bf5565b8101031261093d575160ff8116810361093d5790386108ba565b8380fd5b3d9150610916565b50346102185760c03660031901126102185780359160243567ffffffffffffffff8111610a575761097d9036908401611cbd565b929091604435606435906084359260a4359485151590818703610a53578a546001600160a01b03163303610a45576109b86007548b10611f1a565b84841015610a38578515610a3857509181610a2e61080a96947f55cda0750564d4b34cc79fdda191a9b2fd541a8d2ff32e830fceed07ca540ff49a999896945190610a0282611bd9565b610a0d368c8c611d07565b8252846020830152858483015286606083015260808201526107bf8c611b32565b5196879687611ed5565b825162bfc92160e01b8152fd5b8251635fc483c560e01b8152fd5b8a80fd5b8480fd5b5050346102ee5760203660031901126102ee5760209160ff9082906001600160a01b03610a86611a65565b1681526009855220541690519015158152f35b5050346102ee57816003193601126102ee57905490516001600160a01b039091168152602090f35b5034610218576020366003190112610218578035926007548410156102c25750610aed610b2493611b32565b5091610af883611c17565b9260018101549260ff60028301549160038401549301541692805196879660a0885260a0880190611a80565b9460208701528501526060840152151560808301520390f35b50903461021857826003193601126102185782546001600160a01b03163303610b9c576003805460ff60a01b1916600160a01b17905582337f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2588280a280f35b51635fc483c560e01b8152fd5b5034610218576020366003190112610218576020928291358152600c845220549051908152f35b5050346102ee57816003193601126102ee576020906007549051908152f35b50346102185760203660031901126102185780359160ff831680930361093d5783546001600160a01b03163303610b9c57505060ff19600654161760065580f35b5050346102ee57816003193601126102ee576020906005549051908152f35b5050346102ee57816003193601126102ee5760025490516001600160a01b039091168152602090f35b5050346102ee57816003193601126102ee5760209060ff60035460a01c1690519015158152f35b5050346102ee57806003193601126102ee57610cb9611a65565b6001600160a01b03168252600b602052808220805460243593908410156102c25750608092610ce791611b00565b509081549160018101549160ff6003600284015493015416928151948552602085015283015215156060820152f35b503461021857826003193601126102185760209250549051908152f35b509190346102ee576020928360031936011261021857610d51611a65565b90600d5492600260ff851614610ead5760ff19938416600217600d556001546001600160a01b0392908316156106cd5782841693848752600a885282872093845415610e9d576001610daa610da587612166565b612198565b9501610db881548097611eb2565b958615610e8d57928a928792610dd184610e0897612111565b905560015416908a875180968195829463a9059cbb60e01b84528a840160209093929193604081019460018060a01b031681520152565b03925af1908115610e83578791610e66575b5015610e585750947fb3eed180c840f385759bc64a7a3d431d4b2843d2e3d003d8a6c6f53148094d26916001959651908152a2600d541617600d5580f35b905163022e258160e11b8152fd5b610e7d9150883d8a1161057f576105708183611bf5565b38610e1a565b83513d89823e3d90fd5b855163b10205ed60e01b81528590fd5b835163e146a52b60e01b81528390fd5b516306fda65d60e31b8152fd5b50903461021857826003193601126102185782546001600160a01b03163303610b9c576003805460ff60a01b1916905582337f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa8280a280f35b509034610218578060031936011261021857813567ffffffffffffffff92838211610a575736602383011215610a575781810135938411610a57576024820191602436918660051b010111610a5757602435938415159283860361101c5786546001600160a01b0393908416330361100e5750865b828110610f93578780f35b8084610fab610fa66110099487876120ba565b6120ca565b168952602060098152610fcc89898c209060ff801983541691151516179055565b7f0aa5ec5ffdc7f6f9c4d0dded489d7450297155cb2f71cb771e02427f7dff4f5186610ffc610fa68589896120ba565b16918951898152a2611f82565b610f88565b8551635fc483c560e01b8152fd5b8680fd5b509190346102ee57806003193601126102ee5782356024359160ff60035460a01c1661125157600d5492600260ff8516146112415760ff19938416600217600d556001546001600160a01b0316801561123157831561122157818652602090600c825283872054156111e65781879160648651809481936323b872dd60e01b83528d33908401523060248401528a60448401525af19081156111dc5787916111bf575b50156111af57338652600b81528286208351906110df82611ba7565b85825282820142815285830190858252606084019260018452805490600160401b82101561119c579061111791600182018155611b00565b94909461118a5760019998979593611174937f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90989693600393518555518c85015551600284015551151591019060ff801983541691151516179055565b82519485528401523392a2600d541617600d5580f35b634e487b7160e01b8b528a8c5260248bfd5b634e487b7160e01b8c5260418d5260248cfd5b825163022e258160e11b81528790fd5b6111d69150823d841161057f576105708183611bf5565b386110c3565b84513d89823e3d90fd5b835162461bcd60e51b8152808901839052601560248201527434b73b30b634b2103637b1b590323ab930ba34b7b760591b6044820152606490fd5b8251631f2a200560e01b81528790fd5b825163a327f80560e01b81528790fd5b81516306fda65d60e31b81528690fd5b51633b3b4caf60e21b81528490fd5b5050346102ee57816003193601126102ee576020906008549051908152f35b509190346102ee57806003193601126102ee57823592602435916001600160a01b03808416929083850361138f57855416330361138157600d5493600260ff8616146113725760ff19948516600217600d5583156113635786471061132d578580808981945af16112ee612136565b501561053c57506020600194957f566e45b1c8057e725bf62796a7f1d37ae294393cab069725a09daddd1af98b799251908152a2600d541617600d5580f35b506020606492519162461bcd60e51b8352820152601060248201526f0d2dce6eaccccd2c6d2cadce8408aa8960831b6044820152fd5b50905163e6c4247b60e01b8152fd5b5090516306fda65d60e31b8152fd5b9051635fc483c560e01b8152fd5b8580fd5b5091346102c25760203660031901126102c257506113c66113c06113d9936113b9611f56565b5035611b32565b50611f91565b9051918291602083526020830190611ac0565b0390f35b508290346102ee57602090816003193601126102185760ff60035460a01c166116db57600d5491600260ff8416146116cc5760ff19928316600217600d556001546001600160a01b0391908216156116bc57338552600b81526114438335878720611b00565b5092600384019283549360ff8516156116ac5760018601549561146b60028201548098612111565b421061167a5764496cebb80061149789925498808c52600c88526114928d8d20548b6120de565b6120de565b04951690556001541687516370a0823160e01b815230838201528381602481855afa90811561167057889161163f575b506114d28587612111565b116115fd57875163a9059cbb60e01b808252338483019081526020810188905290919085908290819060400103818c875af19081156115f35789916115d6575b50156115c657885190815233838201908152602081018690529091849183919082908b90829060400103925af19081156115bc57879161159f575b50156115915750947f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e916001959682519485528401523392a2600d541617600d5580f35b865163022e258160e11b8152fd5b6115b69150833d851161057f576105708183611bf5565b8861154d565b88513d89823e3d90fd5b885163022e258160e11b81528390fd5b6115ed9150853d871161057f576105708183611bf5565b8a611512565b8a513d8b823e3d90fd5b5060649187519162461bcd60e51b8352820152601b60248201527f696e73756666696369656e74207265776172642062616c616e636500000000006044820152fd5b90508381813d8311611669575b6116568183611bf5565b810103126116655751896114c7565b8780fd5b503d61164c565b89513d8a823e3d90fd5b895162461bcd60e51b8152808501869052600c60248201526b1cdd185ad9481b1bd8dad95960a21b6044820152606490fd5b885163586ea33760e11b81528390fd5b855163a327f80560e01b81528390fd5b5083516306fda65d60e31b8152fd5b8351633b3b4caf60e21b8152fd5b503461021857602036600319011261021857611703611a65565b83546001600160a01b0391908216330361026f57169182156101fb5750506bffffffffffffffffffffffff60a01b600354161760035580f35b5050346102ee5760203660031901126102ee5760209061176261175d611a65565b6121e7565b9051908152f35b5034610218576020366003190112610218578254813592906001600160a01b03163303610b9c57505061179f6007548210611f1a565b806008557fd87d457666088f7f0056032aa92e6fd462f4ec64661117a66049cd349a0cae148280a280f35b509034610218576080366003190112610218576117e5611a65565b83546044359260243592606435926001600160a01b039190821633036118b357169485156118a557831561189757507f0d6c6184269aab4c45eaecc5cc21da2c4bc93cf48439a2aea39245d8e66e3d1b93929161080a91868852600a602052878181208581548015600014611885575090600191815587600282015584600382015501555b51938493846040919493926060820195825260208201520152565b611890929350612111565b905561186a565b9051631f2a200560e01b8152fd5b905163e6c4247b60e01b8152fd5b8251635fc483c560e01b81528790fd5b5050346102ee57816003193601126102ee5760209060ff600654169051908152f35b84838534610218576020938460031936011261093d57611903611a65565b9160018060a01b03938486541692833303611a595750600d5494600260ff8716146113725760ff19958616600217600d5560015494811694168414611a4b5781516370a0823160e01b81523082820152928784602481885afa938415610e83578794611a1c575b508315611a0d57825163a9059cbb60e01b81526001600160a01b039091168282019081526020810185905288908290819060400103818a895af1908115610e835787916119f0575b5015610e585750947fd13ac9f3bb7dbb7b11f27d03939dd67fd3c8ccab936545d44494fe995975471e916001959651908152a2600d541617600d5580f35b611a079150883d8a1161057f576105708183611bf5565b886119b2565b5090516362f3ba9760e01b8152fd5b9093508781813d8311611a44575b611a348183611bf5565b8101031261101c5751928861196a565b503d611a2a565b905163ad2b859d60e01b8152fd5b635fc483c560e01b8152fd5b600435906001600160a01b0382168203611a7b57565b600080fd5b919082519283825260005b848110611aac575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611a8b565b90608080611ad7845160a0855260a0850190611a80565b936020810151602085015260408101516040850152606081015160608501520151151591015290565b8054821015611b1c5760005260206000209060021b0190600090565b634e487b7160e01b600052603260045260246000fd5b600754811015611b1c576005906007600052027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880190600090565b90600182811c92168015611b9d575b6020831014611b8757565b634e487b7160e01b600052602260045260246000fd5b91607f1691611b7c565b6080810190811067ffffffffffffffff821117611bc357604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff821117611bc357604052565b90601f8019910116810190811067ffffffffffffffff821117611bc357604052565b9060405191826000825492611c2b84611b6d565b908184526001948581169081600014611c9a5750600114611c57575b5050611c5592500383611bf5565b565b9093915060005260209081600020936000915b818310611c82575050611c5593508201013880611c47565b85548884018501529485019487945091830191611c6a565b915050611c5594506020925060ff191682840152151560051b8201013880611c47565b9181601f84011215611a7b5782359167ffffffffffffffff8311611a7b5760208381860195010111611a7b57565b67ffffffffffffffff8111611bc357601f01601f191660200190565b929192611d1382611ceb565b91611d216040519384611bf5565b829481845281830111611a7b578281602093846000960137010152565b90929192611e9c57825192835167ffffffffffffffff8111611bc357611d648354611b6d565b601f8111611e54575b506020601f8211600114611de5579181608092600494611c559798600092611dda575b50508160011b916000199060031b1c19161784555b6020810151600185015560408101516002850155606081015160038501550151151591019060ff801983541691151516179055565b015190503880611d90565b601f1982169584600052816000209660005b818110611e3c575092611c559697600495936001938360809710611e23575b505050811b018455611da5565b015160001960f88460031b161c19169055388080611e16565b83830151895560019098019760209384019301611df7565b600084815260208120601f840160051c81019260208510611e92575b601f0160051c01915b828110611e87575050611d6d565b818155600101611e79565b9092508290611e70565b634e487b7160e01b600052600060045260246000fd5b91908203918211611ebf57565b634e487b7160e01b600052601160045260246000fd5b94918060c091608096939998959960a089528160a08a0152838901376000828289010152601f8019910116860101966020860152604085015260608401521515910152565b15611f2157565b60405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606490fd5b60405190611f6382611bd9565b6000608083606081528260208201528260408201528260608201520152565b6000198114611ebf5760010190565b90604051611f9e81611bd9565b608060ff60048395611faf81611c17565b85526001810154602086015260028101546040860152600381015460608601520154161515910152565b611fe1611f56565b5060075460005b818110612064575060085490811061205157506040519061200882611bd9565b6040516020810181811067ffffffffffffffff821117611bc357604052600081528252600060208301526000604083015260006060830152600060808301526000199190600090565b9061205e6113c083611b32565b90600090565b61206d81611b32565b50600180910154421015806120a3575b612090575061208b90611f82565b611fe8565b91509161209f6113c084611b32565b9190565b5060026120af83611b32565b50015442111561207d565b9190811015611b1c5760051b0190565b356001600160a01b0381168103611a7b5790565b81810292918115918404141715611ebf57565b81156120fb570490565b634e487b7160e01b600052601260045260246000fd5b91908201809211611ebf57565b90816020910312611a7b57518015158103611a7b5790565b3d15612161573d9061214782611ceb565b916121556040519384611bf5565b82523d6000602084013e565b606090565b9060405161217381611ba7565b6060600382948054845260018101546020850152600281015460408501520154910152565b604081018051908142106121df576121b66060840192835190612111565b4210156121d9576121d6926121cf610429925142611eb2565b90516120de565b90565b50505190565b505050600090565b6001600160a01b03166000908152600a6020526040902061220790612166565b80511561223457602061221982612198565b9101518082111561222d576121d691611eb2565b5050600090565b5060009056fea26469706673582212208e631255f69406520e92a561806ac93d966174531bf46f12cbe23618415e2b3a64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fe34d732f689f109342981cc37d45a16754e59960000000000000000000000000e2c415ec91f5e99980dffc9012d90eff19b2681
-----Decoded View---------------
Arg [0] : _treasury (address): 0xFE34d732f689F109342981CC37d45A16754e5996
Arg [1] : _liquidityWallet (address): 0x0E2c415eC91f5E99980DfFC9012d90Eff19b2681
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000fe34d732f689f109342981cc37d45a16754e5996
Arg [1] : 0000000000000000000000000e2c415ec91f5e99980dffc9012d90eff19b2681
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.