ERC-20
VPN
Overview
Max Total Supply
25,228,115.0464439 MYST
Holders
3,321 (0.00%)
Market
Price
$0.19 @ 0.000056 ETH (+1.06%)
Onchain Market Cap
$4,887,518.41
Circulating Supply Market Cap
$6,283,421.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
5.7541 MYSTValue
$1.11 ( ~0.000318204379727175 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | MEXC | MYST-USDT | $0.1938 0.0000555 Eth | $19,717.44 101,725.380 MYST | 80.3448% |
2 | Quickswap | 0X1379E8886A944D2D9D440B3D88DF536AEA08D9F3-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174 | $0.1951 0.0000561 Eth | $3,227.58 16,819.054 0X1379E8886A944D2D9D440B3D88DF536AEA08D9F3 | 13.2840% |
3 | Uniswap V3 (Ethereum) | 0X4CF89CA06AD997BC732DC876ED2A7F26A9E7F361-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $0.1929 0.0000557 Eth | $632.26 3,277.520 0X4CF89CA06AD997BC732DC876ED2A7F26A9E7F361 | 2.5887% |
4 | Uniswap V2 (Ethereum) | 0X4CF89CA06AD997BC732DC876ED2A7F26A9E7F361-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $0.1787 0.0000538 Eth | $361.72 1,767.594 0X4CF89CA06AD997BC732DC876ED2A7F26A9E7F361 | 1.3961% |
5 | Uniswap V3 (Polygon) | 0X1379E8886A944D2D9D440B3D88DF536AEA08D9F3-0X0D500B1D8E8EF31E21C99D1DB9A6444D3ADF1270 | $0.1908 0.0000549 Eth | $350.23 1,894.407 0X1379E8886A944D2D9D440B3D88DF536AEA08D9F3 | 1.4962% |
6 | HitBTC | MYST-BTC | $0.1876 0.0000553 Eth | $149.96 1,127.000 MYST | 0.8901% |
Contract Name:
MystToken
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-08-17 */ // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.6.11; /** * @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); } /** * Upgrade agent interface inspired by Lunyr. * * Upgrade agent transfers tokens to a new contract. * Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting. */ abstract contract IUpgradeAgent { function isUpgradeAgent() external virtual pure returns (bool); function upgradeFrom(address _from, uint256 _value) public virtual; function originalSupply() public virtual view returns (uint256); function originalToken() public virtual view returns (address); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } 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; } } contract MystToken is Context, IERC20, IUpgradeAgent { using SafeMath for uint256; using Address for address; address immutable _originalToken; // Address of MYSTv1 token uint256 immutable _originalSupply; // Token supply of MYSTv1 token // The original MYST token and the new MYST token have a decimal difference of 10. // As such, minted values as well as the total supply comparisons need to offset all values // by 10 zeros to properly compare them. uint256 constant private DECIMAL_OFFSET = 1e10; bool constant public override isUpgradeAgent = true; // Upgradeability interface marker address private _upgradeMaster; // He can enable future token migration IUpgradeAgent private _upgradeAgent; // The next contract where the tokens will be migrated uint256 private _totalUpgraded; // How many tokens we have upgraded by now mapping(address => uint256) private _balances; uint256 private _totalSupply; string constant public name = "Mysterium"; string constant public symbol = "MYST"; uint8 constant public decimals = 18; // EIP712 bytes32 public immutable DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; // The nonces mapping is given for replay protection in permit function. mapping(address => uint) public nonces; // ERC20-allowances mapping (address => mapping (address => uint256)) private _allowances; event Minted(address indexed to, uint256 amount); event Burned(address indexed from, uint256 amount); // State of token upgrade enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading, Completed} // Token upgrade events event Upgrade(address indexed from, address agent, uint256 _value); event UpgradeAgentSet(address agent); event UpgradeMasterSet(address master); constructor(address originalToken) public { // upgradability settings _originalToken = originalToken; _originalSupply = IERC20(originalToken).totalSupply(); // set upgrade master _upgradeMaster = _msgSender(); // construct EIP712 domain separator DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes(name)), keccak256(bytes('1')), _chainID(), address(this) ) ); } function totalSupply() public view override(IERC20) returns (uint256) { return _totalSupply; } function balanceOf(address tokenHolder) public view override(IERC20) returns (uint256) { return _balances[tokenHolder]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _move(_msgSender(), recipient, amount); return true; } function burn(uint256 amount) public { _burn(_msgSender(), amount); } function allowance(address holder, address spender) public view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 value) public override returns (bool) { _approve(_msgSender(), spender, value); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } 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; } /** * ERC2612 `permit`: 712-signed token approvals */ function permit(address holder, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, 'MYST: Permit expired'); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_TYPEHASH, holder, spender, value, nonces[holder]++, deadline)) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == holder, 'MYST: invalid signature'); _approve(holder, spender, value); } /** * Note that we're not decreasing allowance of uint(-1). This makes it simple to ERC777 operator. */ function transferFrom(address holder, address recipient, uint256 amount) public override returns (bool) { // require(recipient != address(0), "MYST: transfer to the zero address"); require(holder != address(0), "MYST: transfer from the zero address"); address spender = _msgSender(); // Allowance for uint256(-1) means "always allowed" and is analog for erc777 operators but in erc20 semantics. if (holder != spender && _allowances[holder][spender] != uint256(-1)) { _approve(holder, spender, _allowances[holder][spender].sub(amount, "MYST: transfer amount exceeds allowance")); } _move(holder, recipient, amount); return true; } /** * Creates `amount` tokens and assigns them to `holder`, increasing * the total supply. */ function _mint(address holder, uint256 amount) internal { require(holder != address(0), "MYST: mint to the zero address"); // Update state variables _totalSupply = _totalSupply.add(amount); _balances[holder] = _balances[holder].add(amount); emit Minted(holder, amount); emit Transfer(address(0), holder, amount); } function _burn(address from, uint256 amount) internal { require(from != address(0), "MYST: burn from the zero address"); // Update state variables _balances[from] = _balances[from].sub(amount, "MYST: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(from, address(0), amount); emit Burned(from, amount); } function _move(address from, address to, uint256 amount) private { // Sending to zero address is equal burning if (to == address(0)) { _burn(from, amount); return; } _balances[from] = _balances[from].sub(amount, "MYST: transfer amount exceeds balance"); _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } function _approve(address holder, address spender, uint256 value) internal { require(holder != address(0), "MYST: approve from the zero address"); require(spender != address(0), "MYST: approve to the zero address"); _allowances[holder][spender] = value; emit Approval(holder, spender, value); } // -------------- UPGRADE FROM v1 TOKEN -------------- function originalToken() public view override returns (address) { return _originalToken; } function originalSupply() public view override returns (uint256) { return _originalSupply; } function upgradeFrom(address _account, uint256 _value) public override { require(msg.sender == originalToken(), "only original token can call upgradeFrom"); // Value is multiplied by 0e10 as old token had decimals = 8? _mint(_account, _value.mul(DECIMAL_OFFSET)); require(totalSupply() <= originalSupply().mul(DECIMAL_OFFSET), "can not mint more tokens than in original contract"); } // -------------- PREPARE FOR FUTURE UPGRADABILITY -------------- function upgradeMaster() public view returns (address) { return _upgradeMaster; } function upgradeAgent() public view returns (address) { return address(_upgradeAgent); } function totalUpgraded() public view returns (uint256) { return _totalUpgraded; } /** * Tokens can be upgraded by calling this function. */ function upgrade(uint256 amount) public { UpgradeState state = getUpgradeState(); require(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading, "MYST: token is not in upgrading state"); require(amount != 0, "MYST: upgradable amount should be more than 0"); address holder = _msgSender(); // Burn tokens to be upgraded _burn(holder, amount); // Remember how many tokens we have upgraded _totalUpgraded = _totalUpgraded.add(amount); // Upgrade agent upgrades/reissues tokens _upgradeAgent.upgradeFrom(holder, amount); emit Upgrade(holder, upgradeAgent(), amount); } function setUpgradeMaster(address newUpgradeMaster) external { require(newUpgradeMaster != address(0x0), "MYST: upgrade master can't be zero address"); require(_msgSender() == _upgradeMaster, "MYST: only upgrade master can set new one"); _upgradeMaster = newUpgradeMaster; emit UpgradeMasterSet(upgradeMaster()); } function setUpgradeAgent(address agent) external { require(_msgSender()== _upgradeMaster, "MYST: only a master can designate the next agent"); require(agent != address(0x0), "MYST: upgrade agent can't be zero address"); require(getUpgradeState() != UpgradeState.Upgrading, "MYST: upgrade has already begun"); _upgradeAgent = IUpgradeAgent(agent); require(_upgradeAgent.isUpgradeAgent(), "MYST: agent should implement IUpgradeAgent interface"); // Make sure that token supplies match in source and target require(_upgradeAgent.originalSupply() == totalSupply(), "MYST: upgrade agent should know token's total supply"); emit UpgradeAgentSet(upgradeAgent()); } function getUpgradeState() public view returns(UpgradeState) { if(address(_upgradeAgent) == address(0x00)) return UpgradeState.WaitingForAgent; else if(_totalUpgraded == 0) return UpgradeState.ReadyToUpgrade; else if(totalSupply() == 0) return UpgradeState.Completed; else return UpgradeState.Upgrading; } // -------------- FUNDS RECOVERY -------------- address internal _fundsDestination; event FundsRecoveryDestinationChanged(address indexed previousDestination, address indexed newDestination); /** * Setting new destination of funds recovery. */ function setFundsDestination(address newDestination) public { require(_msgSender()== _upgradeMaster, "MYST: only a master can set funds destination"); require(newDestination != address(0), "MYST: funds destination can't be zero addreess"); _fundsDestination = newDestination; emit FundsRecoveryDestinationChanged(_fundsDestination, newDestination); } /** * Getting funds destination address. */ function getFundsDestination() public view returns (address) { return _fundsDestination; } /** Transfers selected tokens into `_fundsDestination` address. */ function claimTokens(address token) public { require(_fundsDestination != address(0), "MYST: funds destination can't be zero addreess"); uint256 amount = IERC20(token).balanceOf(address(this)); IERC20(token).transfer(_fundsDestination, amount); } // -------------- HELPERS -------------- function _chainID() private pure returns (uint256) { uint256 chainID; assembly { chainID := chainid() } return chainID; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"originalToken","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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousDestination","type":"address"},{"indexed":true,"internalType":"address","name":"newDestination","type":"address"}],"name":"FundsRecoveryDestinationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Minted","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"agent","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"agent","type":"address"}],"name":"UpgradeAgentSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"master","type":"address"}],"name":"UpgradeMasterSet","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenHolder","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":"token","type":"address"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFundsDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUpgradeState","outputs":[{"internalType":"enum MystToken.UpgradeState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isUpgradeAgent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDestination","type":"address"}],"name":"setFundsDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"agent","type":"address"}],"name":"setUpgradeAgent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newUpgradeMaster","type":"address"}],"name":"setUpgradeMaster","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":[],"name":"totalUpgraded","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":"holder","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":"uint256","name":"amount","type":"uint256"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeAgent","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"upgradeFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeMaster","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e06040523480156200001157600080fd5b506040516200342c3803806200342c833981810160405260208110156200003757600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c657600080fd5b505afa158015620000db573d6000803e3d6000fd5b505050506040513d6020811015620000f257600080fd5b810190808051906020019092919050505060a081815250506200011a6200027a60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518080620033da60529139605201905060405180910390206040518060400160405280600981526020017f4d797374657269756d0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525080519060200120620001fd6200028260201b60201c565b30604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012060c08181525050506200028f565b600033905090565b6000804690508091505090565b60805160601c60a05160c051613116620002c460003980610f92528061173e5250806112f5525080610b0952506131166000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806361d3d7a611610104578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e14610964578063df8de3e7146109dc578063f58c5b6e14610a20578063ffeb7d7514610a6a576101da565b8063a9059cbb14610803578063c752ff6214610869578063d505accf14610887578063d7e7088a14610920576101da565b80637ecebe00116100de5780637ecebe00146106965780638444b391146106ee57806395d89b411461071a578063a457c2d71461079d576101da565b806361d3d7a6146105ce57806370a08231146105f0578063753e88e514610648576101da565b8063313ce5671161017c57806345977d031161014b57806345977d03146104ee5780634b2ba0dd1461051c5780635de4ccb01461053a578063600440cb14610584576101da565b8063313ce567146104185780633644e5151461043c578063395093511461045a57806342966c68146104c0576101da565b806318160ddd116101b857806318160ddd14610312578063238e130a1461033057806323b872dd1461037457806330adf81f146103fa576101da565b806306fdde03146101df578063095ea7b3146102625780630e7c1cb5146102c8575b600080fd5b6101e7610aae565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ae7565b604051808215151515815260200191505060405180910390f35b6102d0610b05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61031a610b2d565b6040518082815260200191505060405180910390f35b6103726004803603602081101561034657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b37565b005b6103e06004803603606081101561038a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d29565b604051808215151515815260200191505060405180910390f35b610402610f64565b6040518082815260200191505060405180910390f35b610420610f8b565b604051808260ff1660ff16815260200191505060405180910390f35b610444610f90565b6040518082815260200191505060405180910390f35b6104a66004803603604081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fb4565b604051808215151515815260200191505060405180910390f35b6104ec600480360360208110156104d657600080fd5b8101908080359060200190929190505050611067565b005b61051a6004803603602081101561050457600080fd5b810190808035906020019092919050505061107b565b005b6105246112f1565b6040518082815260200191505060405180910390f35b610542611319565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058c611343565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105d661136c565b604051808215151515815260200191505060405180910390f35b6106326004803603602081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611371565b6040518082815260200191505060405180910390f35b6106946004803603604081101561065e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ba565b005b6106d8600480360360208110156106ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e8565b6040518082815260200191505060405180910390f35b6106f6611500565b6040518082600581111561070657fe5b60ff16815260200191505060405180910390f35b610722611596565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610762578082015181840152602081019050610747565b50505050905090810190601f16801561078f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107e9600480360360408110156107b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115cf565b604051808215151515815260200191505060405180910390f35b61084f6004803603604081101561081957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061169c565b604051808215151515815260200191505060405180910390f35b6108716116ba565b6040518082815260200191505060405180910390f35b61091e600480360360e081101561089d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506116c4565b005b6109626004803603602081101561093657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a26565b005b6109c66004803603604081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e93565b6040518082815260200191505060405180910390f35b610a1e600480360360208110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1a565b005b610a28612167565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610aac60048036036020811015610a8057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612191565b005b6040518060400160405280600981526020017f4d797374657269756d000000000000000000000000000000000000000000000081525081565b6000610afb610af4612370565b8484612378565b6001905092915050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000600454905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b77612370565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612f1d602d913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f99602e913960400191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e1db88922daae16be4e3c1a1f4bfab0cf6741938844967bd985ac8b2a12c80460405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e7d6024913960400191505060405180910390fd5b6000610dba612370565b90508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e9457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610f4d57610f4c8582610f4786604051806060016040528060278152602001612ea160279139600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b612378565b5b610f5885858561262f565b60019150509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061105d610fc1612370565b846110588560066000610fd2612370565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282290919063ffffffff16565b612378565b6001905092915050565b611078611072612370565b826128aa565b50565b6000611085611500565b90506003600581111561109457fe5b8160058111156110a057fe5b14806110c25750600460058111156110b457fe5b8160058111156110c057fe5b145b611117576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612f746025913960400191505060405180910390fd5b6000821415611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613066602d913960400191505060405180910390fd5b600061117b612370565b905061118781846128aa565b61119c8360025461282290919063ffffffff16565b600281905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e582856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561124b57600080fd5b505af115801561125f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac6112a3611319565b85604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600181565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113c2610b05565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611445576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612e346028913960400191505060405180910390fd5b611466826114616402540be40084612acf90919063ffffffff16565b612b55565b6114856402540be4006114776112f1565b612acf90919063ffffffff16565b61148d610b2d565b11156114e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612fc76032913960400191505060405180910390fd5b5050565b60056020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115615760029050611593565b600060025414156115755760039050611593565b600061157f610b2d565b141561158e5760059050611593565b600490505b90565b6040518060400160405280600481526020017f4d5953540000000000000000000000000000000000000000000000000000000081525081565b60006116926115dc612370565b8461168d856040518060600160405280602581526020016130936025913960066000611606612370565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b612378565b6001905092915050565b60006116b06116a9612370565b848461262f565b6001905092915050565b6000600254905090565b4284101561173a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d5953543a205065726d6974206578706972656400000000000000000000000081525060200191505060405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561192a573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561199e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611a10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d5953543a20696e76616c6964207369676e617475726500000000000000000081525060200191505060405180910390fd5b611a1b898989612378565b505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a66612370565b73ffffffffffffffffffffffffffffffffffffffff1614611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612e046030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061303d6029913960400191505060405180910390fd5b60046005811115611b6557fe5b611b6d611500565b6005811115611b7857fe5b1415611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d5953543a20757067726164652068617320616c726561647920626567756e0081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166361d3d7a66040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9557600080fd5b505afa158015611ca9573d6000803e3d6000fd5b505050506040513d6020811015611cbf57600080fd5b8101908080519060200190929190505050611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180612ee96034913960400191505060405180910390fd5b611d2d610b2d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634b2ba0dd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d9557600080fd5b505afa158015611da9573d6000803e3d6000fd5b505050506040513d6020811015611dbf57600080fd5b810190808051906020019092919050505014611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180612dd06034913960400191505060405180910390fd5b7f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc611e4f611319565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f99602e913960400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561204157600080fd5b505afa158015612055573d6000803e3d6000fd5b505050506040513d602081101561206b57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561212757600080fd5b505af115801561213b573d6000803e3d6000fd5b505050506040513d602081101561215157600080fd5b8101908080519060200190929190505050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612f4a602a913960400191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612257612370565b73ffffffffffffffffffffffffffffffffffffffff16146122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806130b86029913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0bae748e6d38d2b1532af619519837d91d74845ad693f6f229677b4ac20b2d5061232c611343565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061301a6023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612484576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e5c6021913960400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600083831115829061261c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125e15780820151818401526020810190506125c6565b50505050905090810190601f16801561260e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126735761266e83826128aa565b61281d565b6126df81604051806060016040528060258152602001612dab60259139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277481600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000808284019050838110156128a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561294d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d5953543a206275726e2066726f6d20746865207a65726f206164647265737381525060200191505060405180910390fd5b6129b981604051806060016040528060218152602001612ff960219139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a1181600454612d6090919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7826040518082815260200191505060405180910390a25050565b600080831415612ae25760009050612b4f565b6000828402905082848281612af357fe5b0414612b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ec86021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d5953543a206d696e7420746f20746865207a65726f2061646472657373000081525060200191505060405180910390fd5b612c0d8160045461282290919063ffffffff16565b600481905550612c6581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000612da283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061256f565b90509291505056fe4d5953543a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d5953543a2075706772616465206167656e742073686f756c64206b6e6f7720746f6b656e277320746f74616c20737570706c794d5953543a206f6e6c792061206d61737465722063616e2064657369676e61746520746865206e657874206167656e746f6e6c79206f726967696e616c20746f6b656e2063616e2063616c6c207570677261646546726f6d4d5953543a20617070726f766520746f20746865207a65726f20616464726573734d5953543a207472616e736665722066726f6d20746865207a65726f20616464726573734d5953543a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d5953543a206167656e742073686f756c6420696d706c656d656e742049557067726164654167656e7420696e746572666163654d5953543a206f6e6c792061206d61737465722063616e207365742066756e64732064657374696e6174696f6e4d5953543a2075706772616465206d61737465722063616e2774206265207a65726f20616464726573734d5953543a20746f6b656e206973206e6f7420696e20757067726164696e672073746174654d5953543a2066756e64732064657374696e6174696f6e2063616e2774206265207a65726f20616464726565737363616e206e6f74206d696e74206d6f726520746f6b656e73207468616e20696e206f726967696e616c20636f6e74726163744d5953543a206275726e20616d6f756e7420657863656564732062616c616e63654d5953543a20617070726f76652066726f6d20746865207a65726f20616464726573734d5953543a2075706772616465206167656e742063616e2774206265207a65726f20616464726573734d5953543a2075706772616461626c6520616d6f756e742073686f756c64206265206d6f7265207468616e203045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d5953543a206f6e6c792075706772616465206d61737465722063616e20736574206e6577206f6e65a2646970667358221220e393b4a13817dcc90ba046c1b73b9a8491bfa27bf58bffe6f45686907c1e2a5964736f6c634300060b0033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429000000000000000000000000a645264c5603e96c3b0b078cdab68733794b0a71
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806361d3d7a611610104578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e14610964578063df8de3e7146109dc578063f58c5b6e14610a20578063ffeb7d7514610a6a576101da565b8063a9059cbb14610803578063c752ff6214610869578063d505accf14610887578063d7e7088a14610920576101da565b80637ecebe00116100de5780637ecebe00146106965780638444b391146106ee57806395d89b411461071a578063a457c2d71461079d576101da565b806361d3d7a6146105ce57806370a08231146105f0578063753e88e514610648576101da565b8063313ce5671161017c57806345977d031161014b57806345977d03146104ee5780634b2ba0dd1461051c5780635de4ccb01461053a578063600440cb14610584576101da565b8063313ce567146104185780633644e5151461043c578063395093511461045a57806342966c68146104c0576101da565b806318160ddd116101b857806318160ddd14610312578063238e130a1461033057806323b872dd1461037457806330adf81f146103fa576101da565b806306fdde03146101df578063095ea7b3146102625780630e7c1cb5146102c8575b600080fd5b6101e7610aae565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ae7565b604051808215151515815260200191505060405180910390f35b6102d0610b05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61031a610b2d565b6040518082815260200191505060405180910390f35b6103726004803603602081101561034657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b37565b005b6103e06004803603606081101561038a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d29565b604051808215151515815260200191505060405180910390f35b610402610f64565b6040518082815260200191505060405180910390f35b610420610f8b565b604051808260ff1660ff16815260200191505060405180910390f35b610444610f90565b6040518082815260200191505060405180910390f35b6104a66004803603604081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fb4565b604051808215151515815260200191505060405180910390f35b6104ec600480360360208110156104d657600080fd5b8101908080359060200190929190505050611067565b005b61051a6004803603602081101561050457600080fd5b810190808035906020019092919050505061107b565b005b6105246112f1565b6040518082815260200191505060405180910390f35b610542611319565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058c611343565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105d661136c565b604051808215151515815260200191505060405180910390f35b6106326004803603602081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611371565b6040518082815260200191505060405180910390f35b6106946004803603604081101561065e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ba565b005b6106d8600480360360208110156106ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e8565b6040518082815260200191505060405180910390f35b6106f6611500565b6040518082600581111561070657fe5b60ff16815260200191505060405180910390f35b610722611596565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610762578082015181840152602081019050610747565b50505050905090810190601f16801561078f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107e9600480360360408110156107b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115cf565b604051808215151515815260200191505060405180910390f35b61084f6004803603604081101561081957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061169c565b604051808215151515815260200191505060405180910390f35b6108716116ba565b6040518082815260200191505060405180910390f35b61091e600480360360e081101561089d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506116c4565b005b6109626004803603602081101561093657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a26565b005b6109c66004803603604081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e93565b6040518082815260200191505060405180910390f35b610a1e600480360360208110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1a565b005b610a28612167565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610aac60048036036020811015610a8057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612191565b005b6040518060400160405280600981526020017f4d797374657269756d000000000000000000000000000000000000000000000081525081565b6000610afb610af4612370565b8484612378565b6001905092915050565b60007f000000000000000000000000a645264c5603e96c3b0b078cdab68733794b0a71905090565b6000600454905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b77612370565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612f1d602d913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f99602e913960400191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e1db88922daae16be4e3c1a1f4bfab0cf6741938844967bd985ac8b2a12c80460405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e7d6024913960400191505060405180910390fd5b6000610dba612370565b90508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e9457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610f4d57610f4c8582610f4786604051806060016040528060278152602001612ea160279139600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b612378565b5b610f5885858561262f565b60019150509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b7f50eac8fa389c4c4e0f032306d95573a9a47272d5a7974afb0bc9e0169865518481565b600061105d610fc1612370565b846110588560066000610fd2612370565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282290919063ffffffff16565b612378565b6001905092915050565b611078611072612370565b826128aa565b50565b6000611085611500565b90506003600581111561109457fe5b8160058111156110a057fe5b14806110c25750600460058111156110b457fe5b8160058111156110c057fe5b145b611117576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612f746025913960400191505060405180910390fd5b6000821415611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613066602d913960400191505060405180910390fd5b600061117b612370565b905061118781846128aa565b61119c8360025461282290919063ffffffff16565b600281905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e582856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561124b57600080fd5b505af115801561125f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac6112a3611319565b85604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b60007f000000000000000000000000000000000000000000000000000b85cc23ad9cb6905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600181565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113c2610b05565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611445576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612e346028913960400191505060405180910390fd5b611466826114616402540be40084612acf90919063ffffffff16565b612b55565b6114856402540be4006114776112f1565b612acf90919063ffffffff16565b61148d610b2d565b11156114e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612fc76032913960400191505060405180910390fd5b5050565b60056020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115615760029050611593565b600060025414156115755760039050611593565b600061157f610b2d565b141561158e5760059050611593565b600490505b90565b6040518060400160405280600481526020017f4d5953540000000000000000000000000000000000000000000000000000000081525081565b60006116926115dc612370565b8461168d856040518060600160405280602581526020016130936025913960066000611606612370565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b612378565b6001905092915050565b60006116b06116a9612370565b848461262f565b6001905092915050565b6000600254905090565b4284101561173a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d5953543a205065726d6974206578706972656400000000000000000000000081525060200191505060405180910390fd5b60007f50eac8fa389c4c4e0f032306d95573a9a47272d5a7974afb0bc9e016986551847f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561192a573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561199e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611a10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d5953543a20696e76616c6964207369676e617475726500000000000000000081525060200191505060405180910390fd5b611a1b898989612378565b505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a66612370565b73ffffffffffffffffffffffffffffffffffffffff1614611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612e046030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061303d6029913960400191505060405180910390fd5b60046005811115611b6557fe5b611b6d611500565b6005811115611b7857fe5b1415611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d5953543a20757067726164652068617320616c726561647920626567756e0081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166361d3d7a66040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9557600080fd5b505afa158015611ca9573d6000803e3d6000fd5b505050506040513d6020811015611cbf57600080fd5b8101908080519060200190929190505050611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180612ee96034913960400191505060405180910390fd5b611d2d610b2d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634b2ba0dd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d9557600080fd5b505afa158015611da9573d6000803e3d6000fd5b505050506040513d6020811015611dbf57600080fd5b810190808051906020019092919050505014611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180612dd06034913960400191505060405180910390fd5b7f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc611e4f611319565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f99602e913960400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561204157600080fd5b505afa158015612055573d6000803e3d6000fd5b505050506040513d602081101561206b57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561212757600080fd5b505af115801561213b573d6000803e3d6000fd5b505050506040513d602081101561215157600080fd5b8101908080519060200190929190505050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612f4a602a913960400191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612257612370565b73ffffffffffffffffffffffffffffffffffffffff16146122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806130b86029913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0bae748e6d38d2b1532af619519837d91d74845ad693f6f229677b4ac20b2d5061232c611343565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061301a6023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612484576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e5c6021913960400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600083831115829061261c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125e15780820151818401526020810190506125c6565b50505050905090810190601f16801561260e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126735761266e83826128aa565b61281d565b6126df81604051806060016040528060258152602001612dab60259139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277481600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000808284019050838110156128a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561294d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d5953543a206275726e2066726f6d20746865207a65726f206164647265737381525060200191505060405180910390fd5b6129b981604051806060016040528060218152602001612ff960219139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a1181600454612d6090919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7826040518082815260200191505060405180910390a25050565b600080831415612ae25760009050612b4f565b6000828402905082848281612af357fe5b0414612b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ec86021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d5953543a206d696e7420746f20746865207a65726f2061646472657373000081525060200191505060405180910390fd5b612c0d8160045461282290919063ffffffff16565b600481905550612c6581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000612da283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061256f565b90509291505056fe4d5953543a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d5953543a2075706772616465206167656e742073686f756c64206b6e6f7720746f6b656e277320746f74616c20737570706c794d5953543a206f6e6c792061206d61737465722063616e2064657369676e61746520746865206e657874206167656e746f6e6c79206f726967696e616c20746f6b656e2063616e2063616c6c207570677261646546726f6d4d5953543a20617070726f766520746f20746865207a65726f20616464726573734d5953543a207472616e736665722066726f6d20746865207a65726f20616464726573734d5953543a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d5953543a206167656e742073686f756c6420696d706c656d656e742049557067726164654167656e7420696e746572666163654d5953543a206f6e6c792061206d61737465722063616e207365742066756e64732064657374696e6174696f6e4d5953543a2075706772616465206d61737465722063616e2774206265207a65726f20616464726573734d5953543a20746f6b656e206973206e6f7420696e20757067726164696e672073746174654d5953543a2066756e64732064657374696e6174696f6e2063616e2774206265207a65726f20616464726565737363616e206e6f74206d696e74206d6f726520746f6b656e73207468616e20696e206f726967696e616c20636f6e74726163744d5953543a206275726e20616d6f756e7420657863656564732062616c616e63654d5953543a20617070726f76652066726f6d20746865207a65726f20616464726573734d5953543a2075706772616465206167656e742063616e2774206265207a65726f20616464726573734d5953543a2075706772616461626c6520616d6f756e742073686f756c64206265206d6f7265207468616e203045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d5953543a206f6e6c792075706772616465206d61737465722063616e20736574206e6577206f6e65a2646970667358221220e393b4a13817dcc90ba046c1b73b9a8491bfa27bf58bffe6f45686907c1e2a5964736f6c634300060b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a645264c5603e96c3b0b078cdab68733794b0a71
-----Decoded View---------------
Arg [0] : originalToken (address): 0xa645264C5603E96c3b0B078cdab68733794B0A71
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a645264c5603e96c3b0b078cdab68733794b0a71
Deployed Bytecode Sourcemap
15166:12319:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16276:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18707:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22737:104;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18033:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26316:393;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20257:723;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16583:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16369:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16428:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18874:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18463:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23865:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22849:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23577:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23474:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15764:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18149:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22963:428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16778:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25682:346;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16324:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19100:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18292:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23687:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19448:682;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24934:740;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18554:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26973:278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26776:104;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24569:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16276:41;;;;;;;;;;;;;;;;;;;:::o;18707:159::-;18781:4;18798:38;18807:12;:10;:12::i;:::-;18821:7;18830:5;18798:8;:38::i;:::-;18854:4;18847:11;;18707:159;;;;:::o;22737:104::-;22792:7;22819:14;22812:21;;22737:104;:::o;18033:108::-;18094:7;18121:12;;18114:19;;18033:108;:::o;26316:393::-;26410:14;;;;;;;;;;;26395:29;;:12;:10;:12::i;:::-;:29;;;26387:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26519:1;26493:28;;:14;:28;;;;26485:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26605:14;26585:17;;:34;;;;;;;;;;;;;;;;;;26686:14;26635:66;;26667:17;;;;;;;;;;;26635:66;;;;;;;;;;;;26316:393;:::o;20257:723::-;20355:4;20482:1;20464:20;;:6;:20;;;;20456:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20536:15;20554:12;:10;:12::i;:::-;20536:30;;20713:7;20703:17;;:6;:17;;;;:64;;;;;20764:2;20724:11;:19;20736:6;20724:19;;;;;;;;;;;;;;;:28;20744:7;20724:28;;;;;;;;;;;;;;;;:43;;20703:64;20699:207;;;20784:110;20793:6;20801:7;20810:83;20843:6;20810:83;;;;;;;;;;;;;;;;;:11;:19;20822:6;20810:19;;;;;;;;;;;;;;;:28;20830:7;20810:28;;;;;;;;;;;;;;;;:32;;:83;;;;;:::i;:::-;20784:8;:110::i;:::-;20699:207;20918:32;20924:6;20932:9;20943:6;20918:5;:32::i;:::-;20968:4;20961:11;;;20257:723;;;;;:::o;16583:108::-;16625:66;16583:108;;;:::o;16369:35::-;16402:2;16369:35;:::o;16428:41::-;;;:::o;18874:218::-;18962:4;18979:83;18988:12;:10;:12::i;:::-;19002:7;19011:50;19050:10;19011:11;:25;19023:12;:10;:12::i;:::-;19011:25;;;;;;;;;;;;;;;:34;19037:7;19011:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18979:8;:83::i;:::-;19080:4;19073:11;;18874:218;;;;:::o;18463:83::-;18511:27;18517:12;:10;:12::i;:::-;18531:6;18511:5;:27::i;:::-;18463:83;:::o;23865:696::-;23916:18;23937:17;:15;:17::i;:::-;23916:38;;23982:27;23973:36;;;;;;;;:5;:36;;;;;;;;;:71;;;;24022:22;24013:31;;;;;;;;:5;:31;;;;;;;;;23973:71;23965:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24117:1;24107:6;:11;;24099:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24181:14;24198:12;:10;:12::i;:::-;24181:29;;24262:21;24268:6;24276;24262:5;:21::i;:::-;24367:26;24386:6;24367:14;;:18;;:26;;;;:::i;:::-;24350:14;:43;;;;24457:13;;;;;;;;;;;:25;;;24483:6;24491;24457:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24522:6;24514:39;;;24530:14;:12;:14::i;:::-;24546:6;24514:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;23865:696;;;:::o;22849:106::-;22905:7;22932:15;22925:22;;22849:106;:::o;23577:102::-;23622:7;23657:13;;;;;;;;;;;23642:29;;23577:102;:::o;23474:95::-;23520:7;23547:14;;;;;;;;;;;23540:21;;23474:95;:::o;15764:51::-;15811:4;15764:51;:::o;18149:135::-;18227:7;18254:9;:22;18264:11;18254:22;;;;;;;;;;;;;;;;18247:29;;18149:135;;;:::o;22963:428::-;23067:15;:13;:15::i;:::-;23053:29;;:10;:29;;;23045:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23211:43;23217:8;23227:26;15751:4;23227:6;:10;;:26;;;;:::i;:::-;23211:5;:43::i;:::-;23292:36;15751:4;23292:16;:14;:16::i;:::-;:20;;:36;;;;:::i;:::-;23275:13;:11;:13::i;:::-;:53;;23267:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22963:428;;:::o;16778:38::-;;;;;;;;;;;;;;;;;:::o;25682:346::-;25729:12;25791:4;25757:39;;25765:13;;;;;;;;;;;25757:39;;;25754:266;;;25805:28;25798:35;;;;25754:266;25870:1;25852:14;;:19;25849:171;;;25880:27;25873:34;;;;25849:171;25943:1;25926:13;:11;:13::i;:::-;:18;25923:97;;;25953:22;25946:29;;;;25923:97;25998:22;25991:29;;25682:346;;:::o;16324:38::-;;;;;;;;;;;;;;;;;;;:::o;19100:269::-;19193:4;19210:129;19219:12;:10;:12::i;:::-;19233:7;19242:96;19281:15;19242:96;;;;;;;;;;;;;;;;;:11;:25;19254:12;:10;:12::i;:::-;19242:25;;;;;;;;;;;;;;;:34;19268:7;19242:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19210:8;:129::i;:::-;19357:4;19350:11;;19100:269;;;;:::o;18292:163::-;18370:4;18387:38;18393:12;:10;:12::i;:::-;18407:9;18418:6;18387:5;:38::i;:::-;18443:4;18436:11;;18292:163;;;;:::o;23687:95::-;23733:7;23760:14;;23753:21;;23687:95;:::o;19448:682::-;19601:15;19589:8;:27;;19581:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19652:14;19757:16;16625:66;19813:15;;19830:6;19838:7;19847:5;19854:6;:14;19861:6;19854:14;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;19872:8;19802:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19792:90;;;;;;19693:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19669:239;;;;;;19652:256;;19919:24;19946:26;19956:6;19964:1;19967;19970;19946:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19919:53;;20019:1;19991:30;;:16;:30;;;;:60;;;;;20045:6;20025:26;;:16;:26;;;19991:60;19983:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20090:32;20099:6;20107:7;20116:5;20090:8;:32::i;:::-;19448:682;;;;;;;;;:::o;24934:740::-;25017:14;;;;;;;;;;;25002:29;;:12;:10;:12::i;:::-;:29;;;24994:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25120:3;25103:21;;:5;:21;;;;25095:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25210:22;25189:43;;;;;;;;:17;:15;:17::i;:::-;:43;;;;;;;;;;25181:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25311:5;25281:13;;:36;;;;;;;;;;;;;;;;;;25336:13;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25328:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25547:13;:11;:13::i;:::-;25513;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:47;25505:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25635:31;25651:14;:12;:14::i;:::-;25635:31;;;;;;;;;;;;;;;;;;;;;;24934:740;:::o;18554:145::-;18636:7;18663:11;:19;18675:6;18663:19;;;;;;;;;;;;;;;:28;18683:7;18663:28;;;;;;;;;;;;;;;;18656:35;;18554:145;;;;:::o;26973:278::-;27064:1;27035:31;;:17;;;;;;;;;;;:31;;;;27027:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27128:14;27152:5;27145:23;;;27177:4;27145:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27128:55;;27201:5;27194:22;;;27217:17;;;;;;;;;;;27236:6;27194:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26973:278;;:::o;26776:104::-;26828:7;26855:17;;;;;;;;;;;26848:24;;26776:104;:::o;24569:357::-;24677:3;24649:32;;:16;:32;;;;24641:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24763:14;;;;;;;;;;;24747:30;;:12;:10;:12::i;:::-;:30;;;24739:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24851:16;24834:14;;:33;;;;;;;;;;;;;;;;;;24885;24902:15;:13;:15::i;:::-;24885:33;;;;;;;;;;;;;;;;;;;;;;24569:357;:::o;14812:106::-;14865:15;14900:10;14893:17;;14812:106;:::o;22330:337::-;22442:1;22424:20;;:6;:20;;;;22416:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22522:1;22503:21;;:7;:21;;;;22495:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22606:5;22575:11;:19;22587:6;22575:19;;;;;;;;;;;;;;;:28;22595:7;22575:28;;;;;;;;;;;;;;;:36;;;;22644:7;22627:32;;22636:6;22627:32;;;22653:5;22627:32;;;;;;;;;;;;;;;;;;22330:337;;;:::o;5063:192::-;5149:7;5182:1;5177;:6;;5185:12;5169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5209:9;5225:1;5221;:5;5209:17;;5246:1;5239:8;;;5063:192;;;;;:::o;21902:420::-;22049:1;22035:16;;:2;:16;;;22031:89;;;22068:19;22074:4;22080:6;22068:5;:19::i;:::-;22102:7;;22031:89;22150:68;22170:6;22150:68;;;;;;;;;;;;;;;;;:9;:15;22160:4;22150:15;;;;;;;;;;;;;;;;:19;;:68;;;;;:::i;:::-;22132:9;:15;22142:4;22132:15;;;;;;;;;;;;;;;:86;;;;22245:25;22263:6;22245:9;:13;22255:2;22245:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;22229:9;:13;22239:2;22229:13;;;;;;;;;;;;;;;:41;;;;22303:2;22288:26;;22297:4;22288:26;;;22307:6;22288:26;;;;;;;;;;;;;;;;;;21902:420;;;;:::o;4160:181::-;4218:7;4238:9;4254:1;4250;:5;4238:17;;4279:1;4274;:6;;4266:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:1;4325:8;;;4160:181;;;;:::o;21490:404::-;21579:1;21563:18;;:4;:18;;;;21555:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21684:64;21704:6;21684:64;;;;;;;;;;;;;;;;;:9;:15;21694:4;21684:15;;;;;;;;;;;;;;;;:19;;:64;;;;;:::i;:::-;21666:9;:15;21676:4;21666:15;;;;;;;;;;;;;;;:82;;;;21774:24;21791:6;21774:12;;:16;;:24;;;;:::i;:::-;21759:12;:39;;;;21839:1;21816:34;;21825:4;21816:34;;;21843:6;21816:34;;;;;;;;;;;;;;;;;;21873:4;21866:20;;;21879:6;21866:20;;;;;;;;;;;;;;;;;;21490:404;;:::o;5514:471::-;5572:7;5822:1;5817;:6;5813:47;;;5847:1;5840:8;;;;5813:47;5872:9;5888:1;5884;:5;5872:17;;5917:1;5912;5908;:5;;;;;;:10;5900:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5976:1;5969:8;;;5514:471;;;;;:::o;21105:377::-;21198:1;21180:20;;:6;:20;;;;21172:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21298:24;21315:6;21298:12;;:16;;:24;;;;:::i;:::-;21283:12;:39;;;;21353:29;21375:6;21353:9;:17;21363:6;21353:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;21333:9;:17;21343:6;21333:17;;;;;;;;;;;;;;;:49;;;;21407:6;21400:22;;;21415:6;21400:22;;;;;;;;;;;;;;;;;;21459:6;21438:36;;21455:1;21438:36;;;21467:6;21438:36;;;;;;;;;;;;;;;;;;21105:377;;:::o;4624:136::-;4682:7;4709:43;4713:1;4716;4709:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4702:50;;4624:136;;;;:::o
Swarm Source
ipfs://e393b4a13817dcc90ba046c1b73b9a8491bfa27bf58bffe6f45686907c1e2a59
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.