Feature Tip: Add private address tag to any address under My Name Tag !
Dynamic Suppy - DST, DSTR or DSN migration to MORPH announcement and migration info.
ERC-20
Overview
Max Total Supply
2,803,318,022.011429942208026015 MORC
Holders
113
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
720.25738447311951041 MORCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
morphCoin
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-16 */ // 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 IFeeManager { function queryFee(address sender, address receiver, uint256 amount) external returns(address, uint256); } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external; function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external; function transferFrom(address sender, address recipient, uint256 amount) external; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Standard { 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); } 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; mapping (address => bool) private privileged; 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; } function setPrivileged(address _usr, bool _isPrivileged) public onlyOwner { privileged[_usr] = _isPrivileged; } modifier onlyOperator() { require(msg.sender == _operator || privileged[msg.sender] == true, 'operator: caller does not have permission'); _; } 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 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; } } 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; } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function migrator() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; function setMigrator(address) external; } 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); } } } } interface IOptimizer { function allocateSeigniorage(uint256 amount) external; function allocateFee(uint256 amount) external; } contract LimitedERC20 is Context, IERC20Standard { using SafeMath for uint256; using Address for address; address public feeManager; 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 internal burnShare = 75; constructor (string memory name, string memory symbol, address _feeManager) public { _name = name; _symbol = symbol; _decimals = 18; feeManager = _feeManager; } 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"); (address feeReceiver, uint256 feeAmount) = IFeeManager(feeManager).queryFee(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, 'ERC20: transfer amount exceeds balance'); if(feeAmount > 0) { uint256 burnAmount = feeAmount.mul(burnShare).div(100); _balances[feeReceiver] = _balances[feeReceiver].add(feeAmount.sub(burnAmount)); IOptimizer(feeReceiver).allocateFee(feeAmount.sub(burnAmount)); emit Transfer(sender, feeReceiver, feeAmount.sub(burnAmount)); _burn(sender, burnAmount); } amount = amount.sub(feeAmount); _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"); _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"); _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 _setFeeManager(address _fmg) internal { feeManager = _fmg; } function _setBurnShare(uint256 _toBurn) internal { burnShare = _toBurn; } } 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 { _burn(account, amount); } } contract morphCoin is ERC20Burnable, Operator { constructor(address _feeManager) public LimitedERC20('Morph Coin', 'MORC', _feeManager) { } 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); } function setFeeManager(address _feeManager) public onlyOwner { _setFeeManager(_feeManager); } function setBurnShare(uint256 _toBurn) public onlyOwner { _setBurnShare(_toBurn); } // Fallback rescue receive() external payable{ payable(owner()).transfer(msg.value); } function rescueToken(IERC20 _token) public { _token.transfer(owner(), _token.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_feeManager","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":"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":[],"name":"feeManager","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_toBurn","type":"uint256"}],"name":"setBurnShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeManager","type":"address"}],"name":"setFeeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_usr","type":"address"},{"internalType":"bool","name":"_isPrivileged","type":"bool"}],"name":"setPrivileged","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
6080604052604b6007553480156200001657600080fd5b5060405162001cbe38038062001cbe833981810160405260208110156200003c57600080fd5b5051604080518082018252600a81526926b7b938341021b7b4b760b11b602082810191825283518085019094526004808552634d4f524360e01b918501919091528251929392859262000090929162000192565b508151620000a690600590602085019062000192565b506006805460ff19166012179055600080546001600160a01b039092166001600160a01b03199092169190911781559150620000e390506200018e565b600880546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200013b6200018e565b600980546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3506200022e565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001d557805160ff191683800117855562000205565b8280016001018555821562000205579182015b8281111562000205578251825591602001919060010190620001e8565b506200021392915062000217565b5090565b5b8082111562000213576000815560010162000218565b611a80806200023e6000396000f3fe60806040526004361061016a5760003560e01c8063570ca735116100d157806396cf4feb1161008a578063d0fb020311610064578063d0fb0203146105e7578063dd62ed3e146105fc578063e15a56c814610637578063f2fde38b14610672576101b2565b806396cf4feb1461054b578063a457c2d714610575578063a9059cbb146105ae576101b2565b8063570ca7351461046f57806370a08231146104a0578063715018a6146104d357806379cc6790146104e85780638da5cb5b1461052157806395d89b4114610536576101b2565b80633950935111610123578063395093511461035857806340c10f191461039157806342966c68146103ca5780634456eda2146103f45780634460d3cf14610409578063472d35b91461043c576101b2565b806306fdde03146101b7578063095ea7b31461024157806318160ddd1461028e57806323b872dd146102b557806329605e77146102f8578063313ce5671461032d576101b2565b366101b2576101776106a5565b6001600160a01b03166108fc349081150290604051600060405180830381858888f193505050501580156101af573d6000803e3d6000fd5b50005b600080fd5b3480156101c357600080fd5b506101cc6106b4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b5061027a6004803603604081101561026457600080fd5b506001600160a01b03813516906020013561074a565b604080519115158252519081900360200190f35b34801561029a57600080fd5b506102a3610768565b60408051918252519081900360200190f35b3480156102c157600080fd5b5061027a600480360360608110156102d857600080fd5b506001600160a01b0381358116916020810135909116906040013561076e565b34801561030457600080fd5b5061032b6004803603602081101561031b57600080fd5b50356001600160a01b03166107f5565b005b34801561033957600080fd5b50610342610859565b6040805160ff9092168252519081900360200190f35b34801561036457600080fd5b5061027a6004803603604081101561037b57600080fd5b506001600160a01b038135169060200135610862565b34801561039d57600080fd5b5061027a600480360360408110156103b457600080fd5b506001600160a01b0381351690602001356108b0565b3480156103d657600080fd5b5061032b600480360360208110156103ed57600080fd5b5035610949565b34801561040057600080fd5b5061027a6109ba565b34801561041557600080fd5b5061032b6004803603602081101561042c57600080fd5b50356001600160a01b03166109e0565b34801561044857600080fd5b5061032b6004803603602081101561045f57600080fd5b50356001600160a01b0316610ad2565b34801561047b57600080fd5b50610484610b33565b604080516001600160a01b039092168252519081900360200190f35b3480156104ac57600080fd5b506102a3600480360360208110156104c357600080fd5b50356001600160a01b0316610b42565b3480156104df57600080fd5b5061032b610b5d565b3480156104f457600080fd5b5061032b6004803603604081101561050b57600080fd5b506001600160a01b038135169060200135610bff565b34801561052d57600080fd5b506104846106a5565b34801561054257600080fd5b506101cc610c75565b34801561055757600080fd5b5061032b6004803603602081101561056e57600080fd5b5035610cd6565b34801561058157600080fd5b5061027a6004803603604081101561059857600080fd5b506001600160a01b038135169060200135610d37565b3480156105ba57600080fd5b5061027a600480360360408110156105d157600080fd5b506001600160a01b038135169060200135610d9f565b3480156105f357600080fd5b50610484610db3565b34801561060857600080fd5b506102a36004803603604081101561061f57600080fd5b506001600160a01b0381358116916020013516610dc2565b34801561064357600080fd5b5061032b6004803603604081101561065a57600080fd5b506001600160a01b0381351690602001351515610ded565b34801561067e57600080fd5b5061032b6004803603602081101561069557600080fd5b50356001600160a01b0316610e70565b6008546001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050905090565b600061075e610757610f69565b8484610f6d565b5060015b92915050565b60035490565b600061077b848484611059565b6107eb84610787610f69565b6107e685604051806060016040528060288152602001611954602891396001600160a01b038a166000908152600260205260408120906107c5610f69565b6001600160a01b03168152602081019190915260400160002054919061135e565b610f6d565b5060019392505050565b6107fd610f69565b6008546001600160a01b0390811691161461084d576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b610856816113f5565b50565b60065460ff1690565b600061075e61086f610f69565b846107e68560026000610880610f69565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611492565b6009546000906001600160a01b03163314806108e05750336000908152600a602052604090205460ff1615156001145b61091b5760405162461bcd60e51b81526004018080602001828103825260298152602001806118b76029913960400191505060405180910390fd5b600061092684610b42565b905061093284846114f3565b600061093d85610b42565b91909111949350505050565b6009546001600160a01b03163314806109765750336000908152600a602052604090205460ff1615156001145b6109b15760405162461bcd60e51b81526004018080602001828103825260298152602001806118b76029913960400191505060405180910390fd5b610856816115c7565b6009546000906001600160a01b03166109d1610f69565b6001600160a01b031614905090565b806001600160a01b031663a9059cbb6109f76106a5565b604080516370a0823160e01b815230600482015290516001600160a01b038616916370a08231916024808301926020929190829003018186803b158015610a3d57600080fd5b505afa158015610a51573d6000803e3d6000fd5b505050506040513d6020811015610a6757600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050565b610ada610f69565b6008546001600160a01b03908116911614610b2a576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b610856816115d8565b6009546001600160a01b031690565b6001600160a01b031660009081526001602052604090205490565b610b65610f69565b6008546001600160a01b03908116911614610bb5576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b6008546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600880546001600160a01b0319169055565b6009546001600160a01b0316331480610c2c5750336000908152600a602052604090205460ff1615156001145b610c675760405162461bcd60e51b81526004018080602001828103825260298152602001806118b76029913960400191505060405180910390fd5b610c7182826115fa565b5050565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107405780601f1061071557610100808354040283529160200191610740565b610cde610f69565b6008546001600160a01b03908116911614610d2e576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b61085681611604565b600061075e610d44610f69565b846107e685604051806060016040528060258152602001611a266025913960026000610d6e610f69565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061135e565b600061075e610dac610f69565b8484611059565b6000546001600160a01b031681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610df5610f69565b6008546001600160a01b03908116911614610e45576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610e78610f69565b6008546001600160a01b03908116911614610ec8576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b6001600160a01b038116610f0d5760405162461bcd60e51b815260040180806020018281038252602681526020018061186f6026913960400191505060405180910390fd5b6008546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316610fb25760405162461bcd60e51b8152600401808060200182810382526024815260200180611a026024913960400191505060405180910390fd5b6001600160a01b038216610ff75760405162461bcd60e51b81526004018080602001828103825260228152602001806118956022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661109e5760405162461bcd60e51b81526004018080602001828103825260258152602001806119dd6025913960400191505060405180910390fd5b6001600160a01b0382166110e35760405162461bcd60e51b815260040180806020018281038252602381526020018061182a6023913960400191505060405180910390fd5b60008054604080516354895ec160e01b81526001600160a01b0387811660048301528681166024830152604482018690528251859491909116926354895ec1926064808201939182900301818787803b15801561113f57600080fd5b505af1158015611153573d6000803e3d6000fd5b505050506040513d604081101561116957600080fd5b508051602091820151604080516060810190915260268082529295509093506111b6928692906118e0908301396001600160a01b038816600090815260016020526040902054919061135e565b6001600160a01b03861660009081526001602052604090205580156112e25760006111f760646111f16007548561160990919063ffffffff16565b90611662565b905061122561120683836116a4565b6001600160a01b03851660009081526001602052604090205490611492565b6001600160a01b0384166000818152600160205260409020919091556381596ec661125084846116a4565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b5050506001600160a01b038481169150871660008051602061199c8339815191526112c585856116a4565b60408051918252519081900360200190a36112e086826116e6565b505b6112ec83826116a4565b6001600160a01b0385166000908152600160205260409020549093506113129084611492565b6001600160a01b03808616600081815260016020908152604091829020949094558051878152905191939289169260008051602061199c83398151915292918290030190a35050505050565b600081848411156113ed5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113b257818101518382015260200161139a565b50505050905090810190601f1680156113df5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b03811661143a5760405162461bcd60e51b815260040180806020018281038252602d815260200180611906602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000828201838110156114ec576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661154e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60035461155b9082611492565b6003556001600160a01b0382166000908152600160205260409020546115819082611492565b6001600160a01b038316600081815260016020908152604080832094909455835185815293519293919260008051602061199c8339815191529281900390910190a35050565b6108566115d2610f69565b826116e6565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610c7182826116e6565b600755565b60008261161857506000610762565b8282028284828161162557fe5b04146114ec5760405162461bcd60e51b81526004018080602001828103825260218152602001806119336021913960400191505060405180910390fd5b60006114ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117c4565b60006114ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061135e565b6001600160a01b03821661172b5760405162461bcd60e51b81526004018080602001828103825260218152602001806119bc6021913960400191505060405180910390fd5b6117688160405180606001604052806022815260200161184d602291396001600160a01b038516600090815260016020526040902054919061135e565b6001600160a01b03831660009081526001602052604090205560035461178e90826116a4565b6003556040805182815290516000916001600160a01b0385169160008051602061199c8339815191529181900360200190a35050565b600081836118135760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156113b257818101518382015260200161139a565b50600083858161181f57fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736f70657261746f723a2063616c6c657220646f6573206e6f742068617665207065726d697373696f6e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209f5e2b2d0f9e110247ee69f7300c5f515dfc492345d0f37479464bc8df39afd664736f6c634300060c0033000000000000000000000000dac9a58030cc9afbafafd4c79226a764de027b48
Deployed Bytecode
0x60806040526004361061016a5760003560e01c8063570ca735116100d157806396cf4feb1161008a578063d0fb020311610064578063d0fb0203146105e7578063dd62ed3e146105fc578063e15a56c814610637578063f2fde38b14610672576101b2565b806396cf4feb1461054b578063a457c2d714610575578063a9059cbb146105ae576101b2565b8063570ca7351461046f57806370a08231146104a0578063715018a6146104d357806379cc6790146104e85780638da5cb5b1461052157806395d89b4114610536576101b2565b80633950935111610123578063395093511461035857806340c10f191461039157806342966c68146103ca5780634456eda2146103f45780634460d3cf14610409578063472d35b91461043c576101b2565b806306fdde03146101b7578063095ea7b31461024157806318160ddd1461028e57806323b872dd146102b557806329605e77146102f8578063313ce5671461032d576101b2565b366101b2576101776106a5565b6001600160a01b03166108fc349081150290604051600060405180830381858888f193505050501580156101af573d6000803e3d6000fd5b50005b600080fd5b3480156101c357600080fd5b506101cc6106b4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b5061027a6004803603604081101561026457600080fd5b506001600160a01b03813516906020013561074a565b604080519115158252519081900360200190f35b34801561029a57600080fd5b506102a3610768565b60408051918252519081900360200190f35b3480156102c157600080fd5b5061027a600480360360608110156102d857600080fd5b506001600160a01b0381358116916020810135909116906040013561076e565b34801561030457600080fd5b5061032b6004803603602081101561031b57600080fd5b50356001600160a01b03166107f5565b005b34801561033957600080fd5b50610342610859565b6040805160ff9092168252519081900360200190f35b34801561036457600080fd5b5061027a6004803603604081101561037b57600080fd5b506001600160a01b038135169060200135610862565b34801561039d57600080fd5b5061027a600480360360408110156103b457600080fd5b506001600160a01b0381351690602001356108b0565b3480156103d657600080fd5b5061032b600480360360208110156103ed57600080fd5b5035610949565b34801561040057600080fd5b5061027a6109ba565b34801561041557600080fd5b5061032b6004803603602081101561042c57600080fd5b50356001600160a01b03166109e0565b34801561044857600080fd5b5061032b6004803603602081101561045f57600080fd5b50356001600160a01b0316610ad2565b34801561047b57600080fd5b50610484610b33565b604080516001600160a01b039092168252519081900360200190f35b3480156104ac57600080fd5b506102a3600480360360208110156104c357600080fd5b50356001600160a01b0316610b42565b3480156104df57600080fd5b5061032b610b5d565b3480156104f457600080fd5b5061032b6004803603604081101561050b57600080fd5b506001600160a01b038135169060200135610bff565b34801561052d57600080fd5b506104846106a5565b34801561054257600080fd5b506101cc610c75565b34801561055757600080fd5b5061032b6004803603602081101561056e57600080fd5b5035610cd6565b34801561058157600080fd5b5061027a6004803603604081101561059857600080fd5b506001600160a01b038135169060200135610d37565b3480156105ba57600080fd5b5061027a600480360360408110156105d157600080fd5b506001600160a01b038135169060200135610d9f565b3480156105f357600080fd5b50610484610db3565b34801561060857600080fd5b506102a36004803603604081101561061f57600080fd5b506001600160a01b0381358116916020013516610dc2565b34801561064357600080fd5b5061032b6004803603604081101561065a57600080fd5b506001600160a01b0381351690602001351515610ded565b34801561067e57600080fd5b5061032b6004803603602081101561069557600080fd5b50356001600160a01b0316610e70565b6008546001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050905090565b600061075e610757610f69565b8484610f6d565b5060015b92915050565b60035490565b600061077b848484611059565b6107eb84610787610f69565b6107e685604051806060016040528060288152602001611954602891396001600160a01b038a166000908152600260205260408120906107c5610f69565b6001600160a01b03168152602081019190915260400160002054919061135e565b610f6d565b5060019392505050565b6107fd610f69565b6008546001600160a01b0390811691161461084d576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b610856816113f5565b50565b60065460ff1690565b600061075e61086f610f69565b846107e68560026000610880610f69565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611492565b6009546000906001600160a01b03163314806108e05750336000908152600a602052604090205460ff1615156001145b61091b5760405162461bcd60e51b81526004018080602001828103825260298152602001806118b76029913960400191505060405180910390fd5b600061092684610b42565b905061093284846114f3565b600061093d85610b42565b91909111949350505050565b6009546001600160a01b03163314806109765750336000908152600a602052604090205460ff1615156001145b6109b15760405162461bcd60e51b81526004018080602001828103825260298152602001806118b76029913960400191505060405180910390fd5b610856816115c7565b6009546000906001600160a01b03166109d1610f69565b6001600160a01b031614905090565b806001600160a01b031663a9059cbb6109f76106a5565b604080516370a0823160e01b815230600482015290516001600160a01b038616916370a08231916024808301926020929190829003018186803b158015610a3d57600080fd5b505afa158015610a51573d6000803e3d6000fd5b505050506040513d6020811015610a6757600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050565b610ada610f69565b6008546001600160a01b03908116911614610b2a576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b610856816115d8565b6009546001600160a01b031690565b6001600160a01b031660009081526001602052604090205490565b610b65610f69565b6008546001600160a01b03908116911614610bb5576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b6008546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600880546001600160a01b0319169055565b6009546001600160a01b0316331480610c2c5750336000908152600a602052604090205460ff1615156001145b610c675760405162461bcd60e51b81526004018080602001828103825260298152602001806118b76029913960400191505060405180910390fd5b610c7182826115fa565b5050565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107405780601f1061071557610100808354040283529160200191610740565b610cde610f69565b6008546001600160a01b03908116911614610d2e576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b61085681611604565b600061075e610d44610f69565b846107e685604051806060016040528060258152602001611a266025913960026000610d6e610f69565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061135e565b600061075e610dac610f69565b8484611059565b6000546001600160a01b031681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610df5610f69565b6008546001600160a01b03908116911614610e45576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610e78610f69565b6008546001600160a01b03908116911614610ec8576040805162461bcd60e51b8152602060048201819052602482015260008051602061197c833981519152604482015290519081900360640190fd5b6001600160a01b038116610f0d5760405162461bcd60e51b815260040180806020018281038252602681526020018061186f6026913960400191505060405180910390fd5b6008546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316610fb25760405162461bcd60e51b8152600401808060200182810382526024815260200180611a026024913960400191505060405180910390fd5b6001600160a01b038216610ff75760405162461bcd60e51b81526004018080602001828103825260228152602001806118956022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661109e5760405162461bcd60e51b81526004018080602001828103825260258152602001806119dd6025913960400191505060405180910390fd5b6001600160a01b0382166110e35760405162461bcd60e51b815260040180806020018281038252602381526020018061182a6023913960400191505060405180910390fd5b60008054604080516354895ec160e01b81526001600160a01b0387811660048301528681166024830152604482018690528251859491909116926354895ec1926064808201939182900301818787803b15801561113f57600080fd5b505af1158015611153573d6000803e3d6000fd5b505050506040513d604081101561116957600080fd5b508051602091820151604080516060810190915260268082529295509093506111b6928692906118e0908301396001600160a01b038816600090815260016020526040902054919061135e565b6001600160a01b03861660009081526001602052604090205580156112e25760006111f760646111f16007548561160990919063ffffffff16565b90611662565b905061122561120683836116a4565b6001600160a01b03851660009081526001602052604090205490611492565b6001600160a01b0384166000818152600160205260409020919091556381596ec661125084846116a4565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b5050506001600160a01b038481169150871660008051602061199c8339815191526112c585856116a4565b60408051918252519081900360200190a36112e086826116e6565b505b6112ec83826116a4565b6001600160a01b0385166000908152600160205260409020549093506113129084611492565b6001600160a01b03808616600081815260016020908152604091829020949094558051878152905191939289169260008051602061199c83398151915292918290030190a35050505050565b600081848411156113ed5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113b257818101518382015260200161139a565b50505050905090810190601f1680156113df5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b03811661143a5760405162461bcd60e51b815260040180806020018281038252602d815260200180611906602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000828201838110156114ec576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661154e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60035461155b9082611492565b6003556001600160a01b0382166000908152600160205260409020546115819082611492565b6001600160a01b038316600081815260016020908152604080832094909455835185815293519293919260008051602061199c8339815191529281900390910190a35050565b6108566115d2610f69565b826116e6565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610c7182826116e6565b600755565b60008261161857506000610762565b8282028284828161162557fe5b04146114ec5760405162461bcd60e51b81526004018080602001828103825260218152602001806119336021913960400191505060405180910390fd5b60006114ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117c4565b60006114ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061135e565b6001600160a01b03821661172b5760405162461bcd60e51b81526004018080602001828103825260218152602001806119bc6021913960400191505060405180910390fd5b6117688160405180606001604052806022815260200161184d602291396001600160a01b038516600090815260016020526040902054919061135e565b6001600160a01b03831660009081526001602052604090205560035461178e90826116a4565b6003556040805182815290516000916001600160a01b0385169160008051602061199c8339815191529181900360200190a35050565b600081836118135760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156113b257818101518382015260200161139a565b50600083858161181f57fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736f70657261746f723a2063616c6c657220646f6573206e6f742068617665207065726d697373696f6e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209f5e2b2d0f9e110247ee69f7300c5f515dfc492345d0f37479464bc8df39afd664736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dac9a58030cc9afbafafd4c79226a764de027b48
-----Decoded View---------------
Arg [0] : _feeManager (address): 0xdac9A58030cC9AfbaFaFd4C79226A764dE027b48
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000dac9a58030cc9afbafafd4c79226a764de027b48
Deployed Bytecode Sourcemap
33451:1220:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34505:7;:5;:7::i;:::-;-1:-1:-1;;;;;34497:25:0;:36;34523:9;34497:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33451:1220;;;;;28529:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29383:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29383:169:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;28806:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;29558:321;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29558:321:0;;;;;;;;;;;;;;;;;:::i;4029:115::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4029:115:0;-1:-1:-1;;;;;4029:115:0;;:::i;:::-;;28715:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29887:218;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29887:218:0;;;;;;;;:::i;33610:322::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;33610:322:0;;;;;;;;:::i;33940:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33940:96:0;;:::i;3921:100::-;;;;;;;;;;;;;:::i;34549:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34549:119:0;-1:-1:-1;;;;;34549:119:0;;:::i;34214:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34214:107:0;-1:-1:-1;;;;;34214:107:0;;:::i;3521:85::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3521:85:0;;;;;;;;;;;;;;28914:119;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28914:119:0;-1:-1:-1;;;;;28914:119:0;;:::i;2730:148::-;;;;;;;;;;;;;:::i;34044:162::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;34044:162:0;;;;;;;;:::i;2431:79::-;;;;;;;;;;;;;:::i;28620:87::-;;;;;;;;;;;;;:::i;34329:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34329:97:0;;:::i;30113:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30113:269:0;;;;;;;;:::i;29041:175::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29041:175:0;;;;;;;;:::i;27988:25::-;;;;;;;;;;;;;:::i;29224:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29224:151:0;;;;;;;;;;:::i;3614:125::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3614:125:0;;;;;;;;;;:::i;2886:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2886:244:0;-1:-1:-1;;;;;2886:244:0;;:::i;2431:79::-;2496:6;;-1:-1:-1;;;;;2496:6:0;2431:79;:::o;28529:83::-;28599:5;28592:12;;;;;;;;-1:-1:-1;;28592:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28566:13;;28592:12;;28599:5;;28592:12;;28599:5;28592:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28529:83;:::o;29383:169::-;29466:4;29483:39;29492:12;:10;:12::i;:::-;29506:7;29515:6;29483:8;:39::i;:::-;-1:-1:-1;29540:4:0;29383:169;;;;;:::o;28806:100::-;28886:12;;28806:100;:::o;29558:321::-;29664:4;29681:36;29691:6;29699:9;29710:6;29681:9;:36::i;:::-;29728:121;29737:6;29745:12;:10;:12::i;:::-;29759:89;29797:6;29759:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29759:19:0;;;;;;:11;:19;;;;;;29779:12;:10;:12::i;:::-;-1:-1:-1;;;;;29759:33:0;;;;;;;;;;;;-1:-1:-1;29759:33:0;;;:89;:37;:89::i;:::-;29728:8;:121::i;:::-;-1:-1:-1;29867:4:0;29558:321;;;;;:::o;4029:115::-;2653:12;:10;:12::i;:::-;2643:6;;-1:-1:-1;;;;;2643:6:0;;;:22;;;2635:67;;;;;-1:-1:-1;;;2635:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:67:0;;;;;;;;;;;;;;;4105:31:::1;4123:12;4105:17;:31::i;:::-;4029:115:::0;:::o;28715:83::-;28781:9;;;;28715:83;:::o;29887:218::-;29975:4;29992:83;30001:12;:10;:12::i;:::-;30015:7;30024:50;30063:10;30024:11;:25;30036:12;:10;:12::i;:::-;-1:-1:-1;;;;;30024:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;30024:25:0;;;:34;;;;;;;;;;;:38;:50::i;33610:322::-;3804:9;;33717:4;;-1:-1:-1;;;;;3804:9:0;3790:10;:23;;:57;;-1:-1:-1;3828:10:0;3817:22;;;;:10;:22;;;;;;;;:30;;:22;:30;3790:57;3782:111;;;;-1:-1:-1;;;3782:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33739:21:::1;33763;33773:10;33763:9;:21::i;:::-;33739:45;;33795:26;33801:10;33813:7;33795:5;:26::i;:::-;33832:20;33855:21;33865:10;33855:9;:21::i;:::-;33896:28:::0;;;::::1;::::0;33610:322;-1:-1:-1;;;;33610:322:0:o;33940:96::-;3804:9;;-1:-1:-1;;;;;3804:9:0;3790:10;:23;;:57;;-1:-1:-1;3828:10:0;3817:22;;;;:10;:22;;;;;;;;:30;;:22;:30;3790:57;3782:111;;;;-1:-1:-1;;;3782:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34010:18:::1;34021:6;34010:10;:18::i;3921:100::-:0;4004:9;;3964:4;;-1:-1:-1;;;;;4004:9:0;3988:12;:10;:12::i;:::-;-1:-1:-1;;;;;3988:25:0;;3981:32;;3921:100;:::o;34549:119::-;34603:6;-1:-1:-1;;;;;34603:15:0;;34619:7;:5;:7::i;:::-;34628:31;;;-1:-1:-1;;;34628:31:0;;34653:4;34628:31;;;;;;-1:-1:-1;;;;;34628:16:0;;;;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34628:31:0;34603:57;;;-1:-1:-1;;;;;;34603:57:0;;;;;;;-1:-1:-1;;;;;34603:57:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;34603:57:0;;;;;;;-1:-1:-1;34603:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34549:119;:::o;34214:107::-;2653:12;:10;:12::i;:::-;2643:6;;-1:-1:-1;;;;;2643:6:0;;;:22;;;2635:67;;;;;-1:-1:-1;;;2635:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:67:0;;;;;;;;;;;;;;;34286:27:::1;34301:11;34286:14;:27::i;3521:85::-:0;3589:9;;-1:-1:-1;;;;;3589:9:0;3521:85;:::o;28914:119::-;-1:-1:-1;;;;;29007:18:0;28980:7;29007:18;;;:9;:18;;;;;;;28914:119::o;2730:148::-;2653:12;:10;:12::i;:::-;2643:6;;-1:-1:-1;;;;;2643:6:0;;;:22;;;2635:67;;;;;-1:-1:-1;;;2635:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:67:0;;;;;;;;;;;;;;;2821:6:::1;::::0;2800:40:::1;::::0;2837:1:::1;::::0;-1:-1:-1;;;;;2821:6:0::1;::::0;2800:40:::1;::::0;2837:1;;2800:40:::1;2851:6;:19:::0;;-1:-1:-1;;;;;;2851:19:0::1;::::0;;2730:148::o;34044:162::-;3804:9;;-1:-1:-1;;;;;3804:9:0;3790:10;:23;;:57;;-1:-1:-1;3828:10:0;3817:22;;;;:10;:22;;;;;;;;:30;;:22;:30;3790:57;3782:111;;;;-1:-1:-1;;;3782:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34167:31:::1;34182:7;34191:6;34167:14;:31::i;:::-;34044:162:::0;;:::o;28620:87::-;28692:7;28685:14;;;;;;;;-1:-1:-1;;28685:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28659:13;;28685:14;;28692:7;;28685:14;;28692:7;28685:14;;;;;;;;;;;;;;;;;;;;;;;;34329:97;2653:12;:10;:12::i;:::-;2643:6;;-1:-1:-1;;;;;2643:6:0;;;:22;;;2635:67;;;;;-1:-1:-1;;;2635:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:67:0;;;;;;;;;;;;;;;34396:22:::1;34410:7;34396:13;:22::i;30113:269::-:0;30206:4;30223:129;30232:12;:10;:12::i;:::-;30246:7;30255:96;30294:15;30255:96;;;;;;;;;;;;;;;;;:11;:25;30267:12;:10;:12::i;:::-;-1:-1:-1;;;;;30255:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;30255:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;29041:175::-;29127:4;29144:42;29154:12;:10;:12::i;:::-;29168:9;29179:6;29144:9;:42::i;27988:25::-;;;-1:-1:-1;;;;;27988:25:0;;:::o;29224:151::-;-1:-1:-1;;;;;29340:18:0;;;29313:7;29340:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;29224:151::o;3614:125::-;2653:12;:10;:12::i;:::-;2643:6;;-1:-1:-1;;;;;2643:6:0;;;:22;;;2635:67;;;;;-1:-1:-1;;;2635:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3699:16:0;;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:32;;-1:-1:-1;;3699:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3614:125::o;2886:244::-;2653:12;:10;:12::i;:::-;2643:6;;-1:-1:-1;;;;;2643:6:0;;;:22;;;2635:67;;;;;-1:-1:-1;;;2635:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2635:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2975:22:0;::::1;2967:73;;;;-1:-1:-1::0;;;2967:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3077:6;::::0;3056:38:::1;::::0;-1:-1:-1;;;;;3056:38:0;;::::1;::::0;3077:6:::1;::::0;3056:38:::1;::::0;3077:6:::1;::::0;3056:38:::1;3105:6;:17:::0;;-1:-1:-1;;;;;;3105:17:0::1;-1:-1:-1::0;;;;;3105:17:0;;;::::1;::::0;;;::::1;::::0;;2886:244::o;120:106::-;208:10;120:106;:::o;32118:346::-;-1:-1:-1;;;;;32220:19:0;;32212:68;;;;-1:-1:-1;;;32212:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32299:21:0;;32291:68;;;;-1:-1:-1;;;32291:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32372:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;32424:32;;;;;;;;;;;;;;;;;32118:346;;;:::o;30390:1032::-;-1:-1:-1;;;;;30496:20:0;;30488:70;;;;-1:-1:-1;;;30488:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30577:23:0;;30569:71;;;;-1:-1:-1;;;30569:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30654:19;30708:10;;30696:59;;;-1:-1:-1;;;30696:59:0;;-1:-1:-1;;;;;30696:59:0;;;;;;;;;;;;;;;;;;;;;;30654:19;;30708:10;;;;;30696:32;;:59;;;;;;;;;;;30654:19;30708:10;30696:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30696:59:0;;;;;;;;30786:71;;;;;;;;;;;;30696:59;;-1:-1:-1;30696:59:0;;-1:-1:-1;30786:71:0;;30808:6;;30786:71;;;;;;-1:-1:-1;;;;;30786:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;30766:17:0;;;;;;:9;:17;;;;;:91;30873:13;;30870:385;;30903:18;30924:33;30953:3;30924:24;30938:9;;30924;:13;;:24;;;;:::i;:::-;:28;;:33::i;:::-;30903:54;-1:-1:-1;30997:53:0;31024:25;:9;30903:54;31024:13;:25::i;:::-;-1:-1:-1;;;;;30997:22:0;;;;;;:9;:22;;;;;;;:26;:53::i;:::-;-1:-1:-1;;;;;30972:22:0;;;;;;:9;:22;;;;;:78;;;;31065:35;31101:25;:9;31115:10;31101:13;:25::i;:::-;31065:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;31147:56:0;;;;-1:-1:-1;31147:56:0;;-1:-1:-1;;;;;;;;;;;31177:25:0;:9;31191:10;31177:13;:25::i;:::-;31147:56;;;;;;;;;;;;;;;31218:25;31224:6;31232:10;31218:5;:25::i;:::-;30870:385;;31276:21;:6;31287:9;31276:10;:21::i;:::-;-1:-1:-1;;;;;31331:20:0;;;;;;:9;:20;;;;;;31267:30;;-1:-1:-1;31331:32:0;;31267:30;31331:24;:32::i;:::-;-1:-1:-1;;;;;31308:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;31379:35;;;;;;;31308:20;;31379:35;;;;-1:-1:-1;;;;;;;;;;;31379:35:0;;;;;;;;30390:1032;;;;;:::o;4808:192::-;4894:7;4930:12;4922:6;;;;4914:29;;;;-1:-1:-1;;;4914:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4966:5:0;;;4808:192::o;4152:294::-;-1:-1:-1;;;;;4243:26:0;;4221:121;;;;-1:-1:-1;;;4221:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4358:45;;-1:-1:-1;;;;;4358:45:0;;;4386:1;;4358:45;;4386:1;;4358:45;4414:9;:24;;-1:-1:-1;;;;;;4414:24:0;-1:-1:-1;;;;;4414:24:0;;;;;;;;;;4152:294::o;4479:181::-;4537:7;4569:5;;;4593:6;;;;4585:46;;;;;-1:-1:-1;;;4585:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4651:1;4479:181;-1:-1:-1;;;4479:181:0:o;31430:316::-;-1:-1:-1;;;;;31514:21:0;;31506:65;;;;;-1:-1:-1;;;31506:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;31599:12;;:24;;31616:6;31599:16;:24::i;:::-;31584:12;:39;-1:-1:-1;;;;;31655:18:0;;;;;;:9;:18;;;;;;:30;;31678:6;31655:22;:30::i;:::-;-1:-1:-1;;;;;31634:18:0;;;;;;:9;:18;;;;;;;;:51;;;;31701:37;;;;;;;31634:18;;;;-1:-1:-1;;;;;;;;;;;31701:37:0;;;;;;;;;31430:316;;:::o;32927:91::-;32983:27;32989:12;:10;:12::i;:::-;33003:6;32983:5;:27::i;32570:83::-;32628:10;:17;;-1:-1:-1;;;;;;32628:17:0;-1:-1:-1;;;;;32628:17:0;;;;;;;;;;32570:83::o;33337:107::-;33414:22;33420:7;33429:6;33414:5;:22::i;32661:87::-;32721:9;:19;32661:87::o;5006:471::-;5064:7;5309:6;5305:47;;-1:-1:-1;5339:1:0;5332:8;;5305:47;5376:5;;;5380:1;5376;:5;:1;5400:5;;;;;:10;5392:56;;;;-1:-1:-1;;;5392:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5483:132;5541:7;5568:39;5572:1;5575;5568:39;;;;;;;;;;;;;;;;;:3;:39::i;4666:136::-;4724:7;4751:43;4755:1;4758;4751:43;;;;;;;;;;;;;;;;;:3;:43::i;31754:356::-;-1:-1:-1;;;;;31838:21:0;;31830:67;;;;-1:-1:-1;;;31830:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31931:68;31954:6;31931:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31931:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;31910:18:0;;;;;;:9;:18;;;;;:89;32025:12;;:24;;32042:6;32025:16;:24::i;:::-;32010:12;:39;32065:37;;;;;;;;32091:1;;-1:-1:-1;;;;;32065:37:0;;;-1:-1:-1;;;;;;;;;;;32065:37:0;;;;;;;;31754:356;;:::o;5621:278::-;5707:7;5742:12;5735:5;5727:28;;;;-1:-1:-1;;;5727:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5766:9;5782:1;5778;:5;;;;;;;5621:278;-1:-1:-1;;;;;5621:278:0:o
Swarm Source
ipfs://9f5e2b2d0f9e110247ee69f7300c5f515dfc492345d0f37479464bc8df39afd6
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.