Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 382 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 10850386 | 1542 days ago | IN | 1.5 ETH | 0.0023305 | ||||
Transfer | 10849389 | 1542 days ago | IN | 0 ETH | 0.00254122 | ||||
Add And Lock Liq... | 10849294 | 1542 days ago | IN | 0 ETH | 0.8233566 | ||||
Add And Lock Liq... | 10849278 | 1543 days ago | IN | 0 ETH | 0.06976569 | ||||
Add And Lock Liq... | 10849267 | 1543 days ago | IN | 0 ETH | 0.14972589 | ||||
Add And Lock Liq... | 10849232 | 1543 days ago | IN | 0 ETH | 0.11886274 | ||||
Transfer | 10849227 | 1543 days ago | IN | 0.1868658 ETH | 0.00582625 | ||||
Add And Lock Liq... | 10849219 | 1543 days ago | IN | 0 ETH | 0.097953 | ||||
Transfer | 10849217 | 1543 days ago | IN | 0.20519205 ETH | 0.00582625 | ||||
Transfer | 10849214 | 1543 days ago | IN | 0.23585305 ETH | 0.004661 | ||||
Transfer | 10849210 | 1543 days ago | IN | 0.24 ETH | 0.00302965 | ||||
Transfer | 10849201 | 1543 days ago | IN | 1.5 ETH | 0.0027966 | ||||
Transfer | 10849201 | 1543 days ago | IN | 1.5 ETH | 0.027966 | ||||
Transfer | 10849199 | 1543 days ago | IN | 1.4 ETH | 0.004661 | ||||
Transfer | 10849198 | 1543 days ago | IN | 1.5 ETH | 0.00252 | ||||
Add And Lock Liq... | 10849198 | 1543 days ago | IN | 0 ETH | 0.01436802 | ||||
Transfer | 10849198 | 1543 days ago | IN | 1.5 ETH | 0.0163135 | ||||
Transfer | 10849198 | 1543 days ago | IN | 1.5 ETH | 0.069915 | ||||
Transfer | 10849197 | 1543 days ago | IN | 1 ETH | 0.00251694 | ||||
Transfer | 10849195 | 1543 days ago | IN | 1 ETH | 0.0021 | ||||
Transfer | 10849195 | 1543 days ago | IN | 0.2 ETH | 0.00237711 | ||||
Transfer | 10849195 | 1543 days ago | IN | 1.5 ETH | 0.00251694 | ||||
Transfer | 10849195 | 1543 days ago | IN | 0.2 ETH | 0.00252 | ||||
Transfer | 10849195 | 1543 days ago | IN | 1.5 ETH | 0.027966 | ||||
Transfer | 10849194 | 1543 days ago | IN | 1 ETH | 0.00349575 |
Loading...
Loading
Contract Name:
ChadsLiquidityPool
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-12 */ pragma solidity =0.6.6; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool); /** * @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 Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // /* * @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 GSN 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 payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IChadsToken { function unpause() external; function initializeTwap() external; } // @&#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @&@@%&@@&&&&%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@&@(....,*#&@@@&@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@&/..........*(%@@@&%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@&&%*..............,*(#%&@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@&@#......................*#&@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@&%@(..........................,(&@@&%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@&&@(,.............................*/#@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@&@(,.................................*#&@@%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@&&@#,....................................,/%@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@&@#,.......................................,*#&@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@@&@(............................................,(&@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@@@@@/...............................................,/#@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@@@@&@(..................................................*#%@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@@@@@&@/......................................................,/&@&@@@@@@@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@@@@@%&@/.........................................................,/#%%%&@@@@@@@@@@@@@@@@@@@ // @@@@@@@@@@@@@@%@@(......................................,**/((((((((((((/*,....*(%&@@@@@@@@@@@@@@@@@ // @@@@@@@@@@@@@@@#@@*............................,,/%&&@@@@&#(/*,,,,,,,,,,/#&@@%((/*%@@#@@@@@@@@@@@@@@ // @@@@@@@@@@@@@@@&%@#.................,,/#%&@@@@@&%#/*,,,.,,,,,,,,,,,,,,,,,,,,.,,*(%&@@@@@&@@@@@@@@@@@ // @@@@@@@@@@@@@@@@@%@*.........*(#&@@@&%#/*,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..*(&@@%@@@@@@@@@ // @@@@@@@@@@@@@@@@@&&@*....(&@@@%*,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%@&@@@@@@@@ // @@@@@@@@@@@@@@@@@@%@@@@@@@@(,,,,,,,,,,,.....,,,,...,,,,,,,,,,,,,,,,,,,,,,,,(&/.,,,,,,,,,,,*&&&@@@@@@ // @@@@@@@@@@@@@@@@@@@@@@@@@&&@(,,,,,*(%&@@@@@@@@@@@@@@&(,,,,,,,,,,,,,,,,,,,*%@(,,,,,,,,,,,,,,*#@@@@@@@ // @@@@@@@@@@@@@@@@@@@@@@@@@@@&@(%@@@@@@&#/*.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(@(,,,,,,,,,,,,,,,,*%&@@@@@ // @@@@@@@@@@@@@@@@@@@@@@@@@@@&@/,,,,./%@@&%/,,,,,,,,,,,,,,,,,,,,,,,,,,.*(#@@(,,,,,,,,,,,,,,,,,,*%@@@@@ // @@@@@@@@@@@@@@@@@@@@@@@@@@@&@/,,*&@@@%#######(*,,,,,,,,,,,,,,,,,,,,.(@%/*.,,,,,,,,,,,,,,,,,,,.(@%@@@ // @@@@@@@@@@@@@@@@@@@@@@@@@@&@&*/%@@@@@%/%@@@@%(&&&@@&#,,,,,,,,,,,,,,.&@*,,,,,,,,,,,,,,,,,,,,,,.*%@&@@ // @@@@@@@@@@@@@@@@@@@@@@@@@&@%*.*%@&,,#@%//(##(#&/.*#@&*,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@@@@@@@@@@%*,,,.*%&@@@@@@@@@@@@@@&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@@@@@@%&@#,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@@@@@&@%*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@@@&@&*.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(%@@@@@&/,,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@#@%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.*&@%/,,..,*%@#,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@&%@%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,./@#.,#&%(,.,%@*,,,,,,,,,,,,(@&@@ // @@@@@@@@@@@@@@&&@%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.*@&*/@(*&%*,#@*,,,,,,,,,,.*&&@@@ // @@@@@@@@@@@@@&@&*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#%/.,*&%*,#@*,,,,,,,,,,*%&&@@@ // @@@@@@@@@@&&@%/,,,,,,,,(%&&%(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*/*,,,,,,,,*/*/&%*,#@*,,,,,,,,,,(@&@@@@ // @@@@@@@@@%&@(,,,,,,,,/&%*.,#@(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(@@/,,,,,*&@@@#,,,#@*,,,,,,,,,(@@@@@@@ // @@@@@@@@&&%,.,,,,,,,,,,,,,,,(@&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#@%,,,,*(/.,,,./&&*,,,,,,,*%@@@@@@@@ // @@@@@@@@@&@@(*,,,,,,,*#&&&(,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(@%.,,,,,,/%&&@&/,,,,,,,*&@((@@@@@@ // @@@@@@@@@@@@%&@@@@@@@@&%&@@(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%@/.,,,,,,....,,,,,,,.(@%*.*%@@&&% // @@@@@@@@@@@@@@@@@@@@@@@&@&/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&@(.,,,,,,,*,,,,,,,./#/,,.*%@@@@@ // @@@@@@@@@@@@@@@@@@@@&&@@@@&#*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.(@#.,,,,,,/&%*,,,,,,,,,,,,.(@@@@@ // @@@@@@@@@@@@@@@@@%@@%*,,,,,*/,,(%(.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%@#.,,,,,,,(@#,,,,,,,,,,,,.*%&@@@ // @@@@@@@@@@@@@@@@%@&,,,,,,,,,,,,,#@@/,,,,,,,,,,,,,,,,,,,,,,,,,,,.*(&@#.,,,,,,,./&#,,,,,,,,,,,,.*%&@@@ // @@@@@@@@@@@@@@@@#@&##&@@@@@@@@@@&&@%,,,,,,,,,,,,,,,,,,,,,,,,,*(&@%*,,,,,,,,,,./&#,,,,,,,,,,,,.*%&@@@ // @@@@@@@@@@@@@@@@@@%@@%*,,,,,,,,,,,(/,,,,,,,,,,,,,,,,,,,,,,*%@%/,,,,,,,,,,,,,,./&#,,,,,,,,,,,,.*%&&@@ // @@@@@@@@@@@@@@@@@@&@@@#*,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/@&(,,,,,,,,,,,,,,,,,,/&#,,,,,,,,,,,,,,(&&@@ // @@@@@@@@@@@@@@@@@@@@&@@@&@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,*#/.,,,,,,,,,,,,,,,,,,#@(,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@@@@@&&@(.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*%@%*,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@@@@@&&&/.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,*(#&&#*.,,,,,,,,,,,,,,.(&&@@ // @@@@@@@@@@@@@@@@@&%@@&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*%@@@&(*,.,,,,,,,,,,,,,,,,,.(@%@@ // @@@@@@@@@@@@@@&@@%/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*/#&@@@&#/*,,,,,,,,,,,,,,,,,,,,,,,,,*%&@@ // @@@@@@@@@@@@@%@&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*/(%@@@%(*,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*%&@@ // @@@@@@@@@@@@&@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,/%&@@@@&/*,,.,,,,,,,,,,,,,,,,*#/.,,,,,,,,,,,,,,,,*%&@@ // @@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,*#&@@&%%@@@@@(.,,,,,,,,,,,,,,,,,,,,(@(.,,,,,,,,,,,,,,,,*%@&@ // @@@@@@@@@@@@@%&@&%/,,,,,,,,,,,,,,,,,,*#@@&@@@@@@@@@@@%,,,,,,,,,,,,,,,,,,,,*%@/.,,,,,,,,,,,,,,,,.(&&@ // @@@@@@@@@@@@@@@@@&%@@%(///*,......*%@@&&@@@@@@@@@@@@&@&*,,,,,,,,,,,,,,,,,/@&/,,,,,,,,,,,,,,,,,,.(@&@ // @@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&%@@@@@@@@@@@@@@@@@&&&(,,,,,,,,,,,,,,,(@%*,,,,,,,,,,,,,,,,,,,.*%&@ // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%,,,,,,,,,,,,#@&/.,,,,,,,,,,,,,,,,,.*//(&&@ // $CHADS Liquidity Pool / 28M tokens up for grabs + 20M for uniswap (chads.vc) // @dev [email protected] ([email protected] was taken) contract ChadsLiquidityPool is Ownable { using SafeMath for uint256; using SafeERC20 for IERC20; uint256 public constant INDIVIDUAL_CAP = 1.5 ether; uint256 public constant MIN_CONTRIBUTION = 0.1 ether; uint256 public immutable hardCap; uint256 public immutable startTime; uint256 public immutable endTime; uint256 public immutable tokensPerEth; mapping(address => uint256) public chadlists; mapping(address => uint256) public contributions; uint256 public weiRaised; IERC20 public token; IUniswapV2Router02 internal uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); event TokenPurchase(address indexed beneficiary, uint256 weiAmount, uint256 tokenAmount); constructor( uint256 _hardCap, uint256 _tokensPerEth, uint256 _startTime, uint256 _duration ) Ownable() public { hardCap = _hardCap; tokensPerEth = _tokensPerEth; startTime = _startTime; endTime = _startTime.add(_duration); } receive() payable external { _buyTokens(msg.sender); } function setToken(IERC20 _token) external onlyOwner { token = _token; } function addChadlists(address[] calldata accounts) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { chadlists[accounts[i]] = INDIVIDUAL_CAP; } } function addAndLockLiquidity() external onlyOwner { require(hasEnded(), "ChadsLiquidityPool: can only send liquidity once hardcap is reached"); uint256 amountEthForUniswap = address(this).balance; uint256 amountTokensForUniswap = token.balanceOf(address(this)); IChadsToken(address(token)).unpause(); token.approve(address(uniswapRouter), amountTokensForUniswap); uniswapRouter.addLiquidityETH { value: amountEthForUniswap } ( address(token), amountTokensForUniswap, amountTokensForUniswap, amountEthForUniswap, address(0x0), now ); IChadsToken(address(token)).initializeTwap(); } function _buyTokens(address beneficiary) internal { uint256 weiToHardcap = hardCap.sub(weiRaised); uint256 weiAmount = weiToHardcap < msg.value ? weiToHardcap : msg.value; _buyTokens(beneficiary, weiAmount); uint256 refund = msg.value.sub(weiAmount); if (refund > 0) { payable(beneficiary).transfer(refund); } } function _buyTokens(address beneficiary, uint256 weiAmount) internal { _validatePurchase(beneficiary, weiAmount); // Update internal state weiRaised = weiRaised.add(weiAmount); contributions[beneficiary] = contributions[beneficiary].add(weiAmount); // Transfer tokens uint256 tokenAmount = _getTokenAmount(weiAmount); token.safeTransfer(beneficiary, tokenAmount); emit TokenPurchase(beneficiary, weiAmount, tokenAmount); } function _validatePurchase(address beneficiary, uint256 weiAmount) internal view { require(beneficiary != address(0), "ChadsLiquidityPool: beneficiary is the zero address"); require(isOpen(), "ChadsLiquidityPool: sale did not start yet."); require(!hasEnded(), "ChadsLiquidityPool: sale is over."); require(weiAmount >= MIN_CONTRIBUTION, "ChadsLiquidityPool: weiAmount is smaller than min contribution."); require(!isWithinCappedSaleWindow() || (contributions[beneficiary].add(weiAmount) <= chadlists[beneficiary]), "ChadsLiquidityPool: individual cap exceeded or not whitelisted" ); this; } function _getTokenAmount(uint256 weiAmount) internal view returns (uint256) { return weiAmount.mul(tokensPerEth); } function isOpen() public view returns (bool) { return now >= startTime; } function isWithinCappedSaleWindow() public view returns (bool) { return now >= startTime && now <= (startTime + 6 hours); } function hasEnded() public view returns (bool) { return now >= endTime || weiRaised >= hardCap; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_hardCap","type":"uint256"},{"internalType":"uint256","name":"_tokensPerEth","type":"uint256"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"inputs":[],"name":"INDIVIDUAL_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_CONTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addAndLockLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addChadlists","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"chadlists","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hardCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWithinCappedSaleWindow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensPerEth","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":"weiRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006757600080fd5b506040516200230238038062002302833981810160405260808110156200008d57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050506000620000ce620001af60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083608081815250508260e081815250508160a081815250506200019e8183620001b760201b620019291790919060201c565b60c081815250505050505062000240565b600033905090565b60008082840190508381101562000236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60805160a05160c05160e051612069620002996000398061113852806119b8525080610788528061115e5250806107d8528061106c52806110df528061110d5250806105bf528061118852806113c152506120696000f3fe6080604052600436106101185760003560e01c806378e97925116100a0578063cbdd69b511610064578063cbdd69b514610488578063ecb70fb7146104b3578063f2fde38b146104e2578063fb86a40414610533578063fc0c546a1461055e57610128565b806378e97925146103475780638b12837d146103725780638da5cb5b146103d7578063a8d294051461042e578063b5d3fa711461045957610128565b806342e94c90116100e757806342e94c90146101ff57806347535d7b146102645780634c4bdd12146102935780635df58b60146102aa578063715018a61461033057610128565b8063144fa6d71461012d5780633197cbb61461017e5780634042b66f146101a957806340650c91146101d457610128565b3661012857610126336105b5565b005b600080fd5b34801561013957600080fd5b5061017c6004803603602081101561015057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610679565b005b34801561018a57600080fd5b50610193610786565b6040518082815260200191505060405180910390f35b3480156101b557600080fd5b506101be6107aa565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b506101e96107b0565b6040518082815260200191505060405180910390f35b34801561020b57600080fd5b5061024e6004803603602081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107bc565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102796107d4565b604051808215151515815260200191505060405180910390f35b34801561029f57600080fd5b506102a86107ff565b005b3480156102b657600080fd5b5061032e600480360360208110156102cd57600080fd5b81019080803590602001906401000000008111156102ea57600080fd5b8201836020820111156102fc57600080fd5b8035906020019184602083028401116401000000008311171561031e57600080fd5b9091929391929390505050610d82565b005b34801561033c57600080fd5b50610345610ee2565b005b34801561035357600080fd5b5061035c61106a565b6040518082815260200191505060405180910390f35b34801561037e57600080fd5b506103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108e565b6040518082815260200191505060405180910390f35b3480156103e357600080fd5b506103ec6110a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b506104436110cf565b6040518082815260200191505060405180910390f35b34801561046557600080fd5b5061046e6110db565b604051808215151515815260200191505060405180910390f35b34801561049457600080fd5b5061049d611136565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861115a565b604051808215151515815260200191505060405180910390f35b3480156104ee57600080fd5b506105316004803603602081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b2565b005b34801561053f57600080fd5b506105486113bf565b6040518082815260200191505060405180910390f35b34801561056a57600080fd5b506105736113e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006105ec6003547f000000000000000000000000000000000000000000000000000000000000000061140990919063ffffffff16565b905060003482106105fd57346105ff565b815b905061060b8382611453565b6000610620823461140990919063ffffffff16565b90506000811115610673578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610671573d6000803e3d6000fd5b505b50505050565b6106816115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035481565b67016345785d8a000081565b60026020528060005260406000206000915090505481565b60007f0000000000000000000000000000000000000000000000000000000000000000421015905090565b6108076115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6108d061115a565b610925576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180611ee96043913960600191505060405180910390fd5b60004790506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d60208110156109f557600080fd5b81019080805190602001909291905050509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b5557600080fd5b505af1158015610b69573d6000803e3d6000fd5b505050506040513d6020811015610b7f57600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168485876000426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b50505050506040513d6060811015610cd457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e379c31b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d6657600080fd5b505af1158015610d7a573d6000803e3d6000fd5b505050505050565b610d8a6115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008090505b82829050811015610edd576714d1120d7b16000060016000858585818110610e7557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610e51565b505050565b610eea6115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6714d1120d7b16000081565b60007f0000000000000000000000000000000000000000000000000000000000000000421015801561113157506154607f0000000000000000000000000000000000000000000000000000000000000000014211155b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f0000000000000000000000000000000000000000000000000000000000000000421015806111ad57507f000000000000000000000000000000000000000000000000000000000000000060035410155b905090565b6111ba6115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611301576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611e846026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061144b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ca565b905092915050565b61145d828261168a565b6114728160035461192990919063ffffffff16565b6003819055506114ca81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192990919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611518826119b1565b90506115678382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119ed9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8383604051808381526020018281526020019250505060405180910390a2505050565b600033905090565b6000838311158290611677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561163c578082015181840152602081019050611621565b50505050905090810190601f1680156116695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806120016033913960400191505060405180910390fd5b6117186107d4565b61176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611fd6602b913960400191505060405180910390fd5b61177561115a565b156117cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f8b6021913960400191505060405180910390fd5b67016345785d8a000081101561182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611eaa603f913960400191505060405180910390fd5b6118346110db565b15806118d05750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cd82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192990919063ffffffff16565b11155b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180611f2c603e913960400191505060405180910390fd5b5050565b6000808284019050838110156119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006119e67f000000000000000000000000000000000000000000000000000000000000000083611aa590919063ffffffff16565b9050919050565b611aa08363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b2b565b505050565b600080831415611ab85760009050611b25565b6000828402905082848281611ac957fe5b0414611b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f6a6021913960400191505060405180910390fd5b809150505b92915050565b6060611b8d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c1a9092919063ffffffff16565b9050600081511115611c1557808060200190516020811015611bae57600080fd5b8101908080519060200190929190505050611c14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611fac602a913960400191505060405180910390fd5b5b505050565b6060611c298484600085611c32565b90509392505050565b6060611c3d85611e38565b611caf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310611cff5780518252602082019150602081019050602083039250611cdc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611d61576040519150601f19603f3d011682016040523d82523d6000602084013e611d66565b606091505b50915091508115611d7b578092505050611e30565b600081511115611d8e5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df5578082015181840152602081019050611dda565b50505050905090810190601f168015611e225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611e7a57506000801b8214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343686164734c6971756964697479506f6f6c3a20776569416d6f756e7420697320736d616c6c6572207468616e206d696e20636f6e747269627574696f6e2e43686164734c6971756964697479506f6f6c3a2063616e206f6e6c792073656e64206c6971756964697479206f6e63652068617264636170206973207265616368656443686164734c6971756964697479506f6f6c3a20696e646976696475616c20636170206578636565646564206f72206e6f742077686974656c6973746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743686164734c6971756964697479506f6f6c3a2073616c65206973206f7665722e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656443686164734c6971756964697479506f6f6c3a2073616c6520646964206e6f74207374617274207965742e43686164734c6971756964697479506f6f6c3a2062656e656669636961727920697320746865207a65726f2061646472657373a2646970667358221220122f8e564f8722dd1cdb941da6c885f56b443ecf7e38d556ca7f3778725cc88c64736f6c6343000606003300000000000000000000000000000000000000000000000821ab0d4414980000000000000000000000000000000000000000000000000000000000000002d92a000000000000000000000000000000000000000000000000000000005f5cd460000000000000000000000000000000000000000000000000000000000000a8c0
Deployed Bytecode
0x6080604052600436106101185760003560e01c806378e97925116100a0578063cbdd69b511610064578063cbdd69b514610488578063ecb70fb7146104b3578063f2fde38b146104e2578063fb86a40414610533578063fc0c546a1461055e57610128565b806378e97925146103475780638b12837d146103725780638da5cb5b146103d7578063a8d294051461042e578063b5d3fa711461045957610128565b806342e94c90116100e757806342e94c90146101ff57806347535d7b146102645780634c4bdd12146102935780635df58b60146102aa578063715018a61461033057610128565b8063144fa6d71461012d5780633197cbb61461017e5780634042b66f146101a957806340650c91146101d457610128565b3661012857610126336105b5565b005b600080fd5b34801561013957600080fd5b5061017c6004803603602081101561015057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610679565b005b34801561018a57600080fd5b50610193610786565b6040518082815260200191505060405180910390f35b3480156101b557600080fd5b506101be6107aa565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b506101e96107b0565b6040518082815260200191505060405180910390f35b34801561020b57600080fd5b5061024e6004803603602081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107bc565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102796107d4565b604051808215151515815260200191505060405180910390f35b34801561029f57600080fd5b506102a86107ff565b005b3480156102b657600080fd5b5061032e600480360360208110156102cd57600080fd5b81019080803590602001906401000000008111156102ea57600080fd5b8201836020820111156102fc57600080fd5b8035906020019184602083028401116401000000008311171561031e57600080fd5b9091929391929390505050610d82565b005b34801561033c57600080fd5b50610345610ee2565b005b34801561035357600080fd5b5061035c61106a565b6040518082815260200191505060405180910390f35b34801561037e57600080fd5b506103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108e565b6040518082815260200191505060405180910390f35b3480156103e357600080fd5b506103ec6110a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b506104436110cf565b6040518082815260200191505060405180910390f35b34801561046557600080fd5b5061046e6110db565b604051808215151515815260200191505060405180910390f35b34801561049457600080fd5b5061049d611136565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861115a565b604051808215151515815260200191505060405180910390f35b3480156104ee57600080fd5b506105316004803603602081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b2565b005b34801561053f57600080fd5b506105486113bf565b6040518082815260200191505060405180910390f35b34801561056a57600080fd5b506105736113e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006105ec6003547f00000000000000000000000000000000000000000000000821ab0d441498000061140990919063ffffffff16565b905060003482106105fd57346105ff565b815b905061060b8382611453565b6000610620823461140990919063ffffffff16565b90506000811115610673578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610671573d6000803e3d6000fd5b505b50505050565b6106816115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000005f5d7d2081565b60035481565b67016345785d8a000081565b60026020528060005260406000206000915090505481565b60007f000000000000000000000000000000000000000000000000000000005f5cd460421015905090565b6108076115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6108d061115a565b610925576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180611ee96043913960600191505060405180910390fd5b60004790506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d60208110156109f557600080fd5b81019080805190602001909291905050509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b5557600080fd5b505af1158015610b69573d6000803e3d6000fd5b505050506040513d6020811015610b7f57600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168485876000426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b50505050506040513d6060811015610cd457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e379c31b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d6657600080fd5b505af1158015610d7a573d6000803e3d6000fd5b505050505050565b610d8a6115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008090505b82829050811015610edd576714d1120d7b16000060016000858585818110610e7557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610e51565b505050565b610eea6115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b7f000000000000000000000000000000000000000000000000000000005f5cd46081565b60016020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6714d1120d7b16000081565b60007f000000000000000000000000000000000000000000000000000000005f5cd460421015801561113157506154607f000000000000000000000000000000000000000000000000000000005f5cd460014211155b905090565b7f000000000000000000000000000000000000000000000000000000000002d92a81565b60007f000000000000000000000000000000000000000000000000000000005f5d7d20421015806111ad57507f00000000000000000000000000000000000000000000000821ab0d441498000060035410155b905090565b6111ba6115c2565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611301576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611e846026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f00000000000000000000000000000000000000000000000821ab0d441498000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061144b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ca565b905092915050565b61145d828261168a565b6114728160035461192990919063ffffffff16565b6003819055506114ca81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192990919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611518826119b1565b90506115678382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119ed9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8383604051808381526020018281526020019250505060405180910390a2505050565b600033905090565b6000838311158290611677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561163c578082015181840152602081019050611621565b50505050905090810190601f1680156116695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806120016033913960400191505060405180910390fd5b6117186107d4565b61176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611fd6602b913960400191505060405180910390fd5b61177561115a565b156117cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f8b6021913960400191505060405180910390fd5b67016345785d8a000081101561182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611eaa603f913960400191505060405180910390fd5b6118346110db565b15806118d05750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cd82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192990919063ffffffff16565b11155b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180611f2c603e913960400191505060405180910390fd5b5050565b6000808284019050838110156119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006119e67f000000000000000000000000000000000000000000000000000000000002d92a83611aa590919063ffffffff16565b9050919050565b611aa08363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b2b565b505050565b600080831415611ab85760009050611b25565b6000828402905082848281611ac957fe5b0414611b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f6a6021913960400191505060405180910390fd5b809150505b92915050565b6060611b8d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c1a9092919063ffffffff16565b9050600081511115611c1557808060200190516020811015611bae57600080fd5b8101908080519060200190929190505050611c14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611fac602a913960400191505060405180910390fd5b5b505050565b6060611c298484600085611c32565b90509392505050565b6060611c3d85611e38565b611caf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310611cff5780518252602082019150602081019050602083039250611cdc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611d61576040519150601f19603f3d011682016040523d82523d6000602084013e611d66565b606091505b50915091508115611d7b578092505050611e30565b600081511115611d8e5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df5578082015181840152602081019050611dda565b50505050905090810190601f168015611e225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611e7a57506000801b8214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343686164734c6971756964697479506f6f6c3a20776569416d6f756e7420697320736d616c6c6572207468616e206d696e20636f6e747269627574696f6e2e43686164734c6971756964697479506f6f6c3a2063616e206f6e6c792073656e64206c6971756964697479206f6e63652068617264636170206973207265616368656443686164734c6971756964697479506f6f6c3a20696e646976696475616c20636170206578636565646564206f72206e6f742077686974656c6973746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743686164734c6971756964697479506f6f6c3a2073616c65206973206f7665722e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656443686164734c6971756964697479506f6f6c3a2073616c6520646964206e6f74207374617274207965742e43686164734c6971756964697479506f6f6c3a2062656e656669636961727920697320746865207a65726f2061646472657373a2646970667358221220122f8e564f8722dd1cdb941da6c885f56b443ecf7e38d556ca7f3778725cc88c64736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000821ab0d4414980000000000000000000000000000000000000000000000000000000000000002d92a000000000000000000000000000000000000000000000000000000005f5cd460000000000000000000000000000000000000000000000000000000000000a8c0
-----Decoded View---------------
Arg [0] : _hardCap (uint256): 150000000000000000000
Arg [1] : _tokensPerEth (uint256): 186666
Arg [2] : _startTime (uint256): 1599919200
Arg [3] : _duration (uint256): 43200
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000821ab0d4414980000
Arg [1] : 000000000000000000000000000000000000000000000000000000000002d92a
Arg [2] : 000000000000000000000000000000000000000000000000000000005f5cd460
Arg [3] : 000000000000000000000000000000000000000000000000000000000000a8c0
Deployed Bytecode Sourcemap
32372:4340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33529:22;33540:10;33529;:22::i;:::-;32372:4340;;12:1:-1;9;2:12;33567:85:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33567:85:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;33567:85:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;32690:32;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32690:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32887:24;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32887:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32545:52;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32545:52:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32830:48;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32830:48:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;32830:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;36358:87;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36358:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;33868:757;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33868:757:0;;;:::i;:::-;;33660:200;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33660:200:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;33660:200:0;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;33660:200:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;33660:200:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;33660:200:0;;;;;;;;;;;;:::i;:::-;;20403:148;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20403:148:0;;;:::i;:::-;;32647:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32647:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32777:44;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32777:44:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;32777:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19761:79;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19761:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;32486:50;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32486:50:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;36453:137;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36453:137:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;32731:37;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32731:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;36598:111;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36598:111:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20706:244;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20706:244:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20706:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;32606:32;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32606:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32920:19;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32920:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;34633:387;34694:20;34717:22;34729:9;;34717:7;:11;;:22;;;;:::i;:::-;34694:45;;34750:17;34785:9;34770:12;:24;:51;;34812:9;34770:51;;;34797:12;34770:51;34750:71;;34834:34;34845:11;34858:9;34834:10;:34::i;:::-;34881:14;34898:24;34912:9;34898;:13;;:24;;;;:::i;:::-;34881:41;;34946:1;34937:6;:10;34933:80;;;34972:11;34964:29;;:37;34994:6;34964:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34964:37:0;34933:80;34633:387;;;;:::o;33567:85::-;19983:12;:10;:12::i;:::-;19973:22;;:6;;;;;;;;;;;:22;;;19965:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33638:6:::1;33630:5;;:14;;;;;;;;;;;;;;;;;;33567:85:::0;:::o;32690:32::-;;;:::o;32887:24::-;;;;:::o;32545:52::-;32588:9;32545:52;:::o;32830:48::-;;;;;;;;;;;;;;;;;:::o;36358:87::-;36397:4;36428:9;36421:3;:16;;36414:23;;36358:87;:::o;33868:757::-;19983:12;:10;:12::i;:::-;19973:22;;:6;;;;;;;;;;;:22;;;19965:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33937:10:::1;:8;:10::i;:::-;33929:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34032:27;34062:21;34032:51;;34094:30;34127:5;;;;;;;;;;;:15;;;34151:4;34127:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;34127:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;34127:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;34127:30:0;;;;;;;;;;;;;;;;34094:63;;34190:5;;;;;;;;;;;34170:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;34170:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;34170:37:0;;;;34218:5;;;;;;;;;;;:13;;;34240;;;;;;;;;;;34256:22;34218:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;34218:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;34218:61:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;34218:61:0;;;;;;;;;;;;;;;;;34290:13;;;;;;;;;;;:29;;;34338:19;34392:5;;;;;;;;;;;34413:22;34450;34487:19;34529:3;34548;34290:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;34290:272:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;34290:272:0;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;34290:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34593:5;;;;;;;;;;;34573:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;34573:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;34573:44:0;;;;20043:1;;33868:757::o:0;33660:200::-;19983:12;:10;:12::i;:::-;19973:22;;:6;;;;;;;;;;;:22;;;19965:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33746:9:::1;33758:1:::0;33746:13:::1;;33741:112;33765:8;;:15;;33761:1;:19;33741:112;;;32527:9;33802;:22;33812:8;;33821:1;33812:11;;;;;;;;;;;;;;;33802:22;;;;;;;;;;;;;;;:39;;;;33782:3;;;;;;;33741:112;;;;33660:200:::0;;:::o;20403:148::-;19983:12;:10;:12::i;:::-;19973:22;;:6;;;;;;;;;;;:22;;;19965:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20510:1:::1;20473:40;;20494:6;::::0;::::1;;;;;;;;;20473:40;;;;;;;;;;;;20541:1;20524:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;20403:148::o:0;32647:34::-;;;:::o;32777:44::-;;;;;;;;;;;;;;;;;:::o;19761:79::-;19799:7;19826:6;;;;;;;;;;;19819:13;;19761:79;:::o;32486:50::-;32527:9;32486:50;:::o;36453:137::-;36510:4;36541:9;36534:3;:16;;:48;;;;;36574:7;36562:9;:19;36554:3;:28;;36534:48;36527:55;;36453:137;:::o;32731:37::-;;;:::o;36598:111::-;36639:4;36670:7;36663:3;:14;;:38;;;;36694:7;36681:9;;:20;;36663:38;36656:45;;36598:111;:::o;20706:244::-;19983:12;:10;:12::i;:::-;19973:22;;:6;;;;;;;;;;;:22;;;19965:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20815:1:::1;20795:22;;:8;:22;;;;20787:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20905:8;20876:38;;20897:6;::::0;::::1;;;;;;;;;20876:38;;;;;;;;;;;;20934:8;20925:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;20706:244:::0;:::o;32606:32::-;;;:::o;32920:19::-;;;;;;;;;;;;;:::o;4049:136::-;4107:7;4134:43;4138:1;4141;4134:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4127:50;;4049:136;;;;:::o;35028:505::-;35108:41;35126:11;35139:9;35108:17;:41::i;:::-;35208:24;35222:9;35208;;:13;;:24;;;;:::i;:::-;35196:9;:36;;;;35272:41;35303:9;35272:13;:26;35286:11;35272:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;35243:13;:26;35257:11;35243:26;;;;;;;;;;;;;;;:70;;;;35354:19;35376:26;35392:9;35376:15;:26::i;:::-;35354:48;;35413:44;35432:11;35445;35413:5;;;;;;;;;;;:18;;;;:44;;;;;:::i;:::-;35489:11;35475:50;;;35502:9;35513:11;35475:50;;;;;;;;;;;;;;;;;;;;;;;;35028:505;;;:::o;18394:106::-;18447:15;18482:10;18475:17;;18394:106;:::o;4488:192::-;4574:7;4607:1;4602;:6;;4610:12;4594:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4594:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4634:9;4650:1;4646;:5;4634:17;;4671:1;4664:8;;;4488:192;;;;;:::o;35541:672::-;35664:1;35641:25;;:11;:25;;;;35633:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35741:8;:6;:8::i;:::-;35733:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35817:10;:8;:10::i;:::-;35816:11;35808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32588:9;35884;:29;;35876:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36001:26;:24;:26::i;:::-;36000:27;:100;;;;36077:9;:22;36087:11;36077:22;;;;;;;;;;;;;;;;36032:41;36063:9;36032:13;:26;36046:11;36032:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;:67;;36000:100;35992:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35541:672;;:::o;3585:181::-;3643:7;3663:9;3679:1;3675;:5;3663:17;;3704:1;3699;:6;;3691:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3757:1;3750:8;;;3585:181;;;;:::o;36221:129::-;36288:7;36315:27;36329:12;36315:9;:13;;:27;;;;:::i;:::-;36308:34;;36221:129;;;:::o;14773:177::-;14856:86;14876:5;14906:23;;;14931:2;14935:5;14883:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14883:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;14883:58:0;14856:19;:86::i;:::-;14773:177;;;:::o;4939:471::-;4997:7;5247:1;5242;:6;5238:47;;;5272:1;5265:8;;;;5238:47;5297:9;5313:1;5309;:5;5297:17;;5342:1;5337;5333;:5;;;;;;:10;5325:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:1;5394:8;;;4939:471;;;;;:::o;17078:761::-;17502:23;17528:69;17556:4;17528:69;;;;;;;;;;;;;;;;;17536:5;17528:27;;;;:69;;;;;:::i;:::-;17502:95;;17632:1;17612:10;:17;:21;17608:224;;;17754:10;17743:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17743:30:0;;;;;;;;;;;;;;;;17735:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17608:224;17078:761;;;:::o;11846:196::-;11949:12;11981:53;12004:6;12012:4;12018:1;12021:12;11981:22;:53::i;:::-;11974:60;;11846:196;;;;;:::o;13223:979::-;13353:12;13386:18;13397:6;13386:10;:18::i;:::-;13378:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13512:12;13526:23;13553:6;:11;;13573:8;13584:4;13553:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13553:36:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;13511:78:0;;;;13604:7;13600:595;;;13635:10;13628:17;;;;;;13600:595;13769:1;13749:10;:17;:21;13745:439;;;14012:10;14006:17;14073:15;14060:10;14056:2;14052:19;14045:44;13960:148;14155:12;14148:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14148:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13223:979;;;;;;;:::o;8731:619::-;8791:4;9053:16;9080:19;9102:66;9080:88;;;;9271:7;9259:20;9247:32;;9311:11;9299:8;:23;;:42;;;;;9338:3;9326:15;;:8;:15;;9299:42;9291:51;;;;8731:619;;;:::o
Swarm Source
ipfs://122f8e564f8722dd1cdb941da6c885f56b443ecf7e38d556ca7f3778725cc88c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 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.