Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 13 from a total of 13 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 15392802 | 801 days ago | IN | 0 ETH | 0.00080301 | ||||
Transfer | 12666739 | 1230 days ago | IN | 0 ETH | 0.00185468 | ||||
Approve | 12469732 | 1261 days ago | IN | 0 ETH | 0.00302919 | ||||
Approve | 12316092 | 1285 days ago | IN | 0 ETH | 0.00181751 | ||||
Approve | 12310958 | 1285 days ago | IN | 0 ETH | 0.00274957 | ||||
Approve | 12285906 | 1289 days ago | IN | 0 ETH | 0.00713025 | ||||
Approve | 12278462 | 1290 days ago | IN | 0 ETH | 0.01035611 | ||||
Transfer Ownersh... | 12278175 | 1290 days ago | IN | 0 ETH | 0.00751842 | ||||
Approve | 12277389 | 1291 days ago | IN | 0 ETH | 0.01029926 | ||||
Mint | 12277380 | 1291 days ago | IN | 0 ETH | 0.01540233 | ||||
Transfer | 12277025 | 1291 days ago | IN | 0 ETH | 0.00973969 | ||||
Mint | 12276998 | 1291 days ago | IN | 0 ETH | 0.01776148 | ||||
0x60806040 | 12276720 | 1291 days ago | IN | 0 ETH | 0.59618929 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TideToken
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-20 */ /* Tide tokens TIDAL and RIPTIDE riptide.finance @nightg0at SPDX-License-Identifier: MIT */ // File: @openzeppelin/contracts/GSN/Context.sol pragma solidity >=0.6.0 <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 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; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity >=0.6.0 <0.8.0; /** * @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); } // File: @openzeppelin/contracts/math/SafeMath.sol pragma solidity >=0.6.0 <0.8.0; /** * @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; } } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol pragma solidity >=0.6.0 <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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of 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 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for {name} and {symbol}, initializes {decimals} with * a default value of 18. * * To select a different value for {decimals}, use {_setupDecimals}. * * All three of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) public { _name = name_; _symbol = symbol_; _decimals = 18; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view 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 value {ERC20} uses, unless {_setupDecimals} is * called. * * 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 returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), 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}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); 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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @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: * * - `to` 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 = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(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); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(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 Sets {decimals} to a value other than the default one of 18. * * WARNING: This function should only be called from the constructor. Most * applications that interact with token contracts will not expect * {decimals} to ever change, and may work incorrectly if it does. */ function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } /** * @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 to 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 { } } // File: @openzeppelin/contracts/token/ERC20/ERC20Burnable.sol pragma solidity >=0.6.0 <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 { using SafeMath for uint256; /** * @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 { uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance"); _approve(account, _msgSender(), decreasedAllowance); _burn(account, amount); } } // File: @openzeppelin/contracts/access/Ownable.sol pragma solidity >=0.6.0 <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 () 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; } } // File: contracts/ds-math/math.sol /// math.sol -- mixin for inline numerical wizardry // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // GPL-3.0-or-later pragma solidity >0.4.13; contract DSMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, "ds-math-add-overflow"); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, "ds-math-sub-underflow"); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow"); } function min(uint x, uint y) internal pure returns (uint z) { return x <= y ? x : y; } function max(uint x, uint y) internal pure returns (uint z) { return x >= y ? x : y; } function imin(int x, int y) internal pure returns (int z) { return x <= y ? x : y; } function imax(int x, int y) internal pure returns (int z) { return x >= y ? x : y; } uint constant WAD = 10 ** 18; uint constant RAY = 10 ** 27; //rounds to zero if x*y < WAD / 2 function wmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), WAD / 2) / WAD; } //rounds to zero if x*y < WAD / 2 function rmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), RAY / 2) / RAY; } //rounds to zero if x*y < WAD / 2 function wdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, WAD), y / 2) / y; } //rounds to zero if x*y < RAY / 2 function rdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, RAY), y / 2) / y; } // This famous algorithm is called "exponentiation by squaring" // and calculates x^n with x as fixed-point and n as regular unsigned. // // It's O(log n), instead of O(n) for naive repeated multiplication. // // These facts are why it works: // // If n is even, then x^n = (x^2)^(n/2). // If n is odd, then x^n = x * x^(n-1), // and applying the equation for even x gives // x^n = x * (x^2)^((n-1) / 2). // // Also, EVM division is flooring and // floor[(n-1) / 2] = floor[n / 2]. // function rpow(uint x, uint n) internal pure returns (uint z) { z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } } // File: contracts/interfaces/ITideToken.sol pragma solidity 0.6.12; interface ITideToken is IERC20 { function owner() external view returns (address); function mint(address _to, uint256 _amount) external; function setParent(address _newConfig) external; function wipeout(address _recipient, uint256 _amount) external; } // File: contracts/interfaces/ITideParent.sol pragma solidity 0.6.12; interface ITideParent { function poseidon() external view returns (address); function burnRate() external view returns (uint256); function transmuteRate() external view returns (uint256); function sibling(address _siblingCandidate) external view returns (address); function cumulativeProtectionOf(address _addr) external view returns (uint256, uint256); function getProtectedAddress(address _addr) external view returns (bool, uint256, uint256); function isUniswapTokenPair(address _addr) external returns (bool); function isUniswapTokenPairWith(address _pair, address _token) external view returns (bool); function willBurn(address _sender, address _recipient) external returns (bool); function willWipeout(address _sender, address _recipient) external returns (bool); } // File: contracts/interfaces/IPoseidon.sol pragma solidity 0.6.12; interface IPoseidon { function getPhase() external view returns (address); } // File: contracts/TideToken.sol pragma solidity 0.6.12; contract TideToken is ERC20Burnable, Ownable, DSMath { ITideParent public parent; constructor( string memory name, string memory symbol, ITideParent _parent ) public ERC20(name, symbol) { parent = _parent; } modifier onlySibling() { require(parent.sibling(msg.sender) == address(this), "TIDE::onlySibling: Must be sibling"); _; } modifier onlyMinter() { require( parent.sibling(msg.sender) == address(this) || msg.sender == owner(), "TIDE::onlyMinter: Must be owner or sibling to call mint" ); _; } modifier onlyParent() { require(msg.sender == address(parent), "TIDE::onlyParent: Only current parent can change parent"); _; } function setParent(address _newParent) public onlyParent { require(_newParent != address(0), "TIDE::setParent: zero address"); parent = ITideParent(_newParent); } function transfer(address _recipient, uint256 _amount) public virtual override returns (bool) { uint256 amount = _amount; if (parent.willBurn(msg.sender, _recipient)) { amount = _transferBurn(msg.sender, amount); } if (parent.willWipeout(msg.sender, _recipient)) { ITideToken sibling = ITideToken(parent.sibling(address(this))); sibling.wipeout(_recipient, amount); if (parent.isUniswapTokenPair(_recipient)) { // do not burn if this is a legitimate pair for this token if (!parent.isUniswapTokenPairWith(_recipient, address(this))) { _burn(msg.sender, amount); amount = 0; } } } return super.transfer(_recipient, amount); } function transferFrom(address _sender, address _recipient, uint256 _amount) public virtual override returns (bool) { uint256 amount = _amount; if (parent.willBurn(_sender, _recipient)) { amount = _transferBurn(_sender, amount); } if (parent.willWipeout(_sender, _recipient)) { ITideToken sibling = ITideToken(parent.sibling(address(this))); sibling.wipeout(_recipient, amount); if (parent.isUniswapTokenPair(_recipient)) { // do not burn if this is a legitimate pair for this token if (!parent.isUniswapTokenPairWith(_recipient, address(this))) { _burn(_sender, amount); amount = 0; } } } return super.transferFrom(_sender, _recipient, amount); } function _transferBurn(address _sender, uint256 _amount) private returns (uint256) { uint256 burnAmount; if (_inPhase()) { // percentage transmuted into sibling token and sent to sender burnAmount = wmul(_amount, parent.transmuteRate()); ITideToken sibling = ITideToken(parent.sibling(address(this))); sibling.mint(_sender, burnAmount); } else { // percentage burned burnAmount = wmul(_amount, parent.burnRate()); } _burn(_sender, burnAmount); // return the new amount after burning return sub(_amount, burnAmount); } function mint(address _to, uint256 _amount) public onlyMinter { _mint(_to, _amount); } function wipeout(address _recipient, uint256 _amount) public onlySibling { uint256 burnAmount; (bool active, uint256 proportion, uint256 floor) = parent.getProtectedAddress(_recipient); if (parent.isUniswapTokenPair(_recipient)) { // simulate golden trident protection proportion = 5e17; floor = 69e16; } else if (!active) { // check if recipient has one or more protective tokens (proportion, floor) = parent.cumulativeProtectionOf(_recipient); } burnAmount = _reduce(_recipient, _amount, proportion, floor); _burn(_recipient, burnAmount); } function _reduce(address _recipient, uint256 _amount, uint256 _proportion, uint256 _floor) internal view returns (uint256) { uint256 balance = balanceOf(_recipient); uint256 burnAmount; if (balance > _floor) { burnAmount = wmul(_amount, _proportion); // if resultant balance lower than zero burn everything if (burnAmount > balance) { burnAmount = balance; } //if resultant balance lower than floor leave floor remaining if (sub(balance, burnAmount) < _floor) { burnAmount = sub(balance, _floor); } } return burnAmount; } function _inPhase() internal view returns (bool) { return IPoseidon(parent.poseidon()).getPhase() == address(this); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"contract ITideParent","name":"_parent","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":[{"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":"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":[{"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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"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":"parent","outputs":[{"internalType":"contract ITideParent","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newParent","type":"address"}],"name":"setParent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","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":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"wipeout","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200384f3803806200384f833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505082828160039080519060200190620001dc92919062000317565b508060049080519060200190620001f592919062000317565b506012600560006101000a81548160ff021916908360ff16021790555050506000620002266200030f60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620003bd565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035a57805160ff19168380011785556200038b565b828001600101855582156200038b579182015b828111156200038a5782518255916020019190600101906200036d565b5b5090506200039a91906200039e565b5090565b5b80821115620003b95760008160009055506001016200039f565b5090565b61348280620003cd6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461059a578063a9059cbb146105fe578063dd62ed3e14610662578063e7380ece146106da578063f2fde38b146107285761012c565b806370a0823114610433578063715018a61461048b57806379cc6790146104955780638da5cb5b146104e357806395d89b41146105175761012c565b8063313ce567116100f4578063313ce567146102fe578063395093511461031f57806340c10f191461038357806342966c68146103d157806360f96a8f146103ff5761012c565b806306fdde0314610131578063095ea7b3146101b45780631499c5921461021857806318160ddd1461025c57806323b872dd1461027a575b600080fd5b61013961076c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610200600480360360408110156101ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061080e565b60405180821515815260200191505060405180910390f35b61025a6004803603602081101561022e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082c565b005b6102646109b9565b6040518082815260200191505060405180910390f35b6102e66004803603606081101561029057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c3565b60405180821515815260200191505060405180910390f35b610306610ed1565b604051808260ff16815260200191505060405180910390f35b61036b6004803603604081101561033557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee8565b60405180821515815260200191505060405180910390f35b6103cf6004803603604081101561039957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f9b565b005b6103fd600480360360208110156103e757600080fd5b810190808035906020019092919050505061112d565b005b610407611141565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104756004803603602081101561044957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b6040518082815260200191505060405180910390f35b6104936111af565b005b6104e1600480360360408110156104ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061133a565b005b6104eb61139c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61051f6113c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105e6600480360360408110156105b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611468565b60405180821515815260200191505060405180910390f35b61064a6004803603604081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611535565b60405180821515815260200191505060405180910390f35b6106c46004803603604081101561067857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a41565b6040518082815260200191505060405180910390f35b610726600480360360408110156106f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ac8565b005b61076a6004803603602081101561073e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed5565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108045780601f106107d957610100808354040283529160200191610804565b820191906000526020600020905b8154815290600101906020018083116107e757829003601f168201915b5050505050905090565b600061082261081b6120e5565b84846120ed565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806132e26037913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f544944453a3a736574506172656e743a207a65726f206164647265737300000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b600080829050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db12ec1586866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b505050506040513d6020811015610a9c57600080fd5b810190808051906020019092919050505015610abf57610abc85826122e4565b90505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fab9041c86866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610b6857600080fd5b505af1158015610b7c573d6000803e3d6000fd5b505050506040513d6020811015610b9257600080fd5b810190808051906020019092919050505015610ebc576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d6020811015610c5d57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663e7380ece86846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610ce157600080fd5b505af1158015610cf5573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633372fdb6866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d8457600080fd5b505af1158015610d98573d6000803e3d6000fd5b505050506040513d6020811015610dae57600080fd5b810190808051906020019092919050505015610eba57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d7802986306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b8101908080519060200190929190505050610eb957610eb486836125c5565b600091505b5b505b610ec7858583612789565b9150509392505050565b6000600560009054906101000a900460ff16905090565b6000610f91610ef56120e5565b84610f8c8560016000610f066120e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b6120ed565b6001905092915050565b3073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d602081101561106557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614806110ca575061109b61139c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806133656037913960400191505060405180910390fd5b61112982826128ea565b5050565b61113e6111386120e5565b826125c5565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b76120e5565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611279576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611379826040518060600160405280602481526020016133416024913961136a866113656120e5565b611a41565b612ab19092919063ffffffff16565b905061138d836113876120e5565b836120ed565b61139783836125c5565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561145e5780601f106114335761010080835404028352916020019161145e565b820191906000526020600020905b81548152906001019060200180831161144157829003601f168201915b5050505050905090565b600061152b6114756120e5565b8461152685604051806060016040528060258152602001613428602591396001600061149f6120e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6120ed565b6001905092915050565b600080829050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db12ec1533866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d602081101561160e57600080fd5b8101908080519060200190929190505050156116315761162e33826122e4565b90505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fab9041c33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156116da57600080fd5b505af11580156116ee573d6000803e3d6000fd5b505050506040513d602081101561170457600080fd5b810190808051906020019092919050505015611a2e576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117a557600080fd5b505afa1580156117b9573d6000803e3d6000fd5b505050506040513d60208110156117cf57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663e7380ece86846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561185357600080fd5b505af1158015611867573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633372fdb6866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156118f657600080fd5b505af115801561190a573d6000803e3d6000fd5b505050506040513d602081101561192057600080fd5b810190808051906020019092919050505015611a2c57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d7802986306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156119dd57600080fd5b505afa1580156119f1573d6000803e3d6000fd5b505050506040513d6020811015611a0757600080fd5b8101908080519060200190929190505050611a2b57611a2633836125c5565b600091505b5b505b611a388482612b71565b91505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611b6857600080fd5b505afa158015611b7c573d6000803e3d6000fd5b505050506040513d6020811015611b9257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611c0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134066022913960400191505060405180910390fd5b600080600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3c67597876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060606040518083038186803b158015611c9e57600080fd5b505afa158015611cb2573d6000803e3d6000fd5b505050506040513d6060811015611cc857600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050925092509250600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633372fdb6876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b505050506040513d6020811015611da857600080fd5b810190808051906020019092919050505015611dd9576706f05b59d3b2000091506709935f581f0500009050611eb5565b82611eb457600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663240e442f876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6040811015611e9057600080fd5b81019080805190602001909291908051906020019092919050505080925081935050505b5b611ec186868484612b8f565b9350611ecd86856125c5565b505050505050565b611edd6120e5565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806132746026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133e26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061329a6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000806122ef612beb565b156124f9576123a083600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663131299af6040518163ffffffff1660e01b815260040160206040518083038186803b15801561236057600080fd5b505afa158015612374573d6000803e3d6000fd5b505050506040513d602081101561238a57600080fd5b8101908080519060200190929190505050612d43565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561242d57600080fd5b505afa158015612441573d6000803e3d6000fd5b505050506040513d602081101561245757600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff166340c10f1986846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156124db57600080fd5b505af11580156124ef573d6000803e3d6000fd5b50505050506125a8565b6125a583600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bed998506040518163ffffffff1660e01b815260040160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d602081101561258f57600080fd5b8101908080519060200190929190505050612d43565b90505b6125b284826125c5565b6125bc8382612d83565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061339c6021913960400191505060405180910390fd5b61265782600083612e06565b6126c281604051806060016040528060228152602001613252602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271981600254612e0b90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000612796848484612e55565b612857846127a26120e5565b6128528560405180606001604052806028815260200161331960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006128086120e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6120ed565b600190509392505050565b6000808284019050838110156128e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561298d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61299960008383612e06565b6129ae8160025461286290919063ffffffff16565b600281905550612a05816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000838311158290612b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b23578082015181840152602081019050612b08565b50505050905090810190601f168015612b505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000612b85612b7e6120e5565b8484612e55565b6001905092915050565b600080612b9b86611167565b9050600083821115612bde57612bb18686612d43565b905081811115612bbf578190505b83612bca8383612d83565b1015612bdd57612bda8285612d83565b90505b5b8092505050949350505050565b60003073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c62b919e6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c6c57600080fd5b505afa158015612c80573d6000803e3d6000fd5b505050506040513d6020811015612c9657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663eced02806040518163ffffffff1660e01b815260040160206040518083038186803b158015612cec57600080fd5b505afa158015612d00573d6000803e3d6000fd5b505050506040513d6020811015612d1657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614905090565b6000670de0b6b3a7640000612d73612d5b8585613116565b6002670de0b6b3a764000081612d6d57fe5b046131ab565b81612d7a57fe5b04905092915050565b6000828284039150811115612e00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b505050565b6000612e4d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ab1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133bd6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061322f6023913960400191505060405180910390fd5b612f6c838383612e06565b612fd7816040518060600160405280602681526020016132bc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061306a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080821480613133575082828385029250828161313057fe5b04145b6131a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284019150811015613228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365544944453a3a6f6e6c79506172656e743a204f6e6c792063757272656e7420706172656e742063616e206368616e676520706172656e7445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365544944453a3a6f6e6c794d696e7465723a204d757374206265206f776e6572206f72207369626c696e6720746f2063616c6c206d696e7445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373544944453a3a6f6e6c795369626c696e673a204d757374206265207369626c696e6745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d5240fee75a4e73a2bfbe4b340837bf4619123496f3a796b58d85286096fdd7b64736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000021c1adbbf9b7059b60329cedb2e375a585f354050000000000000000000000000000000000000000000000000000000000000005546964616c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005544944414c000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461059a578063a9059cbb146105fe578063dd62ed3e14610662578063e7380ece146106da578063f2fde38b146107285761012c565b806370a0823114610433578063715018a61461048b57806379cc6790146104955780638da5cb5b146104e357806395d89b41146105175761012c565b8063313ce567116100f4578063313ce567146102fe578063395093511461031f57806340c10f191461038357806342966c68146103d157806360f96a8f146103ff5761012c565b806306fdde0314610131578063095ea7b3146101b45780631499c5921461021857806318160ddd1461025c57806323b872dd1461027a575b600080fd5b61013961076c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610200600480360360408110156101ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061080e565b60405180821515815260200191505060405180910390f35b61025a6004803603602081101561022e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082c565b005b6102646109b9565b6040518082815260200191505060405180910390f35b6102e66004803603606081101561029057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c3565b60405180821515815260200191505060405180910390f35b610306610ed1565b604051808260ff16815260200191505060405180910390f35b61036b6004803603604081101561033557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee8565b60405180821515815260200191505060405180910390f35b6103cf6004803603604081101561039957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f9b565b005b6103fd600480360360208110156103e757600080fd5b810190808035906020019092919050505061112d565b005b610407611141565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104756004803603602081101561044957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b6040518082815260200191505060405180910390f35b6104936111af565b005b6104e1600480360360408110156104ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061133a565b005b6104eb61139c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61051f6113c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105e6600480360360408110156105b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611468565b60405180821515815260200191505060405180910390f35b61064a6004803603604081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611535565b60405180821515815260200191505060405180910390f35b6106c46004803603604081101561067857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a41565b6040518082815260200191505060405180910390f35b610726600480360360408110156106f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ac8565b005b61076a6004803603602081101561073e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed5565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108045780601f106107d957610100808354040283529160200191610804565b820191906000526020600020905b8154815290600101906020018083116107e757829003601f168201915b5050505050905090565b600061082261081b6120e5565b84846120ed565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806132e26037913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f544944453a3a736574506172656e743a207a65726f206164647265737300000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b600080829050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db12ec1586866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b505050506040513d6020811015610a9c57600080fd5b810190808051906020019092919050505015610abf57610abc85826122e4565b90505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fab9041c86866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610b6857600080fd5b505af1158015610b7c573d6000803e3d6000fd5b505050506040513d6020811015610b9257600080fd5b810190808051906020019092919050505015610ebc576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d6020811015610c5d57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663e7380ece86846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610ce157600080fd5b505af1158015610cf5573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633372fdb6866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d8457600080fd5b505af1158015610d98573d6000803e3d6000fd5b505050506040513d6020811015610dae57600080fd5b810190808051906020019092919050505015610eba57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d7802986306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b8101908080519060200190929190505050610eb957610eb486836125c5565b600091505b5b505b610ec7858583612789565b9150509392505050565b6000600560009054906101000a900460ff16905090565b6000610f91610ef56120e5565b84610f8c8560016000610f066120e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b6120ed565b6001905092915050565b3073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d602081101561106557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614806110ca575061109b61139c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806133656037913960400191505060405180910390fd5b61112982826128ea565b5050565b61113e6111386120e5565b826125c5565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b76120e5565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611279576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611379826040518060600160405280602481526020016133416024913961136a866113656120e5565b611a41565b612ab19092919063ffffffff16565b905061138d836113876120e5565b836120ed565b61139783836125c5565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561145e5780601f106114335761010080835404028352916020019161145e565b820191906000526020600020905b81548152906001019060200180831161144157829003601f168201915b5050505050905090565b600061152b6114756120e5565b8461152685604051806060016040528060258152602001613428602591396001600061149f6120e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6120ed565b6001905092915050565b600080829050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db12ec1533866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d602081101561160e57600080fd5b8101908080519060200190929190505050156116315761162e33826122e4565b90505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fab9041c33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156116da57600080fd5b505af11580156116ee573d6000803e3d6000fd5b505050506040513d602081101561170457600080fd5b810190808051906020019092919050505015611a2e576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117a557600080fd5b505afa1580156117b9573d6000803e3d6000fd5b505050506040513d60208110156117cf57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663e7380ece86846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561185357600080fd5b505af1158015611867573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633372fdb6866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156118f657600080fd5b505af115801561190a573d6000803e3d6000fd5b505050506040513d602081101561192057600080fd5b810190808051906020019092919050505015611a2c57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d7802986306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156119dd57600080fd5b505afa1580156119f1573d6000803e3d6000fd5b505050506040513d6020811015611a0757600080fd5b8101908080519060200190929190505050611a2b57611a2633836125c5565b600091505b5b505b611a388482612b71565b91505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611b6857600080fd5b505afa158015611b7c573d6000803e3d6000fd5b505050506040513d6020811015611b9257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611c0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134066022913960400191505060405180910390fd5b600080600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3c67597876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060606040518083038186803b158015611c9e57600080fd5b505afa158015611cb2573d6000803e3d6000fd5b505050506040513d6060811015611cc857600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050925092509250600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633372fdb6876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b505050506040513d6020811015611da857600080fd5b810190808051906020019092919050505015611dd9576706f05b59d3b2000091506709935f581f0500009050611eb5565b82611eb457600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663240e442f876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6040811015611e9057600080fd5b81019080805190602001909291908051906020019092919050505080925081935050505b5b611ec186868484612b8f565b9350611ecd86856125c5565b505050505050565b611edd6120e5565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806132746026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133e26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061329a6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000806122ef612beb565b156124f9576123a083600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663131299af6040518163ffffffff1660e01b815260040160206040518083038186803b15801561236057600080fd5b505afa158015612374573d6000803e3d6000fd5b505050506040513d602081101561238a57600080fd5b8101908080519060200190929190505050612d43565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da367b97306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561242d57600080fd5b505afa158015612441573d6000803e3d6000fd5b505050506040513d602081101561245757600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff166340c10f1986846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156124db57600080fd5b505af11580156124ef573d6000803e3d6000fd5b50505050506125a8565b6125a583600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bed998506040518163ffffffff1660e01b815260040160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d602081101561258f57600080fd5b8101908080519060200190929190505050612d43565b90505b6125b284826125c5565b6125bc8382612d83565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061339c6021913960400191505060405180910390fd5b61265782600083612e06565b6126c281604051806060016040528060228152602001613252602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271981600254612e0b90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000612796848484612e55565b612857846127a26120e5565b6128528560405180606001604052806028815260200161331960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006128086120e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6120ed565b600190509392505050565b6000808284019050838110156128e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561298d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61299960008383612e06565b6129ae8160025461286290919063ffffffff16565b600281905550612a05816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000838311158290612b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b23578082015181840152602081019050612b08565b50505050905090810190601f168015612b505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000612b85612b7e6120e5565b8484612e55565b6001905092915050565b600080612b9b86611167565b9050600083821115612bde57612bb18686612d43565b905081811115612bbf578190505b83612bca8383612d83565b1015612bdd57612bda8285612d83565b90505b5b8092505050949350505050565b60003073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c62b919e6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c6c57600080fd5b505afa158015612c80573d6000803e3d6000fd5b505050506040513d6020811015612c9657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663eced02806040518163ffffffff1660e01b815260040160206040518083038186803b158015612cec57600080fd5b505afa158015612d00573d6000803e3d6000fd5b505050506040513d6020811015612d1657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614905090565b6000670de0b6b3a7640000612d73612d5b8585613116565b6002670de0b6b3a764000081612d6d57fe5b046131ab565b81612d7a57fe5b04905092915050565b6000828284039150811115612e00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b505050565b6000612e4d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ab1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133bd6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061322f6023913960400191505060405180910390fd5b612f6c838383612e06565b612fd7816040518060600160405280602681526020016132bc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab19092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061306a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080821480613133575082828385029250828161313057fe5b04145b6131a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284019150811015613228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365544944453a3a6f6e6c79506172656e743a204f6e6c792063757272656e7420706172656e742063616e206368616e676520706172656e7445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365544944453a3a6f6e6c794d696e7465723a204d757374206265206f776e6572206f72207369626c696e6720746f2063616c6c206d696e7445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373544944453a3a6f6e6c795369626c696e673a204d757374206265207369626c696e6745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d5240fee75a4e73a2bfbe4b340837bf4619123496f3a796b58d85286096fdd7b64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000021c1adbbf9b7059b60329cedb2e375a585f354050000000000000000000000000000000000000000000000000000000000000005546964616c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005544944414c000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): Tidal
Arg [1] : symbol (string): TIDAL
Arg [2] : _parent (address): 0x21C1ADBbf9B7059b60329ceDB2E375a585f35405
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000021c1adbbf9b7059b60329cedb2e375a585f35405
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 546964616c000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 544944414c000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
28506:4528:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11470:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13576:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29252:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12545:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30182:763;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12397:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14957:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;31556:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20818:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28564:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12708:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23283:148;;;:::i;:::-;;21228:295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22641:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11672:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15678:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29435:741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13278:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31657:615;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23586:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11470:83;11507:13;11540:5;11533:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11470:83;:::o;13576:169::-;13659:4;13676:39;13685:12;:10;:12::i;:::-;13699:7;13708:6;13676:8;:39::i;:::-;13733:4;13726:11;;13576:169;;;;:::o;29252:175::-;29163:6;;;;;;;;;;;29141:29;;:10;:29;;;29133:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29346:1:::1;29324:24;;:10;:24;;;;29316:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;29410:10;29389:6;;:32;;;;;;;;;;;;;;;;;;29252:175:::0;:::o;12545:100::-;12598:7;12625:12;;12618:19;;12545:100;:::o;30182:763::-;30291:4;30304:14;30321:7;30304:24;;30339:6;;;;;;;;;;;:15;;;30355:7;30364:10;30339:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30335:98;;;30395:30;30409:7;30418:6;30395:13;:30::i;:::-;30386:39;;30335:98;30443:6;;;;;;;;;;;:18;;;30462:7;30471:10;30443:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30439:440;;;30493:18;30525:6;;;;;;;;;;;:14;;;30548:4;30525:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30493:62;;30564:7;:15;;;30580:10;30592:6;30564:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30612:6;;;;;;;;;;;:25;;;30638:10;30612:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30608:264;;;30735:6;;;;;;;;;;;:29;;;30765:10;30785:4;30735:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30730:133;;30806:22;30812:7;30821:6;30806:5;:22::i;:::-;30850:1;30841:10;;30730:133;30608:264;30439:440;;30892:47;30911:7;30920:10;30932:6;30892:18;:47::i;:::-;30885:54;;;30182:763;;;;;:::o;12397:83::-;12438:5;12463:9;;;;;;;;;;;12456:16;;12397:83;:::o;14957:218::-;15045:4;15062:83;15071:12;:10;:12::i;:::-;15085:7;15094:50;15133:10;15094:11;:25;15106:12;:10;:12::i;:::-;15094:25;;;;;;;;;;;;;;;:34;15120:7;15094:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15062:8;:83::i;:::-;15163:4;15156:11;;14957:218;;;;:::o;31556:95::-;28981:4;28943:43;;:6;;;;;;;;;;;:14;;;28958:10;28943:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;:68;;;;29004:7;:5;:7::i;:::-;28990:21;;:10;:21;;;28943:68;28927:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31626:19:::1;31632:3;31637:7;31626:5;:19::i;:::-;31556:95:::0;;:::o;20818:91::-;20874:27;20880:12;:10;:12::i;:::-;20894:6;20874:5;:27::i;:::-;20818:91;:::o;28564:25::-;;;;;;;;;;;;;:::o;12708:119::-;12774:7;12801:9;:18;12811:7;12801:18;;;;;;;;;;;;;;;;12794:25;;12708:119;;;:::o;23283:148::-;22863:12;:10;:12::i;:::-;22853:22;;:6;;;;;;;;;;;:22;;;22845:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23390:1:::1;23353:40;;23374:6;;;;;;;;;;;23353:40;;;;;;;;;;;;23421:1;23404:6;;:19;;;;;;;;;;;;;;;;;;23283:148::o:0;21228:295::-;21305:26;21334:84;21371:6;21334:84;;;;;;;;;;;;;;;;;:32;21344:7;21353:12;:10;:12::i;:::-;21334:9;:32::i;:::-;:36;;:84;;;;;:::i;:::-;21305:113;;21431:51;21440:7;21449:12;:10;:12::i;:::-;21463:18;21431:8;:51::i;:::-;21493:22;21499:7;21508:6;21493:5;:22::i;:::-;21228:295;;;:::o;22641:79::-;22679:7;22706:6;;;;;;;;;;;22699:13;;22641:79;:::o;11672:87::-;11711:13;11744:7;11737:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11672:87;:::o;15678:269::-;15771:4;15788:129;15797:12;:10;:12::i;:::-;15811:7;15820:96;15859:15;15820:96;;;;;;;;;;;;;;;;;:11;:25;15832:12;:10;:12::i;:::-;15820:25;;;;;;;;;;;;;;;:34;15846:7;15820:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15788:8;:129::i;:::-;15935:4;15928:11;;15678:269;;;;:::o;29435:741::-;29523:4;29536:14;29553:7;29536:24;;29571:6;;;;;;;;;;;:15;;;29587:10;29599;29571:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29567:104;;;29630:33;29644:10;29656:6;29630:13;:33::i;:::-;29621:42;;29567:104;29681:6;;;;;;;;;;;:18;;;29700:10;29712;29681:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29677:446;;;29734:18;29766:6;;;;;;;;;;;:14;;;29789:4;29766:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29734:62;;29805:7;:15;;;29821:10;29833:6;29805:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29853:6;;;;;;;;;;;:25;;;29879:10;29853:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29849:267;;;29976:6;;;;;;;;;;;:29;;;30006:10;30026:4;29976:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29971:136;;30047:25;30053:10;30065:6;30047:5;:25::i;:::-;30094:1;30085:10;;29971:136;29849:267;29677:446;;30136:34;30151:10;30163:6;30136:14;:34::i;:::-;30129:41;;;29435:741;;;;:::o;13278:151::-;13367:7;13394:11;:18;13406:5;13394:18;;;;;;;;;;;;;;;:27;13413:7;13394:27;;;;;;;;;;;;;;;;13387:34;;13278:151;;;;:::o;31657:615::-;28834:4;28796:43;;:6;;;;;;;;;;;:14;;;28811:10;28796:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;28788:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31737:18:::1;31763:11:::0;31776:18:::1;31796:13:::0;31813:6:::1;;;;;;;;;;;:26;;;31840:10;31813:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31762:89;;;;;;31862:6;;;;;;;;;;;:25;;;31888:10;31862:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;31858:306;;;31968:4;31955:17;;31989:5;31981:13;;31858:306;;;32013:6;32008:156;;32115:6;;;;;;;;;;;:29;;;32145:10;32115:41;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;32093:63;;;;;;;;32008:156;31858:306;32183:47;32191:10;32203:7;32212:10;32224:5;32183:7;:47::i;:::-;32170:60;;32237:29;32243:10;32255;32237:5;:29::i;:::-;28885:1;;;;31657:615:::0;;:::o;23586:244::-;22863:12;:10;:12::i;:::-;22853:22;;:6;;;;;;;;;;;:22;;;22845:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23695:1:::1;23675:22;;:8;:22;;;;23667:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23785:8;23756:38;;23777:6;;;;;;;;;;;23756:38;;;;;;;;;;;;23814:8;23805:6;;:17;;;;;;;;;;;;;;;;;;23586:244:::0;:::o;744:106::-;797:15;832:10;825:17;;744:106;:::o;18825:346::-;18944:1;18927:19;;:5;:19;;;;18919:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19025:1;19006:21;;:7;:21;;;;18998:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19109:6;19079:11;:18;19091:5;19079:18;;;;;;;;;;;;;;;:27;19098:7;19079:27;;;;;;;;;;;;;;;:36;;;;19147:7;19131:32;;19140:5;19131:32;;;19156:6;19131:32;;;;;;;;;;;;;;;;;;18825:346;;;:::o;30953:597::-;31027:7;31043:18;31072:10;:8;:10::i;:::-;31068:362;;;31176:37;31181:7;31190:6;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31176:4;:37::i;:::-;31163:50;;31222:18;31254:6;;;;;;;;;;;:14;;;31277:4;31254:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31222:62;;31293:7;:12;;;31306:7;31315:10;31293:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31068:362;;;;31390:32;31395:7;31404:6;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31390:4;:32::i;:::-;31377:45;;31068:362;31436:26;31442:7;31451:10;31436:5;:26::i;:::-;31520:24;31524:7;31533:10;31520:3;:24::i;:::-;31513:31;;;30953:597;;;;:::o;17969:418::-;18072:1;18053:21;;:7;:21;;;;18045:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18125:49;18146:7;18163:1;18167:6;18125:20;:49::i;:::-;18208:68;18231:6;18208:68;;;;;;;;;;;;;;;;;:9;:18;18218:7;18208:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;18187:9;:18;18197:7;18187:18;;;;;;;;;;;;;;;:89;;;;18302:24;18319:6;18302:12;;:16;;:24;;;;:::i;:::-;18287:12;:39;;;;18368:1;18342:37;;18351:7;18342:37;;;18372:6;18342:37;;;;;;;;;;;;;;;;;;17969:418;;:::o;14227:321::-;14333:4;14350:36;14360:6;14368:9;14379:6;14350:9;:36::i;:::-;14397:121;14406:6;14414:12;:10;:12::i;:::-;14428:89;14466:6;14428:89;;;;;;;;;;;;;;;;;:11;:19;14440:6;14428:19;;;;;;;;;;;;;;;:33;14448:12;:10;:12::i;:::-;14428:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14397:8;:121::i;:::-;14536:4;14529:11;;14227:321;;;;;:::o;4842:181::-;4900:7;4920:9;4936:1;4932;:5;4920:17;;4961:1;4956;:6;;4948:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5014:1;5007:8;;;4842:181;;;;:::o;17258:378::-;17361:1;17342:21;;:7;:21;;;;17334:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17412:49;17441:1;17445:7;17454:6;17412:20;:49::i;:::-;17489:24;17506:6;17489:12;;:16;;:24;;;;:::i;:::-;17474:12;:39;;;;17545:30;17568:6;17545:9;:18;17555:7;17545:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;17524:9;:18;17534:7;17524:18;;;;;;;;;;;;;;;:51;;;;17612:7;17591:37;;17608:1;17591:37;;;17621:6;17591:37;;;;;;;;;;;;;;;;;;17258:378;;:::o;5745:192::-;5831:7;5864:1;5859;:6;;5867:12;5851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5891:9;5907:1;5903;:5;5891:17;;5928:1;5921:8;;;5745:192;;;;;:::o;13040:175::-;13126:4;13143:42;13153:12;:10;:12::i;:::-;13167:9;13178:6;13143:9;:42::i;:::-;13203:4;13196:11;;13040:175;;;;:::o;32280:616::-;32394:7;32410:15;32428:21;32438:10;32428:9;:21::i;:::-;32410:39;;32456:18;32495:6;32485:7;:16;32481:386;;;32525:26;32530:7;32539:11;32525:4;:26::i;:::-;32512:39;;32640:7;32627:10;:20;32623:67;;;32673:7;32660:20;;32623:67;32798:6;32771:24;32775:7;32784:10;32771:3;:24::i;:::-;:33;32767:93;;;32830:20;32834:7;32843:6;32830:3;:20::i;:::-;32817:33;;32767:93;32481:386;32880:10;32873:17;;;;32280:616;;;;;;:::o;32904:125::-;32947:4;33018;32967:56;;32977:6;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32967:37;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:56;;;32960:63;;32904:125;:::o;25613:113::-;25666:6;25522:8;25689:23;25693:9;25697:1;25700;25693:3;:9::i;:::-;25710:1;25522:8;25704:7;;;;;;25689:3;:23::i;:::-;:29;;;;;;25685:33;;25613:113;;;;:::o;24795:129::-;24847:6;24889:1;24883;24879;:5;24875:9;;;24874:16;;24866:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24795:129;;;;:::o;20196:92::-;;;;:::o;5306:136::-;5364:7;5391:43;5395:1;5398;5391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5384:50;;5306:136;;;;:::o;16437:539::-;16561:1;16543:20;;:6;:20;;;;16535:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16645:1;16624:23;;:9;:23;;;;16616:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16700:47;16721:6;16729:9;16740:6;16700:20;:47::i;:::-;16780:71;16802:6;16780:71;;;;;;;;;;;;;;;;;:9;:17;16790:6;16780:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;16760:9;:17;16770:6;16760:17;;;;;;;;;;;;;;;:91;;;;16885:32;16910:6;16885:9;:20;16895:9;16885:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16862:9;:20;16872:9;16862:20;;;;;;;;;;;;;;;:55;;;;16950:9;16933:35;;16942:6;16933:35;;;16961:6;16933:35;;;;;;;;;;;;;;;;;;16437:539;;;:::o;24930:142::-;24982:6;25014:1;25009;:6;:30;;;;25038:1;25033;25028;25024;:5;25020:9;;;25019:15;;;;;;:20;25009:30;25001:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24930:142;;;;:::o;24661:128::-;24713:6;24755:1;24749;24745;:5;24741:9;;;24740:16;;24732:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24661:128;;;;:::o
Swarm Source
ipfs://d5240fee75a4e73a2bfbe4b340837bf4619123496f3a796b58d85286096fdd7b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.