Dynamic Supply was rebranded and is now known as Morph Finance.
DST is undergoing a 1:1 token swap and a contract migration to 0x236ecfb32c2b496f942c86d43b8ca4f6bd931e30 . For more information, please refer here.
ERC-20
Staking
Overview
Max Total Supply
10,000,027,443.310823037281512163 DST
Holders
79 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
10,000,011,637.688480144865173414 DSTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
dynamicToken
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-04 */ // SPDX-License-Identifier: CC-BY-NC-SA-2.5 //@code0x2 pragma solidity ^0.6.12; 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; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } 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"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } 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"); } 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); } } } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function 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; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Operator is Context, Ownable { address private _operator; event OperatorTransferred( address indexed previousOperator, address indexed newOperator ); constructor() internal { _operator = _msgSender(); emit OperatorTransferred(address(0), _operator); } function operator() public view returns (address) { return _operator; } modifier onlyOperator() { require( _operator == msg.sender, 'operator: caller is not the operator' ); _; } function isOperator() public view returns (bool) { return _msgSender() == _operator; } function transferOperator(address newOperator_) public onlyOwner { _transferOperator(newOperator_); } function _transferOperator(address newOperator_) internal { require( newOperator_ != address(0), 'operator: zero address given for new operator' ); emit OperatorTransferred(address(0), newOperator_); _operator = newOperator_; } } library Babylonian { function sqrt(uint256 y) internal pure returns (uint256 z) { if (y > 3) { z = y; uint256 x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } // else z = 0 } } library FixedPoint { // range: [0, 2**112 - 1] // resolution: 1 / 2**112 struct uq112x112 { uint224 _x; } // range: [0, 2**144 - 1] // resolution: 1 / 2**112 struct uq144x112 { uint256 _x; } uint8 private constant RESOLUTION = 112; uint256 private constant Q112 = uint256(1) << RESOLUTION; uint256 private constant Q224 = Q112 << RESOLUTION; // encode a uint112 as a UQ112x112 function encode(uint112 x) internal pure returns (uq112x112 memory) { return uq112x112(uint224(x) << RESOLUTION); } // encodes a uint144 as a UQ144x112 function encode144(uint144 x) internal pure returns (uq144x112 memory) { return uq144x112(uint256(x) << RESOLUTION); } // divide a UQ112x112 by a uint112, returning a UQ112x112 function div(uq112x112 memory self, uint112 x) internal pure returns (uq112x112 memory) { require(x != 0, 'FixedPoint: DIV_BY_ZERO'); return uq112x112(self._x / uint224(x)); } // multiply a UQ112x112 by a uint, returning a UQ144x112 // reverts on overflow function mul(uq112x112 memory self, uint256 y) internal pure returns (uq144x112 memory) { uint256 z; require( y == 0 || (z = uint256(self._x) * y) / y == uint256(self._x), 'FixedPoint: MULTIPLICATION_OVERFLOW' ); return uq144x112(z); } // returns a UQ112x112 which represents the ratio of the numerator to the denominator // equivalent to encode(numerator).div(denominator) function fraction(uint112 numerator, uint112 denominator) internal pure returns (uq112x112 memory) { require(denominator > 0, 'FixedPoint: DIV_BY_ZERO'); return uq112x112((uint224(numerator) << RESOLUTION) / denominator); } // decode a UQ112x112 into a uint112 by truncating after the radix point function decode(uq112x112 memory self) internal pure returns (uint112) { return uint112(self._x >> RESOLUTION); } // decode a UQ144x112 into a uint144 by truncating after the radix point function decode144(uq144x112 memory self) internal pure returns (uint144) { return uint144(self._x >> RESOLUTION); } // take the reciprocal of a UQ112x112 function reciprocal(uq112x112 memory self) internal pure returns (uq112x112 memory) { require(self._x != 0, 'FixedPoint: ZERO_RECIPROCAL'); return uq112x112(uint224(Q224 / self._x)); } // square root of a UQ112x112 function sqrt(uq112x112 memory self) internal pure returns (uq112x112 memory) { return uq112x112(uint224(Babylonian.sqrt(uint256(self._x)) << 56)); } } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } library UniswapV2Library { using SafeMath for uint256; // returns sorted token addresses, used to handle return values from pairs sorted in this order function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) { require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES'); (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS'); } // calculates the CREATE2 address for a pair without making any external calls function pairFor( address factory, address tokenA, address tokenB ) internal pure returns (address pair) { (address token0, address token1) = sortTokens(tokenA, tokenB); pair = address( uint256( keccak256( abi.encodePacked( hex'ff', factory, keccak256(abi.encodePacked(token0, token1)), hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash ) ) ) ); } // fetches and sorts the reserves for a pair function getReserves( address factory, address tokenA, address tokenB ) internal view returns (uint256 reserveA, uint256 reserveB) { (address token0, ) = sortTokens(tokenA, tokenB); (uint256 reserve0, uint256 reserve1, ) = IUniswapV2Pair( pairFor(factory, tokenA, tokenB) ) .getReserves(); (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0); } // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) internal pure returns (uint256 amountB) { require(amountA > 0, 'UniswapV2Library: INSUFFICIENT_AMOUNT'); require( reserveA > 0 && reserveB > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY' ); amountB = amountA.mul(reserveB) / reserveA; } // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) internal pure returns (uint256 amountOut) { require(amountIn > 0, 'UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT'); require( reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY' ); uint256 amountInWithFee = amountIn.mul(997); uint256 numerator = amountInWithFee.mul(reserveOut); uint256 denominator = reserveIn.mul(1000).add(amountInWithFee); amountOut = numerator / denominator; } // given an output amount of an asset and pair reserves, returns a required input amount of the other asset function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) internal pure returns (uint256 amountIn) { require(amountOut > 0, 'UniswapV2Library: INSUFFICIENT_OUTPUT_AMOUNT'); require( reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY' ); uint256 numerator = reserveIn.mul(amountOut).mul(1000); uint256 denominator = reserveOut.sub(amountOut).mul(997); amountIn = (numerator / denominator).add(1); } // performs chained getAmountOut calculations on any number of pairs function getAmountsOut( address factory, uint256 amountIn, address[] memory path ) internal view returns (uint256[] memory amounts) { require(path.length >= 2, 'UniswapV2Library: INVALID_PATH'); amounts = new uint256[](path.length); amounts[0] = amountIn; for (uint256 i; i < path.length - 1; i++) { (uint256 reserveIn, uint256 reserveOut) = getReserves( factory, path[i], path[i + 1] ); amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut); } } // performs chained getAmountIn calculations on any number of pairs function getAmountsIn( address factory, uint256 amountOut, address[] memory path ) internal view returns (uint256[] memory amounts) { require(path.length >= 2, 'UniswapV2Library: INVALID_PATH'); amounts = new uint256[](path.length); amounts[amounts.length - 1] = amountOut; for (uint256 i = path.length - 1; i > 0; i--) { (uint256 reserveIn, uint256 reserveOut) = getReserves( factory, path[i - 1], path[i] ); amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut); } } } library UniswapV2OracleLibrary { using FixedPoint for *; // helper function that returns the current block timestamp within the range of uint32, i.e. [0, 2**32 - 1] function currentBlockTimestamp() internal view returns (uint32) { return uint32(block.timestamp % 2**32); } // produces the cumulative price using counterfactuals to save gas and avoid a call to sync. function currentCumulativePrices(address pair) internal view returns ( uint256 price0Cumulative, uint256 price1Cumulative, uint32 blockTimestamp ) { blockTimestamp = currentBlockTimestamp(); price0Cumulative = IUniswapV2Pair(pair).price0CumulativeLast(); price1Cumulative = IUniswapV2Pair(pair).price1CumulativeLast(); // if time has elapsed since the last update on the pair, mock the accumulated price values ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ) = IUniswapV2Pair(pair).getReserves(); if (blockTimestampLast != blockTimestamp) { // subtraction overflow is desired uint32 timeElapsed = blockTimestamp - blockTimestampLast; // addition overflow is desired // counterfactual price0Cumulative += uint256(FixedPoint.fraction(reserve1, reserve0)._x) * timeElapsed; // counterfactual price1Cumulative += uint256(FixedPoint.fraction(reserve0, reserve1)._x) * timeElapsed; } } } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapRouter is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract LimitedERC20 is Context, IERC20 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; uint256 public releaseLimitTimestamp; constructor (string memory name, string memory symbol, uint256 releaseTime) public { _name = name; _symbol = symbol; _decimals = 18; releaseLimitTimestamp = releaseTime; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } 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; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { if(releaseLimitTimestamp > block.timestamp && amount > 100e18 && from != address(0) && to != address(0)) revert('Exceeds 100 DST Cap'); // restrict all transfers over 250 tokens, until the set release time is over } } abstract contract ERC20Burnable is Context, LimitedERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance"); _approve(account, _msgSender(), decreasedAllowance); _burn(account, amount); } } contract dynamicToken is ERC20Burnable, Operator { address payable internal creator; constructor(uint256 releaseTime) public LimitedERC20('Dynamic Supply Token', 'DST', releaseTime) { // We will mint 1000 token to the deployer in order to make it so that we can add initial LP into uniswap _mint(msg.sender, 10000 * 10**18); creator = msg.sender; } function mint(address recipient_, uint256 amount_) public onlyOperator returns (bool) { uint256 balanceBefore = balanceOf(recipient_); _mint(recipient_, amount_); uint256 balanceAfter = balanceOf(recipient_); return balanceAfter > balanceBefore; } function burn(uint256 amount) public override onlyOperator { super.burn(amount); } function burnFrom(address account, uint256 amount) public override onlyOperator { super.burnFrom(account, amount); } // Fallback rescue receive() external payable{ creator.transfer(msg.value); } function rescueToken(IERC20 _token) public { _token.transfer(creator, _token.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"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":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseLimitTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001aa538038062001aa5833981810160405260208110156200003757600080fd5b5051604080518082018252601481527f44796e616d696320537570706c7920546f6b656e000000000000000000000000602082810191825283518085019094526003808552621114d560ea1b91850191909152825192939285926200009d9291620003b7565b508151620000b3906004906020850190620003b7565b506005805460ff191660121790556006555060009050620000d3620001a6565b600780546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200012b620001a6565b600880546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a36200018d3369021e19e0c9bab2400000620001aa565b50600980546001600160a01b0319163317905562000453565b3390565b6001600160a01b03821662000206576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200021460008383620002b9565b62000230816002546200035560201b62000d301790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200026391839062000d3062000355821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b42600654118015620002d3575068056bc75e2d6310000081115b8015620002e857506001600160a01b03831615155b8015620002fd57506001600160a01b03821615155b1562000350576040805162461bcd60e51b815260206004820152601360248201527f4578636565647320313030204453542043617000000000000000000000000000604482015290519081900360640190fd5b505050565b600082820183811015620003b0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003fa57805160ff19168380011785556200042a565b828001600101855582156200042a579182015b828111156200042a5782518255916020019190600101906200040d565b50620004389291506200043c565b5090565b5b808211156200043857600081556001016200043d565b61164280620004636000396000f3fe6080604052600436106101395760003560e01c806345121084116100ab5780638da5cb5b1161006f5780638da5cb5b146104cb57806395d89b41146104e0578063a457c2d7146104f5578063a9059cbb1461052e578063dd62ed3e14610567578063f2fde38b146105a25761017a565b80634512108414610404578063570ca7351461041957806370a082311461044a578063715018a61461047d57806379cc6790146104925761017a565b8063313ce567116100fd578063313ce567146102f5578063395093511461032057806340c10f191461035957806342966c68146103925780634456eda2146103bc5780634460d3cf146103d15761017a565b806306fdde031461017f578063095ea7b31461020957806318160ddd1461025657806323b872dd1461027d57806329605e77146102c05761017a565b3661017a576009546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610177573d6000803e3d6000fd5b50005b600080fd5b34801561018b57600080fd5b506101946105d5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ce5781810151838201526020016101b6565b50505050905090810190601f1680156101fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021557600080fd5b506102426004803603604081101561022c57600080fd5b506001600160a01b03813516906020013561066b565b604080519115158252519081900360200190f35b34801561026257600080fd5b5061026b610688565b60408051918252519081900360200190f35b34801561028957600080fd5b50610242600480360360608110156102a057600080fd5b506001600160a01b0381358116916020810135909116906040013561068e565b3480156102cc57600080fd5b506102f3600480360360208110156102e357600080fd5b50356001600160a01b0316610715565b005b34801561030157600080fd5b5061030a61078b565b6040805160ff9092168252519081900360200190f35b34801561032c57600080fd5b506102426004803603604081101561034357600080fd5b506001600160a01b038135169060200135610794565b34801561036557600080fd5b506102426004803603604081101561037c57600080fd5b506001600160a01b0381351690602001356107e2565b34801561039e57600080fd5b506102f3600480360360208110156103b557600080fd5b503561085c565b3480156103c857600080fd5b506102426108ae565b3480156103dd57600080fd5b506102f3600480360360208110156103f457600080fd5b50356001600160a01b03166108d4565b34801561041057600080fd5b5061026b6109d3565b34801561042557600080fd5b5061042e6109d9565b604080516001600160a01b039092168252519081900360200190f35b34801561045657600080fd5b5061026b6004803603602081101561046d57600080fd5b50356001600160a01b03166109e8565b34801561048957600080fd5b506102f3610a03565b34801561049e57600080fd5b506102f3600480360360408110156104b557600080fd5b506001600160a01b038135169060200135610ab7565b3480156104d757600080fd5b5061042e610b0e565b3480156104ec57600080fd5b50610194610b1d565b34801561050157600080fd5b506102426004803603604081101561051857600080fd5b506001600160a01b038135169060200135610b7e565b34801561053a57600080fd5b506102426004803603604081101561055157600080fd5b506001600160a01b038135169060200135610be6565b34801561057357600080fd5b5061026b6004803603604081101561058a57600080fd5b506001600160a01b0381358116916020013516610bfa565b3480156105ae57600080fd5b506102f3600480360360208110156105c557600080fd5b50356001600160a01b0316610c25565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106615780601f1061063657610100808354040283529160200191610661565b820191906000526020600020905b81548152906001019060200180831161064457829003601f168201915b5050505050905090565b600061067f610678610d91565b8484610d95565b50600192915050565b60025490565b600061069b848484610e81565b61070b846106a7610d91565b6107068560405180606001604052806028815260200161150e602891396001600160a01b038a166000908152600160205260408120906106e5610d91565b6001600160a01b031681526020810191909152604001600020549190610fdc565b610d95565b5060019392505050565b61071d610d91565b6007546001600160a01b0390811691161461077f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61078881611073565b50565b60055460ff1690565b600061067f6107a1610d91565b8461070685600160006107b2610d91565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d30565b6008546000906001600160a01b0316331461082e5760405162461bcd60e51b815260040180806020018281038252602481526020018061155a6024913960400191505060405180910390fd5b6000610839846109e8565b90506108458484611110565b6000610850856109e8565b91909111949350505050565b6008546001600160a01b031633146108a55760405162461bcd60e51b815260040180806020018281038252602481526020018061155a6024913960400191505060405180910390fd5b61078881611200565b6008546000906001600160a01b03166108c5610d91565b6001600160a01b031614905090565b600954604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b15801561092957600080fd5b505afa15801561093d573d6000803e3d6000fd5b505050506040513d602081101561095357600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156109a457600080fd5b505af11580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505050565b60065481565b6008546001600160a01b031690565b6001600160a01b031660009081526020819052604090205490565b610a0b610d91565b6007546001600160a01b03908116911614610a6d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6007546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600780546001600160a01b0319169055565b6008546001600160a01b03163314610b005760405162461bcd60e51b815260040180806020018281038252602481526020018061155a6024913960400191505060405180910390fd5b610b0a8282611211565b5050565b6007546001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106615780601f1061063657610100808354040283529160200191610661565b600061067f610b8b610d91565b84610706856040518060600160405280602581526020016115e86025913960016000610bb5610d91565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610fdc565b600061067f610bf3610d91565b8484610e81565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c2d610d91565b6007546001600160a01b03908116911614610c8f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610cd45760405162461bcd60e51b81526004018080602001828103825260268152602001806114736026913960400191505060405180910390fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610d8a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038316610dda5760405162461bcd60e51b81526004018080602001828103825260248152602001806115c46024913960400191505060405180910390fd5b6001600160a01b038216610e1f5760405162461bcd60e51b81526004018080602001828103825260228152602001806114996022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ec65760405162461bcd60e51b815260040180806020018281038252602581526020018061159f6025913960400191505060405180910390fd5b6001600160a01b038216610f0b5760405162461bcd60e51b815260040180806020018281038252602381526020018061142e6023913960400191505060405180910390fd5b610f16838383611266565b610f53816040518060600160405280602681526020016114bb602691396001600160a01b0386166000908152602081905260409020549190610fdc565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610f829082610d30565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561106b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611030578181015183820152602001611018565b50505050905090810190601f16801561105d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0381166110b85760405162461bcd60e51b815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661116b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61117760008383611266565b6002546111849082610d30565b6002556001600160a01b0382166000908152602081905260409020546111aa9082610d30565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b61078861120b610d91565b826112ef565b600061124882604051806060016040528060248152602001611536602491396112418661123c610d91565b610bfa565b9190610fdc565b905061125c83611256610d91565b83610d95565b6109ce83836112ef565b4260065411801561127f575068056bc75e2d6310000081115b801561129357506001600160a01b03831615155b80156112a757506001600160a01b03821615155b156109ce576040805162461bcd60e51b815260206004820152601360248201527204578636565647320313030204453542043617606c1b604482015290519081900360640190fd5b6001600160a01b0382166113345760405162461bcd60e51b815260040180806020018281038252602181526020018061157e6021913960400191505060405180910390fd5b61134082600083611266565b61137d81604051806060016040528060228152602001611451602291396001600160a01b0385166000908152602081905260409020549190610fdc565b6001600160a01b0383166000908152602081905260409020556002546113a390826113eb565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610d8a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fdc56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f7245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b9116b55c05129b3f50d20148c7b0bd39495e27cce638983ba13e8ae328ff15264736f6c634300060c0033000000000000000000000000000000000000000000000000000000005ff24c70
Deployed Bytecode
0x6080604052600436106101395760003560e01c806345121084116100ab5780638da5cb5b1161006f5780638da5cb5b146104cb57806395d89b41146104e0578063a457c2d7146104f5578063a9059cbb1461052e578063dd62ed3e14610567578063f2fde38b146105a25761017a565b80634512108414610404578063570ca7351461041957806370a082311461044a578063715018a61461047d57806379cc6790146104925761017a565b8063313ce567116100fd578063313ce567146102f5578063395093511461032057806340c10f191461035957806342966c68146103925780634456eda2146103bc5780634460d3cf146103d15761017a565b806306fdde031461017f578063095ea7b31461020957806318160ddd1461025657806323b872dd1461027d57806329605e77146102c05761017a565b3661017a576009546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610177573d6000803e3d6000fd5b50005b600080fd5b34801561018b57600080fd5b506101946105d5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ce5781810151838201526020016101b6565b50505050905090810190601f1680156101fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021557600080fd5b506102426004803603604081101561022c57600080fd5b506001600160a01b03813516906020013561066b565b604080519115158252519081900360200190f35b34801561026257600080fd5b5061026b610688565b60408051918252519081900360200190f35b34801561028957600080fd5b50610242600480360360608110156102a057600080fd5b506001600160a01b0381358116916020810135909116906040013561068e565b3480156102cc57600080fd5b506102f3600480360360208110156102e357600080fd5b50356001600160a01b0316610715565b005b34801561030157600080fd5b5061030a61078b565b6040805160ff9092168252519081900360200190f35b34801561032c57600080fd5b506102426004803603604081101561034357600080fd5b506001600160a01b038135169060200135610794565b34801561036557600080fd5b506102426004803603604081101561037c57600080fd5b506001600160a01b0381351690602001356107e2565b34801561039e57600080fd5b506102f3600480360360208110156103b557600080fd5b503561085c565b3480156103c857600080fd5b506102426108ae565b3480156103dd57600080fd5b506102f3600480360360208110156103f457600080fd5b50356001600160a01b03166108d4565b34801561041057600080fd5b5061026b6109d3565b34801561042557600080fd5b5061042e6109d9565b604080516001600160a01b039092168252519081900360200190f35b34801561045657600080fd5b5061026b6004803603602081101561046d57600080fd5b50356001600160a01b03166109e8565b34801561048957600080fd5b506102f3610a03565b34801561049e57600080fd5b506102f3600480360360408110156104b557600080fd5b506001600160a01b038135169060200135610ab7565b3480156104d757600080fd5b5061042e610b0e565b3480156104ec57600080fd5b50610194610b1d565b34801561050157600080fd5b506102426004803603604081101561051857600080fd5b506001600160a01b038135169060200135610b7e565b34801561053a57600080fd5b506102426004803603604081101561055157600080fd5b506001600160a01b038135169060200135610be6565b34801561057357600080fd5b5061026b6004803603604081101561058a57600080fd5b506001600160a01b0381358116916020013516610bfa565b3480156105ae57600080fd5b506102f3600480360360208110156105c557600080fd5b50356001600160a01b0316610c25565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106615780601f1061063657610100808354040283529160200191610661565b820191906000526020600020905b81548152906001019060200180831161064457829003601f168201915b5050505050905090565b600061067f610678610d91565b8484610d95565b50600192915050565b60025490565b600061069b848484610e81565b61070b846106a7610d91565b6107068560405180606001604052806028815260200161150e602891396001600160a01b038a166000908152600160205260408120906106e5610d91565b6001600160a01b031681526020810191909152604001600020549190610fdc565b610d95565b5060019392505050565b61071d610d91565b6007546001600160a01b0390811691161461077f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61078881611073565b50565b60055460ff1690565b600061067f6107a1610d91565b8461070685600160006107b2610d91565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d30565b6008546000906001600160a01b0316331461082e5760405162461bcd60e51b815260040180806020018281038252602481526020018061155a6024913960400191505060405180910390fd5b6000610839846109e8565b90506108458484611110565b6000610850856109e8565b91909111949350505050565b6008546001600160a01b031633146108a55760405162461bcd60e51b815260040180806020018281038252602481526020018061155a6024913960400191505060405180910390fd5b61078881611200565b6008546000906001600160a01b03166108c5610d91565b6001600160a01b031614905090565b600954604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b15801561092957600080fd5b505afa15801561093d573d6000803e3d6000fd5b505050506040513d602081101561095357600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156109a457600080fd5b505af11580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505050565b60065481565b6008546001600160a01b031690565b6001600160a01b031660009081526020819052604090205490565b610a0b610d91565b6007546001600160a01b03908116911614610a6d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6007546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600780546001600160a01b0319169055565b6008546001600160a01b03163314610b005760405162461bcd60e51b815260040180806020018281038252602481526020018061155a6024913960400191505060405180910390fd5b610b0a8282611211565b5050565b6007546001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106615780601f1061063657610100808354040283529160200191610661565b600061067f610b8b610d91565b84610706856040518060600160405280602581526020016115e86025913960016000610bb5610d91565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610fdc565b600061067f610bf3610d91565b8484610e81565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c2d610d91565b6007546001600160a01b03908116911614610c8f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610cd45760405162461bcd60e51b81526004018080602001828103825260268152602001806114736026913960400191505060405180910390fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610d8a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038316610dda5760405162461bcd60e51b81526004018080602001828103825260248152602001806115c46024913960400191505060405180910390fd5b6001600160a01b038216610e1f5760405162461bcd60e51b81526004018080602001828103825260228152602001806114996022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ec65760405162461bcd60e51b815260040180806020018281038252602581526020018061159f6025913960400191505060405180910390fd5b6001600160a01b038216610f0b5760405162461bcd60e51b815260040180806020018281038252602381526020018061142e6023913960400191505060405180910390fd5b610f16838383611266565b610f53816040518060600160405280602681526020016114bb602691396001600160a01b0386166000908152602081905260409020549190610fdc565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610f829082610d30565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561106b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611030578181015183820152602001611018565b50505050905090810190601f16801561105d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0381166110b85760405162461bcd60e51b815260040180806020018281038252602d8152602001806114e1602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661116b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61117760008383611266565b6002546111849082610d30565b6002556001600160a01b0382166000908152602081905260409020546111aa9082610d30565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b61078861120b610d91565b826112ef565b600061124882604051806060016040528060248152602001611536602491396112418661123c610d91565b610bfa565b9190610fdc565b905061125c83611256610d91565b83610d95565b6109ce83836112ef565b4260065411801561127f575068056bc75e2d6310000081115b801561129357506001600160a01b03831615155b80156112a757506001600160a01b03821615155b156109ce576040805162461bcd60e51b815260206004820152601360248201527204578636565647320313030204453542043617606c1b604482015290519081900360640190fd5b6001600160a01b0382166113345760405162461bcd60e51b815260040180806020018281038252602181526020018061157e6021913960400191505060405180910390fd5b61134082600083611266565b61137d81604051806060016040528060228152602001611451602291396001600160a01b0385166000908152602081905260409020549190610fdc565b6001600160a01b0383166000908152602081905260409020556002546113a390826113eb565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610d8a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fdc56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f7245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b9116b55c05129b3f50d20148c7b0bd39495e27cce638983ba13e8ae328ff15264736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005ff24c70
-----Decoded View---------------
Arg [0] : releaseTime (uint256): 1609714800
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005ff24c70
Deployed Bytecode Sourcemap
31527:1232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32594:7;;:27;;-1:-1:-1;;;;;32594:7:0;;;;32611:9;32594:27;;;;;:7;:27;:7;:27;32611:9;32594:7;:27;;;;;;;;;;;;;;;;;;;;;31527:1232;;;;;26644:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27498:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27498:169:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26921:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;27673:321;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27673:321:0;;;;;;;;;;;;;;;;;:::i;7602:115::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7602:115:0;-1:-1:-1;;;;;7602:115:0;;:::i;:::-;;26830:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28002:218;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28002:218:0;;;;;;;;:::i;31927:322::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31927:322:0;;;;;;;;:::i;32257:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32257:96:0;;:::i;7494:100::-;;;;;;;;;;;;;:::i;32637:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32637:119:0;-1:-1:-1;;;;;32637:119:0;;:::i;26379:36::-;;;;;;;;;;;;;:::i;7229:85::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7229:85:0;;;;;;;;;;;;;;27029:119;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27029:119:0;-1:-1:-1;;;;;27029:119:0;;:::i;6489:148::-;;;;;;;;;;;;;:::i;32361:162::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32361:162:0;;;;;;;;:::i;6190:79::-;;;;;;;;;;;;;:::i;26735:87::-;;;;;;;;;;;;;:::i;28228:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28228:269:0;;;;;;;;:::i;27156:175::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27156:175:0;;;;;;;;:::i;27339:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27339:151:0;;;;;;;;;;:::i;6645:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6645:244:0;-1:-1:-1;;;;;6645:244:0;;:::i;26644:83::-;26714:5;26707:12;;;;;;;;-1:-1:-1;;26707:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26681:13;;26707:12;;26714:5;;26707:12;;26714:5;26707:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26644:83;:::o;27498:169::-;27581:4;27598:39;27607:12;:10;:12::i;:::-;27621:7;27630:6;27598:8;:39::i;:::-;-1:-1:-1;27655:4:0;27498:169;;;;:::o;26921:100::-;27001:12;;26921:100;:::o;27673:321::-;27779:4;27796:36;27806:6;27814:9;27825:6;27796:9;:36::i;:::-;27843:121;27852:6;27860:12;:10;:12::i;:::-;27874:89;27912:6;27874:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27874:19:0;;;;;;:11;:19;;;;;;27894:12;:10;:12::i;:::-;-1:-1:-1;;;;;27874:33:0;;;;;;;;;;;;-1:-1:-1;27874:33:0;;;:89;:37;:89::i;:::-;27843:8;:121::i;:::-;-1:-1:-1;27982:4:0;27673:321;;;;;:::o;7602:115::-;6412:12;:10;:12::i;:::-;6402:6;;-1:-1:-1;;;;;6402:6:0;;;:22;;;6394:67;;;;;-1:-1:-1;;;6394:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7678:31:::1;7696:12;7678:17;:31::i;:::-;7602:115:::0;:::o;26830:83::-;26896:9;;;;26830:83;:::o;28002:218::-;28090:4;28107:83;28116:12;:10;:12::i;:::-;28130:7;28139:50;28178:10;28139:11;:25;28151:12;:10;:12::i;:::-;-1:-1:-1;;;;;28139:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;28139:25:0;;;:34;;;;;;;;;;;:38;:50::i;31927:322::-;7379:9;;32034:4;;-1:-1:-1;;;;;7379:9:0;7392:10;7379:23;7357:109;;;;-1:-1:-1;;;7357:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32056:21:::1;32080;32090:10;32080:9;:21::i;:::-;32056:45;;32112:26;32118:10;32130:7;32112:5;:26::i;:::-;32149:20;32172:21;32182:10;32172:9;:21::i;:::-;32213:28:::0;;;::::1;::::0;31927:322;-1:-1:-1;;;;31927:322:0:o;32257:96::-;7379:9;;-1:-1:-1;;;;;7379:9:0;7392:10;7379:23;7357:109;;;;-1:-1:-1;;;7357:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32327:18:::1;32338:6;32327:10;:18::i;7494:100::-:0;7577:9;;7537:4;;-1:-1:-1;;;;;7577:9:0;7561:12;:10;:12::i;:::-;-1:-1:-1;;;;;7561:25:0;;7554:32;;7494:100;:::o;32637:119::-;32707:7;;32716:31;;;-1:-1:-1;;;32716:31:0;;32741:4;32716:31;;;;;;-1:-1:-1;;;;;32691:15:0;;;;;;32707:7;;;32691:15;;32716:16;;:31;;;;;;;;;;;;;;32691:15;32716:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32716:31:0;32691:57;;;-1:-1:-1;;;;;;32691:57:0;;;;;;;-1:-1:-1;;;;;32691:57:0;;;;;;;;;;;;;;;;;;;;32716:31;;32691:57;;;;;;;-1:-1:-1;32691:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32637:119:0:o;26379:36::-;;;;:::o;7229:85::-;7297:9;;-1:-1:-1;;;;;7297:9:0;7229:85;:::o;27029:119::-;-1:-1:-1;;;;;27122:18:0;27095:7;27122:18;;;;;;;;;;;;27029:119::o;6489:148::-;6412:12;:10;:12::i;:::-;6402:6;;-1:-1:-1;;;;;6402:6:0;;;:22;;;6394:67;;;;;-1:-1:-1;;;6394:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6580:6:::1;::::0;6559:40:::1;::::0;6596:1:::1;::::0;-1:-1:-1;;;;;6580:6:0::1;::::0;6559:40:::1;::::0;6596:1;;6559:40:::1;6610:6;:19:::0;;-1:-1:-1;;;;;;6610:19:0::1;::::0;;6489:148::o;32361:162::-;7379:9;;-1:-1:-1;;;;;7379:9:0;7392:10;7379:23;7357:109;;;;-1:-1:-1;;;7357:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32484:31:::1;32499:7;32508:6;32484:14;:31::i;:::-;32361:162:::0;;:::o;6190:79::-;6255:6;;-1:-1:-1;;;;;6255:6:0;6190:79;:::o;26735:87::-;26807:7;26800:14;;;;;;;;-1:-1:-1;;26800:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26774:13;;26800:14;;26807:7;;26800:14;;26807:7;26800:14;;;;;;;;;;;;;;;;;;;;;;;;28228:269;28321:4;28338:129;28347:12;:10;:12::i;:::-;28361:7;28370:96;28409:15;28370:96;;;;;;;;;;;;;;;;;:11;:25;28382:12;:10;:12::i;:::-;-1:-1:-1;;;;;28370:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;28370:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;27156:175::-;27242:4;27259:42;27269:12;:10;:12::i;:::-;27283:9;27294:6;27259:9;:42::i;27339:151::-;-1:-1:-1;;;;;27455:18:0;;;27428:7;27455:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;27339:151::o;6645:244::-;6412:12;:10;:12::i;:::-;6402:6;;-1:-1:-1;;;;;6402:6:0;;;:22;;;6394:67;;;;;-1:-1:-1;;;6394:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6734:22:0;::::1;6726:73;;;;-1:-1:-1::0;;;6726:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6836:6;::::0;6815:38:::1;::::0;-1:-1:-1;;;;;6815:38:0;;::::1;::::0;6836:6:::1;::::0;6815:38:::1;::::0;6836:6:::1;::::0;6815:38:::1;6864:6;:17:::0;;-1:-1:-1;;;;;;6864:17:0::1;-1:-1:-1::0;;;;;6864:17:0;;;::::1;::::0;;;::::1;::::0;;6645:244::o;3954:181::-;4012:7;4044:5;;;4068:6;;;;4060:46;;;;;-1:-1:-1;;;4060:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4126:1;3954:181;-1:-1:-1;;;3954:181:0:o;120:106::-;208:10;120:106;:::o;29864:346::-;-1:-1:-1;;;;;29966:19:0;;29958:68;;;;-1:-1:-1;;;29958:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30045:21:0;;30037:68;;;;-1:-1:-1;;;30037:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30118:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;30170:32;;;;;;;;;;;;;;;;;29864:346;;;:::o;28505:539::-;-1:-1:-1;;;;;28611:20:0;;28603:70;;;;-1:-1:-1;;;28603:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28692:23:0;;28684:71;;;;-1:-1:-1;;;28684:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28768:47;28789:6;28797:9;28808:6;28768:20;:47::i;:::-;28848:71;28870:6;28848:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28848:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;28828:17:0;;;:9;:17;;;;;;;;;;;:91;;;;28953:20;;;;;;;:32;;28978:6;28953:24;:32::i;:::-;-1:-1:-1;;;;;28930:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;29001:35;;;;;;;28930:20;;29001:35;;;;;;;;;;;;;28505:539;;;:::o;4283:192::-;4369:7;4405:12;4397:6;;;;4389:29;;;;-1:-1:-1;;;4389:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4441:5:0;;;4283:192::o;7725:294::-;-1:-1:-1;;;;;7816:26:0;;7794:121;;;;-1:-1:-1;;;7794:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:45;;-1:-1:-1;;;;;7931:45:0;;;7959:1;;7931:45;;7959:1;;7931:45;7987:9;:24;;-1:-1:-1;;;;;;7987:24:0;-1:-1:-1;;;;;7987:24:0;;;;;;;;;;7725:294::o;29052:378::-;-1:-1:-1;;;;;29136:21:0;;29128:65;;;;;-1:-1:-1;;;29128:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;29206:49;29235:1;29239:7;29248:6;29206:20;:49::i;:::-;29283:12;;:24;;29300:6;29283:16;:24::i;:::-;29268:12;:39;-1:-1:-1;;;;;29339:18:0;;:9;:18;;;;;;;;;;;:30;;29362:6;29339:22;:30::i;:::-;-1:-1:-1;;;;;29318:18:0;;:9;:18;;;;;;;;;;;:51;;;;29385:37;;;;;;;29318:18;;:9;;29385:37;;;;;;;;;;29052:378;;:::o;30815:91::-;30871:27;30877:12;:10;:12::i;:::-;30891:6;30871:5;:27::i;31225:295::-;31302:26;31331:84;31368:6;31331:84;;;;;;;;;;;;;;;;;:32;31341:7;31350:12;:10;:12::i;:::-;31331:9;:32::i;:::-;:36;:84;:36;:84::i;:::-;31302:113;;31428:51;31437:7;31446:12;:10;:12::i;:::-;31460:18;31428:8;:51::i;:::-;31490:22;31496:7;31505:6;31490:5;:22::i;30316:320::-;30443:15;30419:21;;:39;:58;;;;;30471:6;30462;:15;30419:58;:80;;;;-1:-1:-1;;;;;;30481:18:0;;;;30419:80;:100;;;;-1:-1:-1;;;;;;30503:16:0;;;;30419:100;30416:134;;;30521:29;;;-1:-1:-1;;;30521:29:0;;;;;;;;;;;;-1:-1:-1;;;30521:29:0;;;;;;;;;;;;;;29438:418;-1:-1:-1;;;;;29522:21:0;;29514:67;;;;-1:-1:-1;;;29514:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29594:49;29615:7;29632:1;29636:6;29594:20;:49::i;:::-;29677:68;29700:6;29677:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29677:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;29656:18:0;;:9;:18;;;;;;;;;;:89;29771:12;;:24;;29788:6;29771:16;:24::i;:::-;29756:12;:39;29811:37;;;;;;;;29837:1;;-1:-1:-1;;;;;29811:37:0;;;;;;;;;;;;29438:418;;:::o;4141:136::-;4199:7;4226:43;4230:1;4233;4226:43;;;;;;;;;;;;;;;;;:3;:43::i
Swarm Source
ipfs://b9116b55c05129b3f50d20148c7b0bd39495e27cce638983ba13e8ae328ff152
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.