Overview
AVAX Balance
AVAX Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 12,198 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Remove Investmen... | 29930546 | 711 days ago | IN | 0 AVAX | 0.00078047 | ||||
Claim Redeemable | 29916836 | 712 days ago | IN | 0 AVAX | 0.00075119 | ||||
Withdraw Investa... | 29916746 | 712 days ago | IN | 0 AVAX | 0.00063714 | ||||
Withdraw Investa... | 29916686 | 712 days ago | IN | 0 AVAX | 0.00063597 | ||||
Withdraw Investa... | 29916221 | 712 days ago | IN | 0 AVAX | 0.00062322 | ||||
Claim Redeemable | 29916214 | 712 days ago | IN | 0 AVAX | 0.00073477 | ||||
Remove Investmen... | 29916195 | 712 days ago | IN | 0 AVAX | 0.0007606 | ||||
Withdraw Investa... | 29916172 | 712 days ago | IN | 0 AVAX | 0.00061354 | ||||
Claim Redeemable | 11644501 | 1146 days ago | IN | 0 AVAX | 0.0091451 | ||||
Claim Redeemable | 11511875 | 1149 days ago | IN | 0 AVAX | 0.01619265 | ||||
Claim Redeemable | 10539753 | 1172 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 10042226 | 1183 days ago | IN | 0 AVAX | 0.00431569 | ||||
Claim Redeemable | 9776625 | 1190 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9660139 | 1192 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9535049 | 1195 days ago | IN | 0 AVAX | 0.00306182 | ||||
Claim Redeemable | 9511704 | 1196 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9492783 | 1196 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9417843 | 1198 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9405498 | 1198 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9376095 | 1199 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9339571 | 1200 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9304109 | 1200 days ago | IN | 0 AVAX | 0.00428655 | ||||
Claim Redeemable | 9295149 | 1201 days ago | IN | 0 AVAX | 0.00428655 | ||||
Invest | 9267764 | 1201 days ago | IN | 0 AVAX | 0.00181501 | ||||
Invest | 9264463 | 1201 days ago | IN | 0 AVAX | 0.00186272 |
Loading...
Loading
Contract Name:
FairPriceLaunch
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity Multiple files format)
// https://eips.ethereum.org/EIPS/eip-20 // SPDX-License-Identifier: MIT pragma solidity 0.7.5; import "./NRT.sol"; import "./ERC20.sol"; import "./OwnableBase.sol"; import "./SafeMath.sol"; //////////////////////////////////// // // Fair Price Launch Contract // Every gets the same price in the end // Users get issued a non-transferable token and redeem for the final token // //////////////////////////////////// contract FairPriceLaunch is OwnableBase { using SafeMath for uint256; address public fundsRedeemer; // The token used for contributions address public investToken; // The Non-transferable token used for sale, redeemable for Mag NRT public redeemableToken; //Limits uint256 public maxInvestAllowed; uint256 public minInvestAllowed; uint256 public maxInvestRemovablePerPeriod; uint256 public maxGlobalInvestAllowed; uint256 public maxRedeemableToIssue; //totals uint256 public totalGlobalInvested; uint256 public totalGlobalIssued; uint256 public totalInvestors; //TIMES // The time that sale will begin uint256 public launchStartTime; // length of sale period uint256 public saleDuration; // launchStartTime.add(sale) durations uint256 public launchEndTime; //The delay required between investment removal uint256 public investRemovalDelay; //Prices uint256 public startingPrice; uint256 public finalPrice; //toggles // sale has started bool public saleEnabled; bool public redeemEnabled; bool public finalized; //EVENTS event SaleEnabled(bool enabled, uint256 time); event RedeemEnabled(bool enabled, uint256 time); event Invest( address investor, uint256 amount, uint256 totalInvested, uint256 price ); event RemoveInvestment( address investor, uint256 amount, uint256 totalInvested, uint256 price ); event IssueNRT(address investor, uint256 amount); //Structs struct Withdrawal { uint256 timestamp; uint256 amount; } struct InvestorInfo { uint256 totalInvested; uint256 totalRedeemed; uint256 totalInvestableExchanged; Withdrawal[] withdrawHistory; bool hasClaimed; } mapping(address => InvestorInfo) public investorInfoMap; address[] public investorList; constructor( address _fundsRedeemer, address _investToken, uint256 _launchStartTime, uint256 _saleDuration, uint256 _investRemovalDelay, uint256 _maxInvestAllowed, uint256 _minInvestAllowed, uint256 _maxInvestRemovablePerPeriod, uint256 _maxGlobalInvestAllowed, uint256 _maxRedeemableToIssue, uint256 _startingPrice, address _redeemableToken ) { require( _launchStartTime > block.timestamp, "Start time must be in the future." ); require( _minInvestAllowed >= 0, "Min invest amount must not be negative" ); require(_startingPrice >= 0, "Starting price must not be negative"); require(_fundsRedeemer != address(0), "fundsRedeemer address is not set."); fundsRedeemer = _fundsRedeemer; investToken = _investToken; //times launchStartTime = _launchStartTime; require(_saleDuration < 4 days, "duration too long"); launchEndTime = _launchStartTime.add(_saleDuration); saleDuration = _saleDuration; investRemovalDelay = _investRemovalDelay; //limits maxInvestAllowed = _maxInvestAllowed; minInvestAllowed = _minInvestAllowed; maxGlobalInvestAllowed = _maxGlobalInvestAllowed; maxInvestRemovablePerPeriod = _maxInvestRemovablePerPeriod; maxRedeemableToIssue = _maxRedeemableToIssue; startingPrice = _startingPrice; //NRT is passed in as argument and this contract needs to be set as owner redeemableToken = NRT(_redeemableToken); saleEnabled = false; redeemEnabled = false; } //User functions /** @dev Invests the specified amoount of investToken */ function invest(uint256 amountToInvest) public { require(saleEnabled, "Sale is not enabled yet"); require(block.timestamp >= launchStartTime, "Sale has not started yet"); require(amountToInvest >= minInvestAllowed, "Invest amount too small"); require(!hasSaleEnded(), "Sale period has ended"); uint256 buffer = maxGlobalInvestAllowed.div(10000); require( totalGlobalInvested.add(amountToInvest) <= maxGlobalInvestAllowed + buffer, "Maximum Investments reached" ); InvestorInfo storage investor = investorInfoMap[msg.sender]; require( investor.totalInvested.add(amountToInvest) <= maxInvestAllowed, "Max individual investment reached" ); //transact require( ERC20(investToken).transferFrom( msg.sender, address(this), amountToInvest ), "transfer failed" ); if (investor.totalInvested == 0) { totalInvestors += 1; investorList.push(msg.sender); } investor.totalInvestableExchanged += amountToInvest; investor.totalInvested += amountToInvest; totalGlobalInvested += amountToInvest; //continuously updates finalPrice until the last contribution is made. finalPrice = currentPrice(); emit Invest( msg.sender, amountToInvest, totalGlobalInvested, finalPrice ); } /** @dev Returns the total amount withdrawn by the _address during the last hour **/ function getLastPeriodWithdrawals(address _address) public view returns (uint256 totalWithdrawLastHour) { InvestorInfo storage investor = investorInfoMap[_address]; Withdrawal[] storage withdrawHistory = investor.withdrawHistory; for (uint256 i = 0; i < withdrawHistory.length; i++) { Withdrawal memory withdraw = withdrawHistory[i]; if (withdraw.timestamp >= block.timestamp.sub(investRemovalDelay)) { totalWithdrawLastHour = totalWithdrawLastHour.add( withdrawHistory[i].amount ); } } } /** @dev Removes the specified amount from the users totalInvested balance and returns the amount of investTokens back to them */ function removeInvestment(uint256 amountToRemove) public { require(saleEnabled, "Sale is not enabled yet"); require(block.timestamp >= launchStartTime, "Sale has not started yet"); require(block.timestamp < launchEndTime, "Sale has ended"); require( totalGlobalInvested < maxGlobalInvestAllowed, "Maximum Investments reached, deposits/withdrawal are disabled" ); require(amountToRemove <= maxInvestRemovablePerPeriod, "Cannot remove more than the maximum by period"); InvestorInfo storage investor = investorInfoMap[msg.sender]; //Two checks of funds to prevent over widrawal require( amountToRemove <= investor.totalInvested, "Cannot Remove more than invested" ); //Make sure they can't withdraw too often. Withdrawal[] storage withdrawHistory = investor.withdrawHistory; uint256 authorizedWithdraw = maxInvestRemovablePerPeriod.sub( getLastPeriodWithdrawals(msg.sender) ); require( amountToRemove <= authorizedWithdraw, "Max withdraw reached for this hour" ); withdrawHistory.push( Withdrawal({timestamp: block.timestamp, amount: amountToRemove}) ); //transact investor.totalInvestableExchanged += amountToRemove; investor.totalInvested -= amountToRemove; totalGlobalInvested -= amountToRemove; require( ERC20(investToken).transferFrom( address(this), msg.sender, amountToRemove ), "transfer failed" ); finalPrice = currentPrice(); emit RemoveInvestment( msg.sender, amountToRemove, totalGlobalInvested, finalPrice ); } /** @dev Claims the NRT tokens equivalent to their contribution */ function claimRedeemable() public { require(redeemEnabled, "redeem not enabled"); require(block.timestamp >= launchEndTime, "Time to claim has not arrived"); InvestorInfo storage investor = investorInfoMap[msg.sender]; require(!investor.hasClaimed, "Tokens already claimed"); require(investor.totalInvested > 0, "No investment made"); uint256 issueAmount = investor.totalInvested.mul(10**9).div(finalPrice); investor.hasClaimed = true; investor.totalRedeemed = issueAmount; totalGlobalIssued = totalGlobalIssued.add(issueAmount); redeemableToken.issue(msg.sender, issueAmount); emit IssueNRT(msg.sender, issueAmount); } //getters //calculates current price function currentPrice() public view returns (uint256) { uint256 price = computePrice(); if (price <= startingPrice) { return startingPrice; } else { return price; } } function computePrice() public view returns (uint256) { return totalGlobalInvested.mul(1e9).div(maxRedeemableToIssue); } function hasSaleEnded() public view returns (bool) { return block.timestamp > launchStartTime.add(saleDuration); } //------ Owner Functions ------ function enableSale() public onlyOwner { saleEnabled = true; emit SaleEnabled(true, block.timestamp); } function enableRedeem() public onlyOwner { redeemEnabled = true; emit RedeemEnabled(true, block.timestamp); } function withdrawInvestablePool() public onlyOwner { require(block.timestamp > launchEndTime, "Sale has not ended"); uint256 amount = ERC20(investToken).balanceOf(address(this)); ERC20(investToken).transfer(fundsRedeemer, amount); //ERC20(investToken).approve(fundsRedeemer, amount); //MagTreasury(fundsRedeemer).deposit(amount, investToken, amount.div(1e9)); } function changeStartTime(uint256 newTime) public onlyOwner { require(newTime > block.timestamp, "Start time must be in the future."); require(block.timestamp < launchStartTime, "Sale has already started"); launchStartTime = newTime; //update endTime launchEndTime = newTime.add(saleDuration); } }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity 0.7.5; import "./SafeMath.sol"; interface IERC20 { function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract ERC20 is IERC20 { using SafeMath for uint256; // TODO comment actual hash value. bytes32 private constant ERC20TOKEN_ERC1820_INTERFACE_ID = keccak256("ERC20Token"); mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 internal _totalSupply; string internal _name; string internal _symbol; uint8 internal _decimals; constructor( string memory name_, string memory symbol_, uint8 decimals_ ) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view override returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(msg.sender, spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, msg.sender, _allowances[sender][msg.sender].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( msg.sender, spender, _allowances[msg.sender][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( msg.sender, spender, _allowances[msg.sender][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account_, uint256 ammount_) internal virtual { require(account_ != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(this), account_, ammount_); _totalSupply = _totalSupply.add(ammount_); _balances[account_] = _balances[account_].add(ammount_); emit Transfer(address(this), account_, ammount_); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from_, address to_, uint256 amount_ ) internal virtual {} }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity 0.7.5; import "./OwnableMulti.sol"; import "./SafeMath.sol"; //NRT is like a private stock //can only be traded with the issuer who remains in control of the market //until he opens the redemption window contract NRT is OwnableMulti { uint256 private _issuedSupply; uint256 private _outstandingSupply; uint256 private _decimals; string private _symbol; using SafeMath for uint256; mapping(address => uint256) private _balances; event Issued(address account, uint256 amount); event Redeemed(address account, uint256 amount); constructor(string memory __symbol, uint256 __decimals) { _symbol = __symbol; _decimals = __decimals; _issuedSupply = 0; _outstandingSupply = 0; } // Creates amount NRT and assigns them to account function issue(address account, uint256 amount) public onlyOwner { require(account != address(0), "zero address"); _issuedSupply = _issuedSupply.add(amount); _outstandingSupply = _outstandingSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Issued(account, amount); } //redeem, caller handles transfer of created value function redeem(address account, uint256 amount) public onlyOwner { require(account != address(0), "zero address"); require(_balances[account] >= amount, "Insufficent balance"); _balances[account] = _balances[account].sub(amount); _outstandingSupply = _outstandingSupply.sub(amount); emit Redeemed(account, amount); } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint256) { return _decimals; } function issuedSupply() public view returns (uint256) { return _issuedSupply; } function outstandingSupply() public view returns (uint256) { return _outstandingSupply; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.7.5; /** * @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 OwnableBase { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(msg.sender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == msg.sender, "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); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.7.5; /** * @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 OwnableMulti { mapping(address => bool) private _owners; /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _owners[msg.sender] = true; } /** * @dev Returns the address of the current owner. */ function isOwner(address _address) public view virtual returns (bool) { return _owners[_address]; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owners[msg.sender], "Ownable: caller is not an owner"); _; } function addOwner(address _newOwner) public onlyOwner { require(_newOwner != address(0)); _owners[_newOwner] = true; } }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity 0.7.5; //u32 library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function add32(uint32 a, uint32 b) internal pure returns (uint32) { uint32 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function sub32(uint32 a, uint32 b) internal pure returns (uint32) { return sub32(a, b, "SafeMath: subtraction overflow"); } function sub32( uint32 a, uint32 b, string memory errorMessage ) internal pure returns (uint32) { require(b <= a, errorMessage); uint32 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function mul32(uint32 a, uint32 b) internal pure returns (uint32) { if (a == 0) { return 0; } uint32 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function sqrrt(uint256 a) internal pure returns (uint256 c) { if (a > 3) { c = a; uint256 b = add(div(a, 2), 1); while (b < c) { c = b; b = div(add(div(a, b), b), 2); } } else if (a != 0) { c = 1; } } /* * Expects percentage to be trailed by 00, */ function percentageAmount(uint256 total_, uint8 percentage_) internal pure returns (uint256 percentAmount_) { return div(mul(total_, percentage_), 1000); } /* * Expects percentage to be trailed by 00, */ function substractPercentage(uint256 total_, uint8 percentageToSub_) internal pure returns (uint256 result_) { return sub(total_, div(mul(total_, percentageToSub_), 1000)); } function percentageOfTotal(uint256 part_, uint256 total_) internal pure returns (uint256 percent_) { return div(mul(part_, 100), total_); } /** * Taken from Hypersonic https://github.com/M2629/HyperSonic/blob/main/Math.sol * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow, so we distribute return (a / 2) + (b / 2) + (((a % 2) + (b % 2)) / 2); } function quadraticPricing(uint256 payment_, uint256 multiplier_) internal pure returns (uint256) { return sqrrt(mul(multiplier_, payment_)); } function bondingCurve(uint256 supply_, uint256 multiplier_) internal pure returns (uint256) { return mul(multiplier_, supply_); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_fundsRedeemer","type":"address"},{"internalType":"address","name":"_investToken","type":"address"},{"internalType":"uint256","name":"_launchStartTime","type":"uint256"},{"internalType":"uint256","name":"_saleDuration","type":"uint256"},{"internalType":"uint256","name":"_investRemovalDelay","type":"uint256"},{"internalType":"uint256","name":"_maxInvestAllowed","type":"uint256"},{"internalType":"uint256","name":"_minInvestAllowed","type":"uint256"},{"internalType":"uint256","name":"_maxInvestRemovablePerPeriod","type":"uint256"},{"internalType":"uint256","name":"_maxGlobalInvestAllowed","type":"uint256"},{"internalType":"uint256","name":"_maxRedeemableToIssue","type":"uint256"},{"internalType":"uint256","name":"_startingPrice","type":"uint256"},{"internalType":"address","name":"_redeemableToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalInvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"Invest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"IssueNRT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"RedeemEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalInvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"RemoveInvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"SaleEnabled","type":"event"},{"inputs":[{"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"changeStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRedeemable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"computePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundsRedeemer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getLastPeriodWithdrawals","outputs":[{"internalType":"uint256","name":"totalWithdrawLastHour","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasSaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToInvest","type":"uint256"}],"name":"invest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"investRemovalDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"investToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investorInfoMap","outputs":[{"internalType":"uint256","name":"totalInvested","type":"uint256"},{"internalType":"uint256","name":"totalRedeemed","type":"uint256"},{"internalType":"uint256","name":"totalInvestableExchanged","type":"uint256"},{"internalType":"bool","name":"hasClaimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"investorList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxGlobalInvestAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxInvestAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxInvestRemovablePerPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRedeemableToIssue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minInvestAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeemEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeemableToken","outputs":[{"internalType":"contract NRT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToRemove","type":"uint256"}],"name":"removeInvestment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalGlobalInvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalGlobalIssued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInvestors","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":"withdrawInvestablePool","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001c4038038062001c4083398181016040526101808110156200003857600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e08801516101008901516101208a01516101408b0151610160909b0151999a989997989697959694959394929391929091620000963362000215565b428a11620000d65760405162461bcd60e51b815260040180806020018281038252602181526020018062001bfe6021913960400191505060405180910390fd5b6001600160a01b038c166200011d5760405162461bcd60e51b815260040180806020018281038252602181526020018062001c1f6021913960400191505060405180910390fd5b600180546001600160a01b03808f166001600160a01b03199283161790925560028054928e1692909116919091179055600c8a90556205460089106200019e576040805162461bcd60e51b81526020600482015260116024820152706475726174696f6e20746f6f206c6f6e6760781b604482015290519081900360640190fd5b620001b8898b6200026560201b620015161790919060201c565b600e55600d98909855600f96909655600494909455600592909255600791909155600655600855601055600380546001600160a01b0319166001600160a01b0390921691909117905550506012805461ffff1916905550620002c7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082820183811015620002c0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61192780620002d76000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80638b65be0811610125578063bc4c3bb3116100ad578063d6fbf2021161007c578063d6fbf202146103cf578063e230fbe7146103d7578063f2fde38b146103df578063f703f36f14610405578063ff6807cb146104535761021c565b8063bc4c3bb31461039a578063c0212d03146103a2578063c683d8e4146103bf578063d2f82536146103c75761021c565b8063a4cea3b2116100f4578063a4cea3b214610372578063a6b513ee1461037a578063b17253e614610382578063b3f05b971461038a578063badf822b146103925761021c565b80638b65be08146103525780638da5cb5b1461035a57806393c7c04e146103625780639d1b464a1461036a5761021c565b806349a433a2116101a857806371b9b6461161017757806371b9b646146102f7578063727dba53146102ff5780637bb501ec14610325578063884aa2001461032d5780638aa5b2c3146103355761021c565b806349a433a2146102c357806369e1da2d146102cb5780636bacc0fa146102d3578063715018a6146102ef5761021c565b806329b8caff116101ef57806329b8caff146102865780632afcf4801461028e578063336a2901146102ab5780633711d9fb146102b357806338771754146102bb5761021c565b8063061873e81461022157806311dc99b31461022b57806312f9b48e1461024f5780631920508d1461026c575b600080fd5b61022961045b565b005b6102336104f9565b604080516001600160a01b039092168252519081900360200190f35b6102336004803603602081101561026557600080fd5b5035610508565b610274610532565b60408051918252519081900360200190f35b610274610538565b610229600480360360208110156102a457600080fd5b503561053e565b6102336108f6565b610274610905565b61027461090b565b610274610911565b610229610917565b6102db610ab5565b604080519115158252519081900360200190f35b610229610ad6565b6102db610b34565b6102746004803603602081101561031557600080fd5b50356001600160a01b0316610b3d565b610274610c07565b610274610c0d565b6102296004803603602081101561034b57600080fd5b5035610c39565b610274610d38565b610233610d3e565b610274610d4d565b610274610d53565b610229610d7a565b610274610fba565b610274610fc0565b6102db610fc6565b610233610fd5565b610274610fe4565b610229600480360360208110156103b857600080fd5b5035610fea565b61022961138c565b6102db611429565b610274611437565b61027461143d565b610229600480360360208110156103f557600080fd5b50356001600160a01b0316611443565b61042b6004803603602081101561041b57600080fd5b50356001600160a01b03166114e6565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b610274611510565b33610464610d3e565b6001600160a01b0316146104ad576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b6012805461ff001916610100179055604080516001815242602082015281517fef5fd91dc9b012f3e4b41e00dc71466a39c83d97c3cc3879de5b9193f456c630929181900390910190a1565b6003546001600160a01b031681565b6014818154811061051857600080fd5b6000918252602090912001546001600160a01b0316905081565b60065481565b600b5481565b60125460ff1661058f576040805162461bcd60e51b815260206004820152601760248201527614d85b19481a5cc81b9bdd08195b98589b1959081e595d604a1b604482015290519081900360640190fd5b600c544210156105e1576040805162461bcd60e51b815260206004820152601860248201527714d85b19481a185cc81b9bdd081cdd185c9d1959081e595d60421b604482015290519081900360640190fd5b600554811015610638576040805162461bcd60e51b815260206004820152601760248201527f496e7665737420616d6f756e7420746f6f20736d616c6c000000000000000000604482015290519081900360640190fd5b610640610ab5565b1561068a576040805162461bcd60e51b815260206004820152601560248201527414d85b19481c195c9a5bd9081a185cc8195b991959605a1b604482015290519081900360640190fd5b60075460009061069c90612710611579565b905080600754016106b88360095461151690919063ffffffff16565b111561070b576040805162461bcd60e51b815260206004820152601b60248201527f4d6178696d756d20496e766573746d656e747320726561636865640000000000604482015290519081900360640190fd5b33600090815260136020526040902060045481546107299085611516565b11156107665760405162461bcd60e51b81526004018080602001828103825260218152602001806118416021913960400191505060405180910390fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156107c057600080fd5b505af11580156107d4573d6000803e3d6000fd5b505050506040513d60208110156107ea57600080fd5b505161082f576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b805461088057600b805460019081019091556014805491820181556000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b031916331790555b6002810180548401905580548301815560098054840190556108a0610d53565b6011819055600954604080513381526020810187905280820192909252606082019290925290517f4df9cbfa66cbbabb528375b3af00207b446225af5a96b8a4b5c413b18226fb959181900360800190a1505050565b6001546001600160a01b031681565b600d5481565b60045481565b600e5481565b33610920610d3e565b6001600160a01b031614610969576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b600e5442116109b4576040805162461bcd60e51b815260206004820152601260248201527114d85b19481a185cc81b9bdd08195b99195960721b604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156109ff57600080fd5b505afa158015610a13573d6000803e3d6000fd5b505050506040513d6020811015610a2957600080fd5b50516002546001546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b158015610a8657600080fd5b505af1158015610a9a573d6000803e3d6000fd5b505050506040513d6020811015610ab057600080fd5b505050565b6000610ace600d54600c5461151690919063ffffffff16565b421190505b90565b33610adf610d3e565b6001600160a01b031614610b28576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b610b3260006115bb565b565b60125460ff1681565b6001600160a01b038116600090815260136020526040812060038101825b8154811015610bff57610b6c6117a2565b828281548110610b7857fe5b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050610bbc600f544261160b90919063ffffffff16565b815110610bf657610bf3838381548110610bd257fe5b9060005260206000209060020201600101548661151690919063ffffffff16565b94505b50600101610b5b565b505050919050565b600c5481565b6000610c34600854610c2e633b9aca0060095461164d90919063ffffffff16565b90611579565b905090565b33610c42610d3e565b6001600160a01b031614610c8b576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b428111610cc95760405162461bcd60e51b81526004018080602001828103825260218152602001806117fa6021913960400191505060405180910390fd5b600c544210610d1f576040805162461bcd60e51b815260206004820152601860248201527f53616c652068617320616c726561647920737461727465640000000000000000604482015290519081900360640190fd5b600c819055600d54610d32908290611516565b600e5550565b600a5481565b6000546001600160a01b031690565b600f5481565b600080610d5e610c0d565b90506010548111610d73575050601054610ad3565b9050610ad3565b601254610100900460ff16610dcb576040805162461bcd60e51b81526020600482015260126024820152711c995919595b481b9bdd08195b98589b195960721b604482015290519081900360640190fd5b600e54421015610e22576040805162461bcd60e51b815260206004820152601d60248201527f54696d6520746f20636c61696d20686173206e6f742061727269766564000000604482015290519081900360640190fd5b336000908152601360205260409020600481015460ff1615610e84576040805162461bcd60e51b8152602060048201526016602482015275151bdad95b9cc8185b1c9958591e4818db185a5b595960521b604482015290519081900360640190fd5b8054610ecc576040805162461bcd60e51b81526020600482015260126024820152714e6f20696e766573746d656e74206d61646560701b604482015290519081900360640190fd5b6011548154600091610ee691610c2e90633b9aca0061164d565b60048301805460ff191660019081179091558301819055600a54909150610f0d9082611516565b600a556003546040805163219e412d60e21b81523360048201526024810184905290516001600160a01b039092169163867904b49160448082019260009290919082900301818387803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b5050604080513381526020810185905281517f3a4841c31c51a7c2deb56faab3917d3951589be071efadac552de6113babc65f9450908190039091019150a15050565b60115481565b60055481565b60125462010000900460ff1681565b6002546001600160a01b031681565b60095481565b60125460ff1661103b576040805162461bcd60e51b815260206004820152601760248201527614d85b19481a5cc81b9bdd08195b98589b1959081e595d604a1b604482015290519081900360640190fd5b600c5442101561108d576040805162461bcd60e51b815260206004820152601860248201527714d85b19481a185cc81b9bdd081cdd185c9d1959081e595d60421b604482015290519081900360640190fd5b600e5442106110d4576040805162461bcd60e51b815260206004820152600e60248201526d14d85b19481a185cc8195b99195960921b604482015290519081900360640190fd5b600754600954106111165760405162461bcd60e51b815260040180806020018281038252603d8152602001806117bd603d913960400191505060405180910390fd5b6006548111156111575760405162461bcd60e51b815260040180806020018281038252602d815260200180611884602d913960400191505060405180910390fd5b33600090815260136020526040902080548211156111bc576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742052656d6f7665206d6f7265207468616e20696e766573746564604482015290519081900360640190fd5b6003810160006111d76111ce33610b3d565b6006549061160b565b9050808411156112185760405162461bcd60e51b81526004018080602001828103825260228152602001806118626022913960400191505060405180910390fd5b6040805180820182524281526020808201878152855460018181018855600088815284812095516002938402909601958655925194019390935586830180548901905586548890038755600980548990039055915483516323b872dd60e01b81523060048201523360248201526044810189905293516001600160a01b03909116936323b872dd9360648083019493928390030190829087803b1580156112be57600080fd5b505af11580156112d2573d6000803e3d6000fd5b505050506040513d60208110156112e857600080fd5b505161132d576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b611335610d53565b6011819055600954604080513381526020810188905280820192909252606082019290925290517f5b938ffadc562aeed2a41670639ca329cc324ab076745a80f2849467dec6e45a9181900360800190a150505050565b33611395610d3e565b6001600160a01b0316146113de576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b6012805460ff191660019081179091556040805191825242602083015280517f020b56eb5031e351b28c7914a3185d679342016d533b3fe0d056b43fe5ecb8689281900390910190a1565b601254610100900460ff1681565b60105481565b60075481565b3361144c610d3e565b6001600160a01b031614611495576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b6001600160a01b0381166114da5760405162461bcd60e51b815260040180806020018281038252602681526020018061181b6026913960400191505060405180910390fd5b6114e3816115bb565b50565b60136020526000908152604090208054600182015460028301546004909301549192909160ff1684565b60085481565b600082820183811015611570576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061157083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116a6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061157083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611748565b60008261165c57506000611573565b8282028284828161166957fe5b04146115705760405162461bcd60e51b81526004018080602001828103825260218152602001806118b16021913960400191505060405180910390fd5b600081836117325760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116f75781810151838201526020016116df565b50505050905090810190601f1680156117245780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161173e57fe5b0495945050505050565b6000818484111561179a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156116f75781810151838201526020016116df565b505050900390565b60405180604001604052806000815260200160008152509056fe4d6178696d756d20496e766573746d656e747320726561636865642c206465706f736974732f7769746864726177616c206172652064697361626c656453746172742074696d65206d75737420626520696e20746865206675747572652e4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d617820696e646976696475616c20696e766573746d656e7420726561636865644d6178207769746864726177207265616368656420666f72207468697320686f757243616e6e6f742072656d6f7665206d6f7265207468616e20746865206d6178696d756d20627920706572696f64536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220347c14a65b3a8c1209b90aab695eef330788f8f55bcd50b0d2bfbfa87e497b6564736f6c6343000705003353746172742074696d65206d75737420626520696e20746865206675747572652e66756e647352656465656d65722061646472657373206973206e6f74207365742e0000000000000000000000000e93e7ef52dcc294d4f7e3d3c90e34126d59d57a000000000000000000000000130966628846bfd36ff31a822705796e8cb8c18d0000000000000000000000000000000000000000000000000000000061cb4290000000000000000000000000000000000000000000000000000000000002a3000000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000054b40b1f852bda00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000081dae2083e4c4e7f7ef117e3e3ef4969c567e732
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061021c5760003560e01c80638b65be0811610125578063bc4c3bb3116100ad578063d6fbf2021161007c578063d6fbf202146103cf578063e230fbe7146103d7578063f2fde38b146103df578063f703f36f14610405578063ff6807cb146104535761021c565b8063bc4c3bb31461039a578063c0212d03146103a2578063c683d8e4146103bf578063d2f82536146103c75761021c565b8063a4cea3b2116100f4578063a4cea3b214610372578063a6b513ee1461037a578063b17253e614610382578063b3f05b971461038a578063badf822b146103925761021c565b80638b65be08146103525780638da5cb5b1461035a57806393c7c04e146103625780639d1b464a1461036a5761021c565b806349a433a2116101a857806371b9b6461161017757806371b9b646146102f7578063727dba53146102ff5780637bb501ec14610325578063884aa2001461032d5780638aa5b2c3146103355761021c565b806349a433a2146102c357806369e1da2d146102cb5780636bacc0fa146102d3578063715018a6146102ef5761021c565b806329b8caff116101ef57806329b8caff146102865780632afcf4801461028e578063336a2901146102ab5780633711d9fb146102b357806338771754146102bb5761021c565b8063061873e81461022157806311dc99b31461022b57806312f9b48e1461024f5780631920508d1461026c575b600080fd5b61022961045b565b005b6102336104f9565b604080516001600160a01b039092168252519081900360200190f35b6102336004803603602081101561026557600080fd5b5035610508565b610274610532565b60408051918252519081900360200190f35b610274610538565b610229600480360360208110156102a457600080fd5b503561053e565b6102336108f6565b610274610905565b61027461090b565b610274610911565b610229610917565b6102db610ab5565b604080519115158252519081900360200190f35b610229610ad6565b6102db610b34565b6102746004803603602081101561031557600080fd5b50356001600160a01b0316610b3d565b610274610c07565b610274610c0d565b6102296004803603602081101561034b57600080fd5b5035610c39565b610274610d38565b610233610d3e565b610274610d4d565b610274610d53565b610229610d7a565b610274610fba565b610274610fc0565b6102db610fc6565b610233610fd5565b610274610fe4565b610229600480360360208110156103b857600080fd5b5035610fea565b61022961138c565b6102db611429565b610274611437565b61027461143d565b610229600480360360208110156103f557600080fd5b50356001600160a01b0316611443565b61042b6004803603602081101561041b57600080fd5b50356001600160a01b03166114e6565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b610274611510565b33610464610d3e565b6001600160a01b0316146104ad576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b6012805461ff001916610100179055604080516001815242602082015281517fef5fd91dc9b012f3e4b41e00dc71466a39c83d97c3cc3879de5b9193f456c630929181900390910190a1565b6003546001600160a01b031681565b6014818154811061051857600080fd5b6000918252602090912001546001600160a01b0316905081565b60065481565b600b5481565b60125460ff1661058f576040805162461bcd60e51b815260206004820152601760248201527614d85b19481a5cc81b9bdd08195b98589b1959081e595d604a1b604482015290519081900360640190fd5b600c544210156105e1576040805162461bcd60e51b815260206004820152601860248201527714d85b19481a185cc81b9bdd081cdd185c9d1959081e595d60421b604482015290519081900360640190fd5b600554811015610638576040805162461bcd60e51b815260206004820152601760248201527f496e7665737420616d6f756e7420746f6f20736d616c6c000000000000000000604482015290519081900360640190fd5b610640610ab5565b1561068a576040805162461bcd60e51b815260206004820152601560248201527414d85b19481c195c9a5bd9081a185cc8195b991959605a1b604482015290519081900360640190fd5b60075460009061069c90612710611579565b905080600754016106b88360095461151690919063ffffffff16565b111561070b576040805162461bcd60e51b815260206004820152601b60248201527f4d6178696d756d20496e766573746d656e747320726561636865640000000000604482015290519081900360640190fd5b33600090815260136020526040902060045481546107299085611516565b11156107665760405162461bcd60e51b81526004018080602001828103825260218152602001806118416021913960400191505060405180910390fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156107c057600080fd5b505af11580156107d4573d6000803e3d6000fd5b505050506040513d60208110156107ea57600080fd5b505161082f576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b805461088057600b805460019081019091556014805491820181556000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b031916331790555b6002810180548401905580548301815560098054840190556108a0610d53565b6011819055600954604080513381526020810187905280820192909252606082019290925290517f4df9cbfa66cbbabb528375b3af00207b446225af5a96b8a4b5c413b18226fb959181900360800190a1505050565b6001546001600160a01b031681565b600d5481565b60045481565b600e5481565b33610920610d3e565b6001600160a01b031614610969576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b600e5442116109b4576040805162461bcd60e51b815260206004820152601260248201527114d85b19481a185cc81b9bdd08195b99195960721b604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156109ff57600080fd5b505afa158015610a13573d6000803e3d6000fd5b505050506040513d6020811015610a2957600080fd5b50516002546001546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b158015610a8657600080fd5b505af1158015610a9a573d6000803e3d6000fd5b505050506040513d6020811015610ab057600080fd5b505050565b6000610ace600d54600c5461151690919063ffffffff16565b421190505b90565b33610adf610d3e565b6001600160a01b031614610b28576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b610b3260006115bb565b565b60125460ff1681565b6001600160a01b038116600090815260136020526040812060038101825b8154811015610bff57610b6c6117a2565b828281548110610b7857fe5b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050610bbc600f544261160b90919063ffffffff16565b815110610bf657610bf3838381548110610bd257fe5b9060005260206000209060020201600101548661151690919063ffffffff16565b94505b50600101610b5b565b505050919050565b600c5481565b6000610c34600854610c2e633b9aca0060095461164d90919063ffffffff16565b90611579565b905090565b33610c42610d3e565b6001600160a01b031614610c8b576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b428111610cc95760405162461bcd60e51b81526004018080602001828103825260218152602001806117fa6021913960400191505060405180910390fd5b600c544210610d1f576040805162461bcd60e51b815260206004820152601860248201527f53616c652068617320616c726561647920737461727465640000000000000000604482015290519081900360640190fd5b600c819055600d54610d32908290611516565b600e5550565b600a5481565b6000546001600160a01b031690565b600f5481565b600080610d5e610c0d565b90506010548111610d73575050601054610ad3565b9050610ad3565b601254610100900460ff16610dcb576040805162461bcd60e51b81526020600482015260126024820152711c995919595b481b9bdd08195b98589b195960721b604482015290519081900360640190fd5b600e54421015610e22576040805162461bcd60e51b815260206004820152601d60248201527f54696d6520746f20636c61696d20686173206e6f742061727269766564000000604482015290519081900360640190fd5b336000908152601360205260409020600481015460ff1615610e84576040805162461bcd60e51b8152602060048201526016602482015275151bdad95b9cc8185b1c9958591e4818db185a5b595960521b604482015290519081900360640190fd5b8054610ecc576040805162461bcd60e51b81526020600482015260126024820152714e6f20696e766573746d656e74206d61646560701b604482015290519081900360640190fd5b6011548154600091610ee691610c2e90633b9aca0061164d565b60048301805460ff191660019081179091558301819055600a54909150610f0d9082611516565b600a556003546040805163219e412d60e21b81523360048201526024810184905290516001600160a01b039092169163867904b49160448082019260009290919082900301818387803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b5050604080513381526020810185905281517f3a4841c31c51a7c2deb56faab3917d3951589be071efadac552de6113babc65f9450908190039091019150a15050565b60115481565b60055481565b60125462010000900460ff1681565b6002546001600160a01b031681565b60095481565b60125460ff1661103b576040805162461bcd60e51b815260206004820152601760248201527614d85b19481a5cc81b9bdd08195b98589b1959081e595d604a1b604482015290519081900360640190fd5b600c5442101561108d576040805162461bcd60e51b815260206004820152601860248201527714d85b19481a185cc81b9bdd081cdd185c9d1959081e595d60421b604482015290519081900360640190fd5b600e5442106110d4576040805162461bcd60e51b815260206004820152600e60248201526d14d85b19481a185cc8195b99195960921b604482015290519081900360640190fd5b600754600954106111165760405162461bcd60e51b815260040180806020018281038252603d8152602001806117bd603d913960400191505060405180910390fd5b6006548111156111575760405162461bcd60e51b815260040180806020018281038252602d815260200180611884602d913960400191505060405180910390fd5b33600090815260136020526040902080548211156111bc576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742052656d6f7665206d6f7265207468616e20696e766573746564604482015290519081900360640190fd5b6003810160006111d76111ce33610b3d565b6006549061160b565b9050808411156112185760405162461bcd60e51b81526004018080602001828103825260228152602001806118626022913960400191505060405180910390fd5b6040805180820182524281526020808201878152855460018181018855600088815284812095516002938402909601958655925194019390935586830180548901905586548890038755600980548990039055915483516323b872dd60e01b81523060048201523360248201526044810189905293516001600160a01b03909116936323b872dd9360648083019493928390030190829087803b1580156112be57600080fd5b505af11580156112d2573d6000803e3d6000fd5b505050506040513d60208110156112e857600080fd5b505161132d576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b611335610d53565b6011819055600954604080513381526020810188905280820192909252606082019290925290517f5b938ffadc562aeed2a41670639ca329cc324ab076745a80f2849467dec6e45a9181900360800190a150505050565b33611395610d3e565b6001600160a01b0316146113de576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b6012805460ff191660019081179091556040805191825242602083015280517f020b56eb5031e351b28c7914a3185d679342016d533b3fe0d056b43fe5ecb8689281900390910190a1565b601254610100900460ff1681565b60105481565b60075481565b3361144c610d3e565b6001600160a01b031614611495576040805162461bcd60e51b815260206004820181905260248201526000805160206118d2833981519152604482015290519081900360640190fd5b6001600160a01b0381166114da5760405162461bcd60e51b815260040180806020018281038252602681526020018061181b6026913960400191505060405180910390fd5b6114e3816115bb565b50565b60136020526000908152604090208054600182015460028301546004909301549192909160ff1684565b60085481565b600082820183811015611570576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061157083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116a6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061157083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611748565b60008261165c57506000611573565b8282028284828161166957fe5b04146115705760405162461bcd60e51b81526004018080602001828103825260218152602001806118b16021913960400191505060405180910390fd5b600081836117325760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116f75781810151838201526020016116df565b50505050905090810190601f1680156117245780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161173e57fe5b0495945050505050565b6000818484111561179a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156116f75781810151838201526020016116df565b505050900390565b60405180604001604052806000815260200160008152509056fe4d6178696d756d20496e766573746d656e747320726561636865642c206465706f736974732f7769746864726177616c206172652064697361626c656453746172742074696d65206d75737420626520696e20746865206675747572652e4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d617820696e646976696475616c20696e766573746d656e7420726561636865644d6178207769746864726177207265616368656420666f72207468697320686f757243616e6e6f742072656d6f7665206d6f7265207468616e20746865206d6178696d756d20627920706572696f64536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220347c14a65b3a8c1209b90aab695eef330788f8f55bcd50b0d2bfbfa87e497b6564736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000e93e7ef52dcc294d4f7e3d3c90e34126d59d57a000000000000000000000000130966628846bfd36ff31a822705796e8cb8c18d0000000000000000000000000000000000000000000000000000000061cb4290000000000000000000000000000000000000000000000000000000000002a3000000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000054b40b1f852bda00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000081dae2083e4c4e7f7ef117e3e3ef4969c567e732
-----Decoded View---------------
Arg [0] : _fundsRedeemer (address): 0x0e93e7Ef52dCC294d4F7E3d3C90e34126D59d57a
Arg [1] : _investToken (address): 0x130966628846BFd36ff31a822705796e8cb8C18D
Arg [2] : _launchStartTime (uint256): 1640710800
Arg [3] : _saleDuration (uint256): 172800
Arg [4] : _investRemovalDelay (uint256): 3600
Arg [5] : _maxInvestAllowed (uint256): 25000000000000000000000
Arg [6] : _minInvestAllowed (uint256): 0
Arg [7] : _maxInvestRemovablePerPeriod (uint256): 10000000000000000000000
Arg [8] : _maxGlobalInvestAllowed (uint256): 10000000000000000000000000
Arg [9] : _maxRedeemableToIssue (uint256): 4000000000000000
Arg [10] : _startingPrice (uint256): 800000000000000000
Arg [11] : _redeemableToken (address): 0x81DAE2083e4C4e7F7eF117e3E3ef4969c567E732
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000e93e7ef52dcc294d4f7e3d3c90e34126d59d57a
Arg [1] : 000000000000000000000000130966628846bfd36ff31a822705796e8cb8c18d
Arg [2] : 0000000000000000000000000000000000000000000000000000000061cb4290
Arg [3] : 000000000000000000000000000000000000000000000000000000000002a300
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000e10
Arg [5] : 00000000000000000000000000000000000000000000054b40b1f852bda00000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 00000000000000000000000000000000000000000000021e19e0c9bab2400000
Arg [8] : 000000000000000000000000000000000000000000084595161401484a000000
Arg [9] : 000000000000000000000000000000000000000000000000000e35fa931a0000
Arg [10] : 0000000000000000000000000000000000000000000000000b1a2bc2ec500000
Arg [11] : 00000000000000000000000081dae2083e4c4e7f7ef117e3e3ef4969c567e732
Deployed Bytecode Sourcemap
422:10529:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10065:129;;;:::i;:::-;;676:26;;;:::i;:::-;;;;-1:-1:-1;;;;;676:26:1;;;;;;;;;;;;;;2373:29;;;;;;;;;;;;;;;;-1:-1:-1;2373:29:1;;:::i;796:42::-;;;:::i;:::-;;;;;;;;;;;;;;;;1020:29;;;:::i;4227:1541::-;;;;;;;;;;;;;;;;-1:-1:-1;4227:1541:1;;:::i;501:28::-;;;:::i;1170:27::-;;;:::i;722:31::-;;;:::i;1246:28::-;;;:::i;10200:405::-;;;:::i;9767:126::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;1647:101:3;;;:::i;1488:23:1:-;;;:::i;5872:641::-;;;;;;;;;;;;;;;;-1:-1:-1;5872:641:1;-1:-1:-1;;;;;5872:641:1;;:::i;1105:30::-;;;:::i;9629:132::-;;;:::i;10611:338::-;;;;;;;;;;;;;;;;-1:-1:-1;10611:338:1;;:::i;982:32::-;;;:::i;1017:85:3:-;;;:::i;1332:33:1:-;;;:::i;9397:226::-;;;:::i;8633:713::-;;;:::i;1418:25::-;;;:::i;759:31::-;;;:::i;1548:21::-;;;:::i;575:26::-;;;:::i;942:34::-;;;:::i;6662:1882::-;;;;;;;;;;;;;;;;-1:-1:-1;6662:1882:1;;:::i;9936:123::-;;;:::i;1517:25::-;;;:::i;1384:28::-;;;:::i;844:37::-;;;:::i;1897:232:3:-;;;;;;;;;;;;;;;;-1:-1:-1;1897:232:3;-1:-1:-1;;;;;1897:232:3;;:::i;2312:55:1:-;;;;;;;;;;;;;;;;-1:-1:-1;2312:55:1;-1:-1:-1;;;;;2312:55:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:35;;;:::i;10065:129::-;1240:10:3;1229:7;:5;:7::i;:::-;-1:-1:-1;;;;;1229:21:3;;1221:66;;;;;-1:-1:-1;;;1221:66:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1221:66:3;;;;;;;;;;;;;;;10116:13:1::1;:20:::0;;-1:-1:-1;;10116:20:1::1;;;::::0;;10151:36:::1;::::0;;10132:4:::1;10151:36:::0;;10171:15:::1;10151:36;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;10065:129::o:0;676:26::-;;;-1:-1:-1;;;;;676:26:1;;:::o;2373:29::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2373:29:1;;-1:-1:-1;2373:29:1;:::o;796:42::-;;;;:::o;1020:29::-;;;;:::o;4227:1541::-;4292:11;;;;4284:47;;;;;-1:-1:-1;;;4284:47:1;;;;;;;;;;;;-1:-1:-1;;;4284:47:1;;;;;;;;;;;;;;;4368:15;;4349;:34;;4341:71;;;;;-1:-1:-1;;;4341:71:1;;;;;;;;;;;;-1:-1:-1;;;4341:71:1;;;;;;;;;;;;;;;4448:16;;4430:14;:34;;4422:70;;;;;-1:-1:-1;;;4422:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4511:14;:12;:14::i;:::-;4510:15;4502:49;;;;;-1:-1:-1;;;4502:49:1;;;;;;;;;;;;-1:-1:-1;;;4502:49:1;;;;;;;;;;;;;;;4578:22;;4561:14;;4578:33;;4605:5;4578:26;:33::i;:::-;4561:50;;4710:6;4685:22;;:31;4642:39;4666:14;4642:19;;:23;;:39;;;;:::i;:::-;:74;;4621:148;;;;;-1:-1:-1;;;4621:148:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4828:10;4780:29;4812:27;;;:15;:27;;;;;4916:16;;4870:22;;:42;;4897:14;4870:26;:42::i;:::-;:62;;4849:142;;;;-1:-1:-1;;;4849:142:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5047:11;;5041:136;;;-1:-1:-1;;;5041:136:1;;5090:10;5041:136;;;;5126:4;5041:136;;;;;;;;;;;;-1:-1:-1;;;;;5047:11:1;;;;5041:31;;:136;;;;;;;;;;;;;;;5047:11;;5041:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5041:136:1;5020:198;;;;;-1:-1:-1;;;5020:198:1;;;;;;;;;;;;-1:-1:-1;;;5020:198:1;;;;;;;;;;;;;;;5232:22;;5228:120;;5275:14;:19;;5293:1;5275:19;;;;;;5308:12;:29;;;;;;;5275:14;5308:29;;;;;-1:-1:-1;;;;;;5308:29:1;5326:10;5308:29;;;5228:120;5357:33;;;:51;;;;;;5418:40;;;;;;5468:19;:37;;;;;;5607:14;:12;:14::i;:::-;5594:10;:27;;;5708:19;;5636:125;;;5656:10;5636:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4227:1541;;;:::o;501:28::-;;;-1:-1:-1;;;;;501:28:1;;:::o;1170:27::-;;;;:::o;722:31::-;;;;:::o;1246:28::-;;;;:::o;10200:405::-;1240:10:3;1229:7;:5;:7::i;:::-;-1:-1:-1;;;;;1229:21:3;;1221:66;;;;;-1:-1:-1;;;1221:66:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1221:66:3;;;;;;;;;;;;;;;10287:13:1::1;;10269:15;:31;10261:62;;;::::0;;-1:-1:-1;;;10261:62:1;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10261:62:1;;;;;;;;;;;;;::::1;;10356:11;::::0;10350:43:::1;::::0;;-1:-1:-1;;;10350:43:1;;10387:4:::1;10350:43;::::0;::::1;::::0;;;10333:14:::1;::::0;-1:-1:-1;;;;;10356:11:1::1;::::0;10350:28:::1;::::0;:43;;;;;::::1;::::0;;;;;;;;10356:11;10350:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;10350:43:1;10409:11:::1;::::0;;10431:13;10403:50:::1;::::0;;-1:-1:-1;;;10403:50:1;;-1:-1:-1;;;;;10431:13:1;;::::1;10403:50;::::0;::::1;::::0;;;;;;;;;10350:43;;-1:-1:-1;10409:11:1;::::1;::::0;10403:27:::1;::::0;:50;;;;;10350:43:::1;::::0;10403:50;;;;;;;;10409:11:::1;::::0;10403:50;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;10200:405:1:o;9767:126::-;9812:4;9853:33;9873:12;;9853:15;;:19;;:33;;;;:::i;:::-;9835:15;:51;9828:58;;9767:126;;:::o;1647:101:3:-;1240:10;1229:7;:5;:7::i;:::-;-1:-1:-1;;;;;1229:21:3;;1221:66;;;;;-1:-1:-1;;;1221:66:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1221:66:3;;;;;;;;;;;;;;;1711:30:::1;1738:1;1711:18;:30::i;:::-;1647:101::o:0;1488:23:1:-;;;;;;:::o;5872:641::-;-1:-1:-1;;;;;6046:25:1;;5969:29;6046:25;;;:15;:25;;;;;6121:24;;;5969:29;6155:352;6179:22;;6175:26;;6155:352;;;6222:26;;:::i;:::-;6251:15;6267:1;6251:18;;;;;;;;;;;;;;;;;;6222:47;;;;;;;;;;;;;;;;;;;;;;;;;;;6309:39;6329:18;;6309:15;:19;;:39;;;;:::i;:::-;6287:18;;:61;6283:214;;6392:90;6439:15;6455:1;6439:18;;;;;;;;;;;;;;;;;;:25;;;6392:21;:25;;:90;;;;:::i;:::-;6368:114;;6283:214;-1:-1:-1;6203:3:1;;6155:352;;;;5872:641;;;;;:::o;1105:30::-;;;;:::o;9629:132::-;9674:7;9700:54;9733:20;;9700:28;9724:3;9700:19;;:23;;:28;;;;:::i;:::-;:32;;:54::i;:::-;9693:61;;9629:132;:::o;10611:338::-;1240:10:3;1229:7;:5;:7::i;:::-;-1:-1:-1;;;;;1229:21:3;;1221:66;;;;;-1:-1:-1;;;1221:66:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1221:66:3;;;;;;;;;;;;;;;10698:15:1::1;10688:7;:25;10680:71;;;;-1:-1:-1::0;;;10680:71:1::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10787:15;;10769;:33;10761:70;;;::::0;;-1:-1:-1;;;10761:70:1;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10841:15;:25:::0;;;10929:12:::1;::::0;10917:25:::1;::::0;10859:7;;10917:11:::1;:25::i;:::-;10901:13;:41:::0;-1:-1:-1;10611:338:1:o;982:32::-;;;;:::o;1017:85:3:-;1063:7;1089:6;-1:-1:-1;;;;;1089:6:3;1017:85;:::o;1332:33:1:-;;;;:::o;9397:226::-;9442:7;9461:13;9477:14;:12;:14::i;:::-;9461:30;;9514:13;;9505:5;:22;9501:116;;-1:-1:-1;;9550:13:1;;9543:20;;9501:116;9601:5;-1:-1:-1;9594:12:1;;8633:713;8685:13;;;;;;;8677:44;;;;;-1:-1:-1;;;8677:44:1;;;;;;;;;;;;-1:-1:-1;;;8677:44:1;;;;;;;;;;;;;;;8758:13;;8739:15;:32;;8731:74;;;;;-1:-1:-1;;;8731:74:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8864:10;8816:29;8848:27;;;:15;:27;;;;;8894:19;;;;;;8893:20;8885:55;;;;;-1:-1:-1;;;8885:55:1;;;;;;;;;;;;-1:-1:-1;;;8885:55:1;;;;;;;;;;;;;;;8958:22;;8950:57;;;;;-1:-1:-1;;;8950:57:1;;;;;;;;;;;;-1:-1:-1;;;8950:57:1;;;;;;;;;;;;;;;9078:10;;9040:22;;9018:19;;9040:49;;:33;;9067:5;9040:26;:33::i;:49::-;9099:19;;;:26;;-1:-1:-1;;9099:26:1;9121:4;9099:26;;;;;;9135:22;;:36;;;9201:17;;9018:71;;-1:-1:-1;9201:34:1;;9018:71;9201:21;:34::i;:::-;9181:17;:54;9245:15;;:46;;;-1:-1:-1;;;9245:46:1;;9267:10;9245:46;;;;;;;;;;;;-1:-1:-1;;;;;9245:15:1;;;;:21;;:46;;;;;:15;;:46;;;;;;;;:15;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9306:33:1;;;9315:10;9306:33;;;;;;;;;;;;-1:-1:-1;9306:33:1;;;;;;;;-1:-1:-1;9306:33:1;8633:713;;:::o;1418:25::-;;;;:::o;759:31::-;;;;:::o;1548:21::-;;;;;;;;;:::o;575:26::-;;;-1:-1:-1;;;;;575:26:1;;:::o;942:34::-;;;;:::o;6662:1882::-;6737:11;;;;6729:47;;;;;-1:-1:-1;;;6729:47:1;;;;;;;;;;;;-1:-1:-1;;;6729:47:1;;;;;;;;;;;;;;;6813:15;;6794;:34;;6786:71;;;;;-1:-1:-1;;;6786:71:1;;;;;;;;;;;;-1:-1:-1;;;6786:71:1;;;;;;;;;;;;;;;6893:13;;6875:15;:31;6867:58;;;;;-1:-1:-1;;;6867:58:1;;;;;;;;;;;;-1:-1:-1;;;6867:58:1;;;;;;;;;;;;;;;6978:22;;6956:19;;:44;6935:152;;;;-1:-1:-1;;;6935:152:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7123:27;;7105:14;:45;;7097:103;;;;-1:-1:-1;;;7097:103:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7259:10;7211:29;7243:27;;;:15;:27;;;;;7375:22;;7357:40;;;7336:119;;;;;-1:-1:-1;;;7336:119:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7564:24;;;7525:36;7627:91;7672:36;7697:10;7672:24;:36::i;:::-;7627:27;;;:31;:91::i;:::-;7598:120;;7767:18;7749:14;:36;;7728:117;;;;-1:-1:-1;;;7728:117:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7889:64;;;;;;;;7912:15;7889:64;;;;;;;;;7855:108;;;;;;;;-1:-1:-1;7855:108:1;;;;;;;;;;;;;;;;;;;;;;;;;;7992:33;;;:51;;;;;;8053:40;;;;;;;8103:19;:37;;;;;;;8177:11;;8171:136;;-1:-1:-1;;;8171:136:1;;8228:4;8171:136;;;;8251:10;8171:136;;;;;;;;;;;;-1:-1:-1;;;;;8177:11:1;;;;8171:31;;:136;;;;;7889:64;8171:136;;;;;;;;8177:11;8171:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8171:136:1;8150:198;;;;;-1:-1:-1;;;8150:198:1;;;;;;;;;;;;-1:-1:-1;;;8150:198:1;;;;;;;;;;;;;;;8372:14;:12;:14::i;:::-;8359:10;:27;;;8484:19;;8402:135;;;8432:10;8402:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6662:1882;;;;:::o;9936:123::-;1240:10:3;1229:7;:5;:7::i;:::-;-1:-1:-1;;;;;1229:21:3;;1221:66;;;;;-1:-1:-1;;;1221:66:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1221:66:3;;;;;;;;;;;;;;;9985:11:1::1;:18:::0;;-1:-1:-1;;9985:18:1::1;9999:4;9985:18:::0;;::::1;::::0;;;10018:34:::1;::::0;;;;;10036:15:::1;10018:34;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;9936:123::o:0;1517:25::-;;;;;;;;;:::o;1384:28::-;;;;:::o;844:37::-;;;;:::o;1897:232:3:-;1240:10;1229:7;:5;:7::i;:::-;-1:-1:-1;;;;;1229:21:3;;1221:66;;;;;-1:-1:-1;;;1221:66:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1221:66:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;1998:22:3;::::1;1977:107;;;;-1:-1:-1::0;;;1977:107:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2094:28;2113:8;2094:18;:28::i;:::-;1897:232:::0;:::o;2312:55:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;887:35::-;;;;:::o;99:176:5:-;157:7;188:5;;;211:6;;;;203:46;;;;;-1:-1:-1;;;203:46:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:1;-1:-1:-1;99:176:5;;;;;:::o;1678:130::-;1736:7;1762:39;1766:1;1769;1762:39;;;;;;;;;;;;;;;;;:3;:39::i;2283:187:3:-;2356:16;2375:6;;-1:-1:-1;;;;;2391:17:3;;;-1:-1:-1;;;;;;2391:17:3;;;;;;2423:40;;2375:6;;;;;;;2423:40;;2356:16;2423:40;2283:187;;:::o;461:134:5:-;519:7;545:43;549:1;552;545:43;;;;;;;;;;;;;;;;;:3;:43::i;1186:241::-;1244:7;1267:6;1263:45;;-1:-1:-1;1296:1:5;1289:8;;1263:45;1330:5;;;1334:1;1330;:5;:1;1353:5;;;;;:10;1345:56;;;;-1:-1:-1;;;1345:56:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:215;1930:7;1964:12;1957:5;1949:28;;;;-1:-1:-1;;;1949:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:9;2003:1;1999;:5;;;;;;;1814:215;-1:-1:-1;;;;;1814:215:5:o;601:217::-;717:7;752:12;744:6;;;;736:29;;;;-1:-1:-1;;;736:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;787:5:5;;;601:217::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://347c14a65b3a8c1209b90aab695eef330788f8f55bcd50b0d2bfbfa87e497b65
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.