More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
End Presale | 18010196 | 385 days ago | IN | 0 ETH | 0.00053104 | ||||
Stamp | 17974444 | 390 days ago | IN | 0 ETH | 0.00051837 | ||||
Buy Tokens | 17962994 | 391 days ago | IN | 0.06 ETH | 0.00096211 | ||||
Buy Tokens | 17958874 | 392 days ago | IN | 0.002 ETH | 0.00099284 | ||||
Buy Tokens | 17956141 | 392 days ago | IN | 0.34 ETH | 0.00158608 | ||||
0x60806040 | 17951322 | 393 days ago | IN | 0 ETH | 0.01977154 |
Loading...
Loading
Contract Name:
WhiskeyPresale
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-19 */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } // File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } // File: WhiskeyTools.sol // Website: https://whiskey.tools // Founder: Calvin Heath pragma solidity ^0.8.9; contract WhiskeyPresale is ERC20Burnable, Ownable { uint256 public constant MAX_PURCHASE_AMOUNT = 5 ether; uint256 public constant MIN_PURCHASE_AMOUNT = 0.001 ether; uint256 public constant PRESALE_CAP = 50 ether; uint256 public constant REFUND_FEE = 10; uint256 public constant PRESALE_TOKENS = 2500000 * 10 ** 18; uint256 public constant DEVELOPER_FEE_PERCENTAGE = 5; uint256 public totalRaised; uint256 public totalTokensSold; address payable public developerWallet; bool public presaleEnded = false; mapping(address => uint256) public userTokenBalances; constructor(address payable _developerWallet) ERC20("WhiskeyTools", "WSKY") { require(_developerWallet != address(0), "Invalid developer wallet address"); developerWallet = _developerWallet; _mint(address(this), PRESALE_TOKENS); _mint(msg.sender, 1500000 * (10 ** 18)); } function buyTokens() external payable { require(msg.value >= MIN_PURCHASE_AMOUNT, "Amount below minimum purchase limit of 0.01 ETH"); require(msg.value <= MAX_PURCHASE_AMOUNT, "Amount exceeds maximum purchase limit of 5 ETH"); require(totalRaised + msg.value <= PRESALE_CAP, "Amount exceeds presale cap"); uint256 tokensToBuy = (msg.value * 50000 * (10 ** 18)) / 1 ether; require(totalTokensSold + tokensToBuy <= PRESALE_TOKENS, "Not enough tokens left for sale"); uint256 developerFee = (msg.value * DEVELOPER_FEE_PERCENTAGE) / 100; developerWallet.transfer(developerFee); totalRaised += msg.value; totalTokensSold += tokensToBuy; userTokenBalances[msg.sender] += tokensToBuy; } function claimTokens() external { require(presaleEnded, "Presale has not ended yet"); uint256 tokensToClaim = userTokenBalances[msg.sender]; require(tokensToClaim > 0, "Can't claim 0 tokens"); userTokenBalances[msg.sender] = 0; _transfer(address(this), msg.sender, tokensToClaim); } function Refund(uint256 tokenAmount) external { validateRefundAmount(tokenAmount); uint256 refundAmount = calculateRefundAmount(tokenAmount); processRefund(tokenAmount, refundAmount); refundUserInETH(refundAmount); } function validateRefundAmount(uint256 tokenAmount) internal view { require(tokenAmount > 0, "You can't refund 0 tokens"); require(tokenAmount <= userTokenBalances[msg.sender], "You can't refund more tokens than you own"); } function calculateRefundAmount(uint256 tokenAmount) internal pure returns (uint256) { uint256 initialAmount = tokenAmount * 1 ether / (50000 * 10 ** 18); uint256 fee = initialAmount / 10; // 10% fee return initialAmount - fee; } function processRefund(uint256 tokenAmount, uint256 refundAmount) internal { userTokenBalances[msg.sender] -= tokenAmount; totalTokensSold -= tokenAmount; totalRaised -= refundAmount; } function refundUserInETH(uint256 refundAmount) internal { require(address(this).balance >= refundAmount, "Not enough ETH in the contract"); payable(msg.sender).transfer(refundAmount); } function endPresale() external onlyOwner { require(!presaleEnded, "Presale already ended"); uint256 unsoldTokens = PRESALE_TOKENS - totalTokensSold; if (unsoldTokens > 0) { _burn(address(this), unsoldTokens); } uint256 contractBalance = address(this).balance; if (contractBalance > 0) { payable(owner()).transfer(contractBalance); } presaleEnded = true; } function Stamp(uint256 percentage) external onlyOwner { require(percentage > 0 && percentage <= 100, "Invalid percentage"); uint256 contractBalance = address(this).balance; require(contractBalance > 0, "Contract balance is zero"); uint256 withdrawAmount = (contractBalance * percentage) / 100; payable(owner()).transfer(withdrawAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_developerWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEVELOPER_FEE_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PURCHASE_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_PURCHASE_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRESALE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRESALE_TOKENS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFUND_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"Refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"Stamp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTokenBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526008805460ff60a01b191690553480156200001e57600080fd5b5060405162001a9a38038062001a9a83398101604081905262000041916200032f565b604080518082018252600c81526b576869736b6579546f6f6c7360a01b60208083019182528351808501909452600484526357534b5960e01b908401528151919291620000919160039162000289565b508051620000a790600490602084019062000289565b505050620000c4620000be6200017060201b60201c565b62000174565b6001600160a01b038116620001205760405162461bcd60e51b815260206004820181905260248201527f496e76616c696420646576656c6f7065722077616c6c6574206164647265737360448201526064015b60405180910390fd5b600880546001600160a01b0319166001600160a01b03831617905562000152306a0211654585005212800000620001c6565b62000169336a013da329b6336471800000620001c6565b50620003c5565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200021e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000117565b806002600082825462000232919062000361565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620002979062000388565b90600052602060002090601f016020900481019282620002bb576000855562000306565b82601f10620002d657805160ff191683800117855562000306565b8280016001018555821562000306579182015b8281111562000306578251825591602001919060010190620002e9565b506200031492915062000318565b5090565b5b8082111562000314576000815560010162000319565b6000602082840312156200034257600080fd5b81516001600160a01b03811681146200035a57600080fd5b9392505050565b600082198211156200038357634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200039d57607f821691505b60208210811415620003bf57634e487b7160e01b600052602260045260246000fd5b50919050565b6116c580620003d56000396000f3fe6080604052600436106101e35760003560e01c8063715018a611610102578063b4a5ddb511610095578063dd62ed3e11610064578063dd62ed3e14610531578063e580b2b014610551578063e732800014610572578063f2fde38b1461059f57600080fd5b8063b4a5ddb5146104d6578063bd94fafc146104f6578063c5c4744c14610513578063d0febe4c1461052957600080fd5b8063a43be57b116100d1578063a43be57b1461046c578063a457c2d714610481578063a9059cbb146104a1578063b1dbb87a146104c157600080fd5b8063715018a61461040457806379cc6790146104195780638da5cb5b1461043957806395d89b411461045757600080fd5b8063395093511161017a57806360a09a0d1161014957806360a09a0d1461037d57806363b20117146103995780636ddb627c146103af57806370a08231146103ce57600080fd5b8063395093511461030d57806342966c681461032d57806348c54b9d1461034d57806354545bfb1461036257600080fd5b806320af09ab116101b657806320af09ab1461029a57806323b872dd146102af5780632e1897b0146102cf578063313ce567146102f157600080fd5b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610243578063185870f914610262575b600080fd5b3480156101f457600080fd5b506101fd6105bf565b60405161020a9190611489565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046114fa565b610651565b604051901515815260200161020a565b34801561024f57600080fd5b506002545b60405190815260200161020a565b34801561026e57600080fd5b50600854610282906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102a657600080fd5b50610254600a81565b3480156102bb57600080fd5b506102336102ca366004611524565b610669565b3480156102db57600080fd5b506102ef6102ea366004611560565b61068d565b005b3480156102fd57600080fd5b506040516012815260200161020a565b34801561031957600080fd5b506102336103283660046114fa565b6106ba565b34801561033957600080fd5b506102ef610348366004611560565b6106dc565b34801561035957600080fd5b506102ef6106e9565b34801561036e57600080fd5b5061025466038d7ea4c6800081565b34801561038957600080fd5b50610254674563918244f4000081565b3480156103a557600080fd5b5061025460075481565b3480156103bb57600080fd5b506102546a021165458500521280000081565b3480156103da57600080fd5b506102546103e9366004611579565b6001600160a01b031660009081526020819052604090205490565b34801561041057600080fd5b506102ef6107b7565b34801561042557600080fd5b506102ef6104343660046114fa565b6107cb565b34801561044557600080fd5b506005546001600160a01b0316610282565b34801561046357600080fd5b506101fd6107e0565b34801561047857600080fd5b506102ef6107ef565b34801561048d57600080fd5b5061023361049c3660046114fa565b6108d0565b3480156104ad57600080fd5b506102336104bc3660046114fa565b61094b565b3480156104cd57600080fd5b50610254600581565b3480156104e257600080fd5b506102ef6104f1366004611560565b610959565b34801561050257600080fd5b506102546802b5e3af16b188000081565b34801561051f57600080fd5b5061025460065481565b6102ef610a6b565b34801561053d57600080fd5b5061025461054c36600461159b565b610cf9565b34801561055d57600080fd5b5060085461023390600160a01b900460ff1681565b34801561057e57600080fd5b5061025461058d366004611579565b60096020526000908152604090205481565b3480156105ab57600080fd5b506102ef6105ba366004611579565b610d24565b6060600380546105ce906115ce565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa906115ce565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b60003361065f818585610d9a565b5060019392505050565b600033610677858285610ebf565b610682858585610f33565b506001949350505050565b610696816110d7565b60006106a182611198565b90506106ad82826111e5565b6106b681611236565b5050565b60003361065f8185856106cd8383610cf9565b6106d7919061161f565b610d9a565b6106e633826112b3565b50565b600854600160a01b900460ff166107475760405162461bcd60e51b815260206004820152601960248201527f50726573616c6520686173206e6f7420656e646564207965740000000000000060448201526064015b60405180910390fd5b336000908152600960205260409020548061079b5760405162461bcd60e51b815260206004820152601460248201527343616e277420636c61696d203020746f6b656e7360601b604482015260640161073e565b336000818152600960205260408120556106e690309083610f33565b6107bf6113dd565b6107c96000611437565b565b6107d6823383610ebf565b6106b682826112b3565b6060600480546105ce906115ce565b6107f76113dd565b600854600160a01b900460ff16156108495760405162461bcd60e51b8152602060048201526015602482015274141c995cd85b1948185b1c9958591e48195b991959605a1b604482015260640161073e565b60006007546a02116545850052128000006108649190611637565b905080156108765761087630826112b3565b4780156108b9576005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108b7573d6000803e3d6000fd5b505b50506008805460ff60a01b1916600160a01b179055565b600033816108de8286610cf9565b90508381101561093e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161073e565b6106828286868403610d9a565b60003361065f818585610f33565b6109616113dd565b600081118015610972575060648111155b6109b35760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015260640161073e565b4780610a015760405162461bcd60e51b815260206004820152601860248201527f436f6e74726163742062616c616e6365206973207a65726f0000000000000000604482015260640161073e565b60006064610a0f848461164e565b610a19919061166d565b9050610a2d6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a65573d6000803e3d6000fd5b50505050565b66038d7ea4c68000341015610ada5760405162461bcd60e51b815260206004820152602f60248201527f416d6f756e742062656c6f77206d696e696d756d207075726368617365206c6960448201526e0dad2e840decc40605c6062408aa89608b1b606482015260840161073e565b674563918244f40000341115610b495760405162461bcd60e51b815260206004820152602e60248201527f416d6f756e742065786365656473206d6178696d756d2070757263686173652060448201526d0d8d2dad2e840decc406a408aa8960931b606482015260840161073e565b6802b5e3af16b188000034600654610b61919061161f565b1115610baf5760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e7420657863656564732070726573616c6520636170000000000000604482015260640161073e565b6000670de0b6b3a7640000610bc63461c35061164e565b610bd890670de0b6b3a764000061164e565b610be2919061166d565b90506a021165458500521280000081600754610bfe919061161f565b1115610c4c5760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420656e6f75676820746f6b656e73206c65667420666f722073616c6500604482015260640161073e565b60006064610c5b60053461164e565b610c65919061166d565b6008546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ca0573d6000803e3d6000fd5b503460066000828254610cb3919061161f565b925050819055508160076000828254610ccc919061161f565b90915550503360009081526009602052604081208054849290610cf090849061161f565b90915550505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d2c6113dd565b6001600160a01b038116610d915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073e565b6106e681611437565b6001600160a01b038316610dfc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161073e565b6001600160a01b038216610e5d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161073e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610ecb8484610cf9565b90506000198114610a655781811015610f265760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161073e565b610a658484848403610d9a565b6001600160a01b038316610f975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161073e565b6001600160a01b038216610ff95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161073e565b6001600160a01b038316600090815260208190526040902054818110156110715760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161073e565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a65565b600081116111275760405162461bcd60e51b815260206004820152601960248201527f596f752063616e277420726566756e64203020746f6b656e7300000000000000604482015260640161073e565b336000908152600960205260409020548111156106e65760405162461bcd60e51b815260206004820152602960248201527f596f752063616e277420726566756e64206d6f726520746f6b656e732074686160448201526837103cb7ba9037bbb760b91b606482015260840161073e565b600080690a968163f0a57b4000006111b884670de0b6b3a764000061164e565b6111c2919061166d565b905060006111d1600a8361166d565b90506111dd8183611637565b949350505050565b3360009081526009602052604081208054849290611204908490611637565b92505081905550816007600082825461121d9190611637565b925050819055508060066000828254610cf09190611637565b804710156112865760405162461bcd60e51b815260206004820152601e60248201527f4e6f7420656e6f7567682045544820696e2074686520636f6e74726163740000604482015260640161073e565b604051339082156108fc029083906000818181858888f193505050501580156106b6573d6000803e3d6000fd5b6001600160a01b0382166113135760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161073e565b6001600160a01b038216600090815260208190526040902054818110156113875760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161073e565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610eb2565b6005546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b818110156114b65785810183015185820160400152820161149a565b818111156114c8576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146114f557600080fd5b919050565b6000806040838503121561150d57600080fd5b611516836114de565b946020939093013593505050565b60008060006060848603121561153957600080fd5b611542846114de565b9250611550602085016114de565b9150604084013590509250925092565b60006020828403121561157257600080fd5b5035919050565b60006020828403121561158b57600080fd5b611594826114de565b9392505050565b600080604083850312156115ae57600080fd5b6115b7836114de565b91506115c5602084016114de565b90509250929050565b600181811c908216806115e257607f821691505b6020821081141561160357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561163257611632611609565b500190565b60008282101561164957611649611609565b500390565b600081600019048311821515161561166857611668611609565b500290565b60008261168a57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212204f9eeca7dc263dffebdcc5485e13d80ccb4a7acfa260db8df002e11e907a744164736f6c63430008090033000000000000000000000000b46ecbac66746b00a926d433eb59fffddc315580
Deployed Bytecode
0x6080604052600436106101e35760003560e01c8063715018a611610102578063b4a5ddb511610095578063dd62ed3e11610064578063dd62ed3e14610531578063e580b2b014610551578063e732800014610572578063f2fde38b1461059f57600080fd5b8063b4a5ddb5146104d6578063bd94fafc146104f6578063c5c4744c14610513578063d0febe4c1461052957600080fd5b8063a43be57b116100d1578063a43be57b1461046c578063a457c2d714610481578063a9059cbb146104a1578063b1dbb87a146104c157600080fd5b8063715018a61461040457806379cc6790146104195780638da5cb5b1461043957806395d89b411461045757600080fd5b8063395093511161017a57806360a09a0d1161014957806360a09a0d1461037d57806363b20117146103995780636ddb627c146103af57806370a08231146103ce57600080fd5b8063395093511461030d57806342966c681461032d57806348c54b9d1461034d57806354545bfb1461036257600080fd5b806320af09ab116101b657806320af09ab1461029a57806323b872dd146102af5780632e1897b0146102cf578063313ce567146102f157600080fd5b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610243578063185870f914610262575b600080fd5b3480156101f457600080fd5b506101fd6105bf565b60405161020a9190611489565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046114fa565b610651565b604051901515815260200161020a565b34801561024f57600080fd5b506002545b60405190815260200161020a565b34801561026e57600080fd5b50600854610282906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102a657600080fd5b50610254600a81565b3480156102bb57600080fd5b506102336102ca366004611524565b610669565b3480156102db57600080fd5b506102ef6102ea366004611560565b61068d565b005b3480156102fd57600080fd5b506040516012815260200161020a565b34801561031957600080fd5b506102336103283660046114fa565b6106ba565b34801561033957600080fd5b506102ef610348366004611560565b6106dc565b34801561035957600080fd5b506102ef6106e9565b34801561036e57600080fd5b5061025466038d7ea4c6800081565b34801561038957600080fd5b50610254674563918244f4000081565b3480156103a557600080fd5b5061025460075481565b3480156103bb57600080fd5b506102546a021165458500521280000081565b3480156103da57600080fd5b506102546103e9366004611579565b6001600160a01b031660009081526020819052604090205490565b34801561041057600080fd5b506102ef6107b7565b34801561042557600080fd5b506102ef6104343660046114fa565b6107cb565b34801561044557600080fd5b506005546001600160a01b0316610282565b34801561046357600080fd5b506101fd6107e0565b34801561047857600080fd5b506102ef6107ef565b34801561048d57600080fd5b5061023361049c3660046114fa565b6108d0565b3480156104ad57600080fd5b506102336104bc3660046114fa565b61094b565b3480156104cd57600080fd5b50610254600581565b3480156104e257600080fd5b506102ef6104f1366004611560565b610959565b34801561050257600080fd5b506102546802b5e3af16b188000081565b34801561051f57600080fd5b5061025460065481565b6102ef610a6b565b34801561053d57600080fd5b5061025461054c36600461159b565b610cf9565b34801561055d57600080fd5b5060085461023390600160a01b900460ff1681565b34801561057e57600080fd5b5061025461058d366004611579565b60096020526000908152604090205481565b3480156105ab57600080fd5b506102ef6105ba366004611579565b610d24565b6060600380546105ce906115ce565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa906115ce565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b60003361065f818585610d9a565b5060019392505050565b600033610677858285610ebf565b610682858585610f33565b506001949350505050565b610696816110d7565b60006106a182611198565b90506106ad82826111e5565b6106b681611236565b5050565b60003361065f8185856106cd8383610cf9565b6106d7919061161f565b610d9a565b6106e633826112b3565b50565b600854600160a01b900460ff166107475760405162461bcd60e51b815260206004820152601960248201527f50726573616c6520686173206e6f7420656e646564207965740000000000000060448201526064015b60405180910390fd5b336000908152600960205260409020548061079b5760405162461bcd60e51b815260206004820152601460248201527343616e277420636c61696d203020746f6b656e7360601b604482015260640161073e565b336000818152600960205260408120556106e690309083610f33565b6107bf6113dd565b6107c96000611437565b565b6107d6823383610ebf565b6106b682826112b3565b6060600480546105ce906115ce565b6107f76113dd565b600854600160a01b900460ff16156108495760405162461bcd60e51b8152602060048201526015602482015274141c995cd85b1948185b1c9958591e48195b991959605a1b604482015260640161073e565b60006007546a02116545850052128000006108649190611637565b905080156108765761087630826112b3565b4780156108b9576005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108b7573d6000803e3d6000fd5b505b50506008805460ff60a01b1916600160a01b179055565b600033816108de8286610cf9565b90508381101561093e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161073e565b6106828286868403610d9a565b60003361065f818585610f33565b6109616113dd565b600081118015610972575060648111155b6109b35760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015260640161073e565b4780610a015760405162461bcd60e51b815260206004820152601860248201527f436f6e74726163742062616c616e6365206973207a65726f0000000000000000604482015260640161073e565b60006064610a0f848461164e565b610a19919061166d565b9050610a2d6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a65573d6000803e3d6000fd5b50505050565b66038d7ea4c68000341015610ada5760405162461bcd60e51b815260206004820152602f60248201527f416d6f756e742062656c6f77206d696e696d756d207075726368617365206c6960448201526e0dad2e840decc40605c6062408aa89608b1b606482015260840161073e565b674563918244f40000341115610b495760405162461bcd60e51b815260206004820152602e60248201527f416d6f756e742065786365656473206d6178696d756d2070757263686173652060448201526d0d8d2dad2e840decc406a408aa8960931b606482015260840161073e565b6802b5e3af16b188000034600654610b61919061161f565b1115610baf5760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e7420657863656564732070726573616c6520636170000000000000604482015260640161073e565b6000670de0b6b3a7640000610bc63461c35061164e565b610bd890670de0b6b3a764000061164e565b610be2919061166d565b90506a021165458500521280000081600754610bfe919061161f565b1115610c4c5760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420656e6f75676820746f6b656e73206c65667420666f722073616c6500604482015260640161073e565b60006064610c5b60053461164e565b610c65919061166d565b6008546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ca0573d6000803e3d6000fd5b503460066000828254610cb3919061161f565b925050819055508160076000828254610ccc919061161f565b90915550503360009081526009602052604081208054849290610cf090849061161f565b90915550505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d2c6113dd565b6001600160a01b038116610d915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073e565b6106e681611437565b6001600160a01b038316610dfc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161073e565b6001600160a01b038216610e5d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161073e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610ecb8484610cf9565b90506000198114610a655781811015610f265760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161073e565b610a658484848403610d9a565b6001600160a01b038316610f975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161073e565b6001600160a01b038216610ff95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161073e565b6001600160a01b038316600090815260208190526040902054818110156110715760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161073e565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a65565b600081116111275760405162461bcd60e51b815260206004820152601960248201527f596f752063616e277420726566756e64203020746f6b656e7300000000000000604482015260640161073e565b336000908152600960205260409020548111156106e65760405162461bcd60e51b815260206004820152602960248201527f596f752063616e277420726566756e64206d6f726520746f6b656e732074686160448201526837103cb7ba9037bbb760b91b606482015260840161073e565b600080690a968163f0a57b4000006111b884670de0b6b3a764000061164e565b6111c2919061166d565b905060006111d1600a8361166d565b90506111dd8183611637565b949350505050565b3360009081526009602052604081208054849290611204908490611637565b92505081905550816007600082825461121d9190611637565b925050819055508060066000828254610cf09190611637565b804710156112865760405162461bcd60e51b815260206004820152601e60248201527f4e6f7420656e6f7567682045544820696e2074686520636f6e74726163740000604482015260640161073e565b604051339082156108fc029083906000818181858888f193505050501580156106b6573d6000803e3d6000fd5b6001600160a01b0382166113135760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161073e565b6001600160a01b038216600090815260208190526040902054818110156113875760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161073e565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610eb2565b6005546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b818110156114b65785810183015185820160400152820161149a565b818111156114c8576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146114f557600080fd5b919050565b6000806040838503121561150d57600080fd5b611516836114de565b946020939093013593505050565b60008060006060848603121561153957600080fd5b611542846114de565b9250611550602085016114de565b9150604084013590509250925092565b60006020828403121561157257600080fd5b5035919050565b60006020828403121561158b57600080fd5b611594826114de565b9392505050565b600080604083850312156115ae57600080fd5b6115b7836114de565b91506115c5602084016114de565b90509250929050565b600181811c908216806115e257607f821691505b6020821081141561160357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561163257611632611609565b500190565b60008282101561164957611649611609565b500390565b600081600019048311821515161561166857611668611609565b500290565b60008261168a57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212204f9eeca7dc263dffebdcc5485e13d80ccb4a7acfa260db8df002e11e907a744164736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b46ecbac66746b00a926d433eb59fffddc315580
-----Decoded View---------------
Arg [0] : _developerWallet (address): 0xB46eCbAC66746B00A926d433EB59fFfdDC315580
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b46ecbac66746b00a926d433eb59fffddc315580
Deployed Bytecode Sourcemap
21596:4015:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9314:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11674:201;;;;;;;;;;-1:-1:-1;11674:201:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;11674:201:0;1053:187:1;10443:108:0;;;;;;;;;;-1:-1:-1;10531:12:0;;10443:108;;;1391:25:1;;;1379:2;1364:18;10443:108:0;1245:177:1;22081:38:0;;;;;;;;;;-1:-1:-1;22081:38:0;;;;-1:-1:-1;;;;;22081:38:0;;;;;;-1:-1:-1;;;;;1607:32:1;;;1589:51;;1577:2;1562:18;22081:38:0;1427:219:1;21835:39:0;;;;;;;;;;;;21872:2;21835:39;;12455:261;;;;;;;;;;-1:-1:-1;12455:261:0;;;;;:::i;:::-;;:::i;23667:237::-;;;;;;;;;;-1:-1:-1;23667:237:0;;;;;:::i;:::-;;:::i;:::-;;10285:93;;;;;;;;;;-1:-1:-1;10285:93:0;;10368:2;2311:36:1;;2299:2;2284:18;10285:93:0;2169:184:1;13125:238:0;;;;;;;;;;-1:-1:-1;13125:238:0;;;;;:::i;:::-;;:::i;20890:91::-;;;;;;;;;;-1:-1:-1;20890:91:0;;;;;:::i;:::-;;:::i;23331:332::-;;;;;;;;;;;;;:::i;21716:57::-;;;;;;;;;;;;21762:11;21716:57;;21655:53;;;;;;;;;;;;21701:7;21655:53;;22043:30;;;;;;;;;;;;;;;;21882:59;;;;;;;;;;;;21923:18;21882:59;;10614:127;;;;;;;;;;-1:-1:-1;10614:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10715:18:0;10688:7;10715:18;;;;;;;;;;;;10614:127;2769:103;;;;;;;;;;;;;:::i;21300:164::-;;;;;;;;;;-1:-1:-1;21300:164:0;;;;;:::i;:::-;;:::i;2128:87::-;;;;;;;;;;-1:-1:-1;2201:6:0;;-1:-1:-1;;;;;2201:6:0;2128:87;;9533:104;;;;;;;;;;;;;:::i;24800:414::-;;;;;;;;;;;;;:::i;13866:436::-;;;;;;;;;;-1:-1:-1;13866:436:0;;;;;:::i;:::-;;:::i;10947:193::-;;;;;;;;;;-1:-1:-1;10947:193:0;;;;;:::i;:::-;;:::i;21949:52::-;;;;;;;;;;;;22000:1;21949:52;;25220:388;;;;;;;;;;-1:-1:-1;25220:388:0;;;;;:::i;:::-;;:::i;21781:46::-;;;;;;;;;;;;21819:8;21781:46;;22009:26;;;;;;;;;;;;;;;;22548:775;;;:::i;11203:151::-;;;;;;;;;;-1:-1:-1;11203:151:0;;;;;:::i;:::-;;:::i;22127:32::-;;;;;;;;;;-1:-1:-1;22127:32:0;;;;-1:-1:-1;;;22127:32:0;;;;;;22166:52;;;;;;;;;;-1:-1:-1;22166:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;3027:201;;;;;;;;;;-1:-1:-1;3027:201:0;;;;;:::i;:::-;;:::i;9314:100::-;9368:13;9401:5;9394:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9314:100;:::o;11674:201::-;11757:4;759:10;11813:32;759:10;11829:7;11838:6;11813:8;:32::i;:::-;-1:-1:-1;11863:4:0;;11674:201;-1:-1:-1;;;11674:201:0:o;12455:261::-;12552:4;759:10;12610:38;12626:4;759:10;12641:6;12610:15;:38::i;:::-;12659:27;12669:4;12675:2;12679:6;12659:9;:27::i;:::-;-1:-1:-1;12704:4:0;;12455:261;-1:-1:-1;;;;12455:261:0:o;23667:237::-;23720:33;23741:11;23720:20;:33::i;:::-;23760:20;23783:34;23805:11;23783:21;:34::i;:::-;23760:57;;23824:40;23838:11;23851:12;23824:13;:40::i;:::-;23871:29;23887:12;23871:15;:29::i;:::-;23713:191;23667:237;:::o;13125:238::-;13213:4;759:10;13269:64;759:10;13285:7;13322:10;13294:25;759:10;13285:7;13294:9;:25::i;:::-;:38;;;;:::i;:::-;13269:8;:64::i;20890:91::-;20946:27;759:10;20966:6;20946:5;:27::i;:::-;20890:91;:::o;23331:332::-;23382:12;;-1:-1:-1;;;23382:12:0;;;;23374:50;;;;-1:-1:-1;;;23374:50:0;;3874:2:1;23374:50:0;;;3856:21:1;3913:2;3893:18;;;3886:30;3952:27;3932:18;;;3925:55;3997:18;;23374:50:0;;;;;;;;;23477:10;23435:21;23459:29;;;:17;:29;;;;;;23507:17;23499:50;;;;-1:-1:-1;;;23499:50:0;;4228:2:1;23499:50:0;;;4210:21:1;4267:2;4247:18;;;4240:30;-1:-1:-1;;;4286:18:1;;;4279:50;4346:18;;23499:50:0;4026:344:1;23499:50:0;23578:10;23592:1;23560:29;;;:17;:29;;;;;:33;23604:51;;23622:4;;23641:13;23604:9;:51::i;2769:103::-;2014:13;:11;:13::i;:::-;2834:30:::1;2861:1;2834:18;:30::i;:::-;2769:103::o:0;21300:164::-;21377:46;21393:7;759:10;21416:6;21377:15;:46::i;:::-;21434:22;21440:7;21449:6;21434:5;:22::i;9533:104::-;9589:13;9622:7;9615:14;;;;;:::i;24800:414::-;2014:13;:11;:13::i;:::-;24857:12:::1;::::0;-1:-1:-1;;;24857:12:0;::::1;;;24856:13;24848:47;;;::::0;-1:-1:-1;;;24848:47:0;;4577:2:1;24848:47:0::1;::::0;::::1;4559:21:1::0;4616:2;4596:18;;;4589:30;-1:-1:-1;;;4635:18:1;;;4628:51;4696:18;;24848:47:0::1;4375:345:1::0;24848:47:0::1;24902:20;24942:15;;21923:18;24925:32;;;;:::i;:::-;24902:55:::0;-1:-1:-1;24968:16:0;;24964:75:::1;;24997:34;25011:4;25018:12;24997:5;:34::i;:::-;25071:21;25103:19:::0;;25099:86:::1;;2201:6:::0;;25135:42:::1;::::0;-1:-1:-1;;;;;2201:6:0;;;;25135:42;::::1;;;::::0;25161:15;;25135:42:::1;::::0;;;25161:15;2201:6;25135:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;25099:86;-1:-1:-1::0;;25191:12:0::1;:19:::0;;-1:-1:-1;;;;25191:19:0::1;-1:-1:-1::0;;;25191:19:0::1;::::0;;24800:414::o;13866:436::-;13959:4;759:10;13959:4;14042:25;759:10;14059:7;14042:9;:25::i;:::-;14015:52;;14106:15;14086:16;:35;;14078:85;;;;-1:-1:-1;;;14078:85:0;;5057:2:1;14078:85:0;;;5039:21:1;5096:2;5076:18;;;5069:30;5135:34;5115:18;;;5108:62;-1:-1:-1;;;5186:18:1;;;5179:35;5231:19;;14078:85:0;4855:401:1;14078:85:0;14199:60;14208:5;14215:7;14243:15;14224:16;:34;14199:8;:60::i;10947:193::-;11026:4;759:10;11082:28;759:10;11099:2;11103:6;11082:9;:28::i;25220:388::-;2014:13;:11;:13::i;:::-;25306:1:::1;25293:10;:14;:35;;;;;25325:3;25311:10;:17;;25293:35;25285:66;;;::::0;-1:-1:-1;;;25285:66:0;;5463:2:1;25285:66:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;-1:-1:-1;;;5521:18:1;;;5514:48;5579:18;;25285:66:0::1;5261:342:1::0;25285:66:0::1;25388:21;25428:19:::0;25420:56:::1;;;::::0;-1:-1:-1;;;25420:56:0;;5810:2:1;25420:56:0::1;::::0;::::1;5792:21:1::0;5849:2;5829:18;;;5822:30;5888:26;5868:18;;;5861:54;5932:18;;25420:56:0::1;5608:348:1::0;25420:56:0::1;25487:22;25545:3;25513:28;25531:10:::0;25513:15;:28:::1;:::i;:::-;25512:36;;;;:::i;:::-;25487:61;;25567:7;2201:6:::0;;-1:-1:-1;;;;;2201:6:0;;2128:87;25567:7:::1;-1:-1:-1::0;;;;;25559:25:0::1;:41;25585:14;25559:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25274:334;;25220:388:::0;:::o;22548:775::-;21762:11;22605:9;:32;;22597:92;;;;-1:-1:-1;;;22597:92:0;;6558:2:1;22597:92:0;;;6540:21:1;6597:2;6577:18;;;6570:30;6636:34;6616:18;;;6609:62;-1:-1:-1;;;6687:18:1;;;6680:45;6742:19;;22597:92:0;6356:411:1;22597:92:0;21701:7;22708:9;:32;;22700:91;;;;-1:-1:-1;;;22700:91:0;;6974:2:1;22700:91:0;;;6956:21:1;7013:2;6993:18;;;6986:30;7052:34;7032:18;;;7025:62;-1:-1:-1;;;7103:18:1;;;7096:44;7157:19;;22700:91:0;6772:410:1;22700:91:0;21819:8;22824:9;22810:11;;:23;;;;:::i;:::-;:38;;22802:77;;;;-1:-1:-1;;;22802:77:0;;7389:2:1;22802:77:0;;;7371:21:1;7428:2;7408:18;;;7401:30;7467:28;7447:18;;;7440:56;7513:18;;22802:77:0;7187:350:1;22802:77:0;22890:19;22947:7;22913:17;:9;22925:5;22913:17;:::i;:::-;:30;;22934:8;22913:30;:::i;:::-;22912:42;;;;:::i;:::-;22890:64;;21923:18;22991:11;22973:15;;:29;;;;:::i;:::-;:47;;22965:91;;;;-1:-1:-1;;;22965:91:0;;7744:2:1;22965:91:0;;;7726:21:1;7783:2;7763:18;;;7756:30;7822:33;7802:18;;;7795:61;7873:18;;22965:91:0;7542:355:1;22965:91:0;23067:20;23131:3;23091:36;22000:1;23091:9;:36;:::i;:::-;23090:44;;;;:::i;:::-;23145:15;;:38;;23067:67;;-1:-1:-1;;;;;;23145:15:0;;:38;;;;;23067:67;;23145:15;:38;:15;:38;23067:67;23145:15;:38;;;;;;;;;;;;;;;;;;;;;23210:9;23195:11;;:24;;;;;;;:::i;:::-;;;;;;;;23249:11;23230:15;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;23289:10:0;23271:29;;;;:17;:29;;;;;:44;;23304:11;;23271:29;:44;;23304:11;;23271:44;:::i;:::-;;;;-1:-1:-1;;;;22548:775:0:o;11203:151::-;-1:-1:-1;;;;;11319:18:0;;;11292:7;11319:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11203:151::o;3027:201::-;2014:13;:11;:13::i;:::-;-1:-1:-1;;;;;3116:22:0;::::1;3108:73;;;::::0;-1:-1:-1;;;3108:73:0;;8104:2:1;3108:73:0::1;::::0;::::1;8086:21:1::0;8143:2;8123:18;;;8116:30;8182:34;8162:18;;;8155:62;-1:-1:-1;;;8233:18:1;;;8226:36;8279:19;;3108:73:0::1;7902:402:1::0;3108:73:0::1;3192:28;3211:8;3192:18;:28::i;17859:346::-:0;-1:-1:-1;;;;;17961:19:0;;17953:68;;;;-1:-1:-1;;;17953:68:0;;8511:2:1;17953:68:0;;;8493:21:1;8550:2;8530:18;;;8523:30;8589:34;8569:18;;;8562:62;-1:-1:-1;;;8640:18:1;;;8633:34;8684:19;;17953:68:0;8309:400:1;17953:68:0;-1:-1:-1;;;;;18040:21:0;;18032:68;;;;-1:-1:-1;;;18032:68:0;;8916:2:1;18032:68:0;;;8898:21:1;8955:2;8935:18;;;8928:30;8994:34;8974:18;;;8967:62;-1:-1:-1;;;9045:18:1;;;9038:32;9087:19;;18032:68:0;8714:398:1;18032:68:0;-1:-1:-1;;;;;18113:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18165:32;;1391:25:1;;;18165:32:0;;1364:18:1;18165:32:0;;;;;;;;17859:346;;;:::o;18496:419::-;18597:24;18624:25;18634:5;18641:7;18624:9;:25::i;:::-;18597:52;;-1:-1:-1;;18664:16:0;:37;18660:248;;18746:6;18726:16;:26;;18718:68;;;;-1:-1:-1;;;18718:68:0;;9319:2:1;18718:68:0;;;9301:21:1;9358:2;9338:18;;;9331:30;9397:31;9377:18;;;9370:59;9446:18;;18718:68:0;9117:353:1;18718:68:0;18830:51;18839:5;18846:7;18874:6;18855:16;:25;18830:8;:51::i;14772:806::-;-1:-1:-1;;;;;14869:18:0;;14861:68;;;;-1:-1:-1;;;14861:68:0;;9677:2:1;14861:68:0;;;9659:21:1;9716:2;9696:18;;;9689:30;9755:34;9735:18;;;9728:62;-1:-1:-1;;;9806:18:1;;;9799:35;9851:19;;14861:68:0;9475:401:1;14861:68:0;-1:-1:-1;;;;;14948:16:0;;14940:64;;;;-1:-1:-1;;;14940:64:0;;10083:2:1;14940:64:0;;;10065:21:1;10122:2;10102:18;;;10095:30;10161:34;10141:18;;;10134:62;-1:-1:-1;;;10212:18:1;;;10205:33;10255:19;;14940:64:0;9881:399:1;14940:64:0;-1:-1:-1;;;;;15090:15:0;;15068:19;15090:15;;;;;;;;;;;15124:21;;;;15116:72;;;;-1:-1:-1;;;15116:72:0;;10487:2:1;15116:72:0;;;10469:21:1;10526:2;10506:18;;;10499:30;10565:34;10545:18;;;10538:62;-1:-1:-1;;;10616:18:1;;;10609:36;10662:19;;15116:72:0;10285:402:1;15116:72:0;-1:-1:-1;;;;;15224:15:0;;;:9;:15;;;;;;;;;;;15242:20;;;15224:38;;15442:13;;;;;;;;;;:23;;;;;;15494:26;;1391:25:1;;;15442:13:0;;15494:26;;1364:18:1;15494:26:0;;;;;;;15533:37;16746:675;23908:234;24002:1;23988:11;:15;23980:53;;;;-1:-1:-1;;;23980:53:0;;10894:2:1;23980:53:0;;;10876:21:1;10933:2;10913:18;;;10906:30;10972:27;10952:18;;;10945:55;11017:18;;23980:53:0;10692:349:1;23980:53:0;24081:10;24063:29;;;;:17;:29;;;;;;24048:44;;;24040:98;;;;-1:-1:-1;;;24040:98:0;;11248:2:1;24040:98:0;;;11230:21:1;11287:2;11267:18;;;11260:30;11326:34;11306:18;;;11299:62;-1:-1:-1;;;11377:18:1;;;11370:39;11426:19;;24040:98:0;11046:405:1;24146:245:0;24221:7;;24286:16;24261:21;:11;24275:7;24261:21;:::i;:::-;:42;;;;:::i;:::-;24237:66;-1:-1:-1;24310:11:0;24324:18;24340:2;24237:66;24324:18;:::i;:::-;24310:32;-1:-1:-1;24368:19:0;24310:32;24368:13;:19;:::i;:::-;24361:26;24146:245;-1:-1:-1;;;;24146:245:0:o;24395:201::-;24495:10;24477:29;;;;:17;:29;;;;;:44;;24510:11;;24477:29;:44;;24510:11;;24477:44;:::i;:::-;;;;;;;;24547:11;24528:15;;:30;;;;;;;:::i;:::-;;;;;;;;24580:12;24565:11;;:27;;;;;;;:::i;24600:196::-;24696:12;24671:21;:37;;24663:80;;;;-1:-1:-1;;;24663:80:0;;11658:2:1;24663:80:0;;;11640:21:1;11697:2;11677:18;;;11670:30;11736:32;11716:18;;;11709:60;11786:18;;24663:80:0;11456:354:1;24663:80:0;24750:42;;24758:10;;24750:42;;;;;24779:12;;24750:42;;;;24779:12;24758:10;24750:42;;;;;;;;;;;;;;;;;;;16746:675;-1:-1:-1;;;;;16830:21:0;;16822:67;;;;-1:-1:-1;;;16822:67:0;;12017:2:1;16822:67:0;;;11999:21:1;12056:2;12036:18;;;12029:30;12095:34;12075:18;;;12068:62;-1:-1:-1;;;12146:18:1;;;12139:31;12187:19;;16822:67:0;11815:397:1;16822:67:0;-1:-1:-1;;;;;16989:18:0;;16964:22;16989:18;;;;;;;;;;;17026:24;;;;17018:71;;;;-1:-1:-1;;;17018:71:0;;12419:2:1;17018:71:0;;;12401:21:1;12458:2;12438:18;;;12431:30;12497:34;12477:18;;;12470:62;-1:-1:-1;;;12548:18:1;;;12541:32;12590:19;;17018:71:0;12217:398:1;17018:71:0;-1:-1:-1;;;;;17125:18:0;;:9;:18;;;;;;;;;;;17146:23;;;17125:44;;17264:12;:22;;;;;;;17315:37;1391:25:1;;;17125:9:0;;:18;17315:37;;1364:18:1;17315:37:0;1245:177:1;2293:132:0;2201:6;;-1:-1:-1;;;;;2201:6:0;759:10;2357:23;2349:68;;;;-1:-1:-1;;;2349:68:0;;12822:2:1;2349:68:0;;;12804:21:1;;;12841:18;;;12834:30;12900:34;12880:18;;;12873:62;12952:18;;2349:68:0;12620:356:1;3388:191:0;3481:6;;;-1:-1:-1;;;;;3498:17:0;;;-1:-1:-1;;;;;;3498:17:0;;;;;;;3531:40;;3481:6;;;3498:17;3481:6;;3531:40;;3462:16;;3531:40;3451:128;3388:191;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1651:328::-;1728:6;1736;1744;1797:2;1785:9;1776:7;1772:23;1768:32;1765:52;;;1813:1;1810;1803:12;1765:52;1836:29;1855:9;1836:29;:::i;:::-;1826:39;;1884:38;1918:2;1907:9;1903:18;1884:38;:::i;:::-;1874:48;;1969:2;1958:9;1954:18;1941:32;1931:42;;1651:328;;;;;:::o;1984:180::-;2043:6;2096:2;2084:9;2075:7;2071:23;2067:32;2064:52;;;2112:1;2109;2102:12;2064:52;-1:-1:-1;2135:23:1;;1984:180;-1:-1:-1;1984:180:1:o;2358:186::-;2417:6;2470:2;2458:9;2449:7;2445:23;2441:32;2438:52;;;2486:1;2483;2476:12;2438:52;2509:29;2528:9;2509:29;:::i;:::-;2499:39;2358:186;-1:-1:-1;;;2358:186:1:o;2757:260::-;2825:6;2833;2886:2;2874:9;2865:7;2861:23;2857:32;2854:52;;;2902:1;2899;2892:12;2854:52;2925:29;2944:9;2925:29;:::i;:::-;2915:39;;2973:38;3007:2;2996:9;2992:18;2973:38;:::i;:::-;2963:48;;2757:260;;;;;:::o;3022:380::-;3101:1;3097:12;;;;3144;;;3165:61;;3219:4;3211:6;3207:17;3197:27;;3165:61;3272:2;3264:6;3261:14;3241:18;3238:38;3235:161;;;3318:10;3313:3;3309:20;3306:1;3299:31;3353:4;3350:1;3343:15;3381:4;3378:1;3371:15;3235:161;;3022:380;;;:::o;3407:127::-;3468:10;3463:3;3459:20;3456:1;3449:31;3499:4;3496:1;3489:15;3523:4;3520:1;3513:15;3539:128;3579:3;3610:1;3606:6;3603:1;3600:13;3597:39;;;3616:18;;:::i;:::-;-1:-1:-1;3652:9:1;;3539:128::o;4725:125::-;4765:4;4793:1;4790;4787:8;4784:34;;;4798:18;;:::i;:::-;-1:-1:-1;4835:9:1;;4725:125::o;5961:168::-;6001:7;6067:1;6063;6059:6;6055:14;6052:1;6049:21;6044:1;6037:9;6030:17;6026:45;6023:71;;;6074:18;;:::i;:::-;-1:-1:-1;6114:9:1;;5961:168::o;6134:217::-;6174:1;6200;6190:132;;6244:10;6239:3;6235:20;6232:1;6225:31;6279:4;6276:1;6269:15;6307:4;6304:1;6297:15;6190:132;-1:-1:-1;6336:9:1;;6134:217::o
Swarm Source
ipfs://4f9eeca7dc263dffebdcc5485e13d80ccb4a7acfa260db8df002e11e907a7441
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.