ETH Price: $1,895.13 (-5.22%)

Token

XVIX (XVIX)
 

Overview

Max Total Supply

31,729.058975344774436828 XVIX

Holders

568 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 XVIX

Value
$0.00
0xbb3cd560596c94fdbd212454e811c56d997a912e
Loading...
Loading
Loading...
Loading

OVERVIEW

XVIX is a token that takes advantage of volatility through a continually increasing floor price and by implementing non-uniform rebasing: https://xvix.medium.com/introducing-xvix-f09759888da5

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
XVIX

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 31 : XVIX.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "./libraries/math/SafeMath.sol";
import "./libraries/token/IERC20.sol";
import "./interfaces/IXVIX.sol";
import "./interfaces/IFloor.sol";
contract XVIX is IERC20, IXVIX {
using SafeMath for uint256;
struct TransferConfig {
bool active;
uint256 senderBurnBasisPoints;
uint256 senderFundBasisPoints;
uint256 receiverBurnBasisPoints;
uint256 receiverFundBasisPoints;
}
uint256 public constant BASIS_POINTS_DIVISOR = 10000;
uint256 public constant MAX_FUND_BASIS_POINTS = 20; // 0.2%
uint256 public constant MAX_BURN_BASIS_POINTS = 500; // 5%
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 31 : Distributor.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "./libraries/math/SafeMath.sol";
import "./libraries/token/IERC20.sol";
import "./libraries/utils/ReentrancyGuard.sol";
import "./interfaces/ILGEToken.sol";
import "./interfaces/IWETH.sol";
import "./interfaces/IXVIX.sol";
import "./interfaces/IFloor.sol";
import "./interfaces/IMinter.sol";
import "./interfaces/IUniswapV2Router.sol";
import "./interfaces/IUniswapV2Factory.sol";
contract Distributor is ReentrancyGuard {
using SafeMath for uint256;
uint256 public constant FLOOR_BASIS_POINTS = 5000;
uint256 public constant BASIS_POINTS_DIVISOR = 10000;
bool public isInitialized;
uint256 public lgeEndTime;
uint256 public lpUnlockTime;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 31 : SafeMath.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 31 : IERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 31 : ReentrancyGuard.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 31 : ILGEToken.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface ILGEToken {
function mint(address account, uint256 amount) external returns (bool);
function burn(address account, uint256 amount) external returns (bool);
function token() external view returns (address);
function refBalance() external view returns (uint256);
function setRefBalance(uint256 balance) external returns (bool);
function refSupply() external view returns (uint256);
function setRefSupply(uint256 supply) external returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 31 : IWETH.sol
1
2
3
4
5
6
7
8
9
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IWETH {
function deposit() external payable;
function transfer(address to, uint value) external returns (bool);
function withdraw(uint) external;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 31 : IXVIX.sol
1
2
3
4
5
6
7
8
9
10
11
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IXVIX {
function maxSupply() external view returns (uint256);
function mint(address account, uint256 amount) external returns (bool);
function burn(address account, uint256 amount) external returns (bool);
function toast(uint256 amount) external returns (bool);
function rebase() external returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 31 : IFloor.sol
1
2
3
4
5
6
7
8
9
10
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IFloor {
function refund(address receiver, uint256 burnAmount) external returns (uint256);
function capital() external view returns (uint256);
function getMaxMintAmount(uint256 ethAmount) external view returns (uint256);
function getRefundAmount(uint256 _tokenAmount) external view returns (uint256);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 31 : IMinter.sol
1
2
3
4
5
6
7
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IMinter {
function enableMint(uint256 ethReserve) external;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 31 : IUniswapV2Router.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IUniswapV2Router {
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
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,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 31 : IUniswapV2Factory.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
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 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;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 31 : Floor.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "./libraries/math/SafeMath.sol";
import "./libraries/token/IERC20.sol";
import "./libraries/utils/ReentrancyGuard.sol";
import "./interfaces/IFloor.sol";
import "./interfaces/IXVIX.sol";
// Floor: accumulates ETH and allows XVIX to be burnt for ETH
contract Floor is IFloor, ReentrancyGuard {
using SafeMath for uint256;
uint256 public constant BASIS_POINTS_DIVISOR = 10000;
uint256 public constant REFUND_BASIS_POINTS = 9000; // 90%
address public immutable xvix;
// manually track capital to guard against reentrancy attacks
uint256 public override capital;
event Refund(address indexed to, uint256 refundAmount, uint256 burnAmount);
event FloorPrice(uint256 capital, uint256 supply);
constructor(address _xvix) public {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 31 : IDistributor.sol
1
2
3
4
5
6
7
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IDistributor {
function active() external view returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 31 : IUniswapV2Callee.sol
1
2
3
4
5
6
7
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IUniswapV2Callee {
function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 31 : IUniswapV2ERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IUniswapV2ERC20 {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint 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 (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 31 : IUniswapV2Pair.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
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 (uint);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 18 of 31 : LGEToken.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "./libraries/token/IERC20.sol";
import "./libraries/math/SafeMath.sol";
import "./interfaces/ILGEToken.sol";
contract LGEToken is IERC20, ILGEToken {
using SafeMath for uint256;
string public name;
string public symbol;
uint8 public decimals;
uint256 public override totalSupply;
address public distributor;
address public override token;
uint256 public override refBalance;
uint256 public override refSupply;
mapping (address => uint256) public balances;
mapping (address => mapping (address => uint256)) public allowances;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 19 of 31 : Math.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
// a library for performing various math operations
library Math {
function min(uint x, uint y) internal pure returns (uint z) {
z = x < y ? x : y;
}
// babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
function sqrt(uint y) internal pure returns (uint z) {
if (y > 3) {
z = y;
uint x = y / 2 + 1;
while (x < z) {
z = x;
x = (y / x + x) / 2;
}
} else if (y != 0) {
z = 1;
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 20 of 31 : UQ112x112.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))
// range: [0, 2**112 - 1]
// resolution: 1 / 2**112
library UQ112x112 {
uint224 constant Q112 = 2**112;
// encode a uint112 as a UQ112x112
function encode(uint112 y) internal pure returns (uint224 z) {
z = uint224(y) * Q112; // never overflows
}
// divide a UQ112x112 by a uint112, returning a UQ112x112
function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
z = x / uint224(y);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 21 of 31 : Minter.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "./libraries/math/SafeMath.sol";
import "./libraries/token/IERC20.sol";
import "./libraries/utils/ReentrancyGuard.sol";
import "./interfaces/IMinter.sol";
import "./interfaces/IXVIX.sol";
import "./interfaces/IFloor.sol";
// Minter: allows XVIX to be minted following a bonding curve
contract Minter is IMinter, ReentrancyGuard {
using SafeMath for uint256;
uint256 public constant BASIS_POINTS_DIVISOR = 10000;
address public immutable xvix;
address public immutable floor;
address public immutable distributor;
uint256 public ethReserve;
bool public active = false;
event Mint(address indexed to, uint256 value);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 22 of 31 : UniswapV2LibraryMock.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import '../interfaces/IUniswapV2Pair.sol';
import "../libraries/math/SafeMath.sol";
// Mock the library because the UniswapV2Pair bytecode hash is different for localhost
library UniswapV2LibraryMock {
using SafeMath for uint;
// 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(uint(keccak256(abi.encodePacked(
hex'ff',
factory,
keccak256(abi.encodePacked(token0, token1)),
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 23 of 31 : Reader.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "./libraries/math/SafeMath.sol";
import "./uniswap/UniswapV2Library.sol";
import "./libraries/token/IERC20.sol";
import "./interfaces/ILGEToken.sol";
import "./interfaces/IFloor.sol";
contract Reader {
using SafeMath for uint256;
uint256 public constant BASIS_POINTS_DIVISOR = 10000;
address public immutable factory;
address public immutable xvix;
address public immutable dai;
address public immutable lgeTokenWETH;
address public immutable distributor;
address public immutable floor;
constructor(
address _factory,
address _xvix,
address _dai,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 24 of 31 : UniswapV2Library.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import '../interfaces/IUniswapV2Pair.sol';
import "../libraries/math/SafeMath.sol";
library UniswapV2Library {
using SafeMath for uint;
// 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(uint(keccak256(abi.encodePacked(
hex'ff',
factory,
keccak256(abi.encodePacked(token0, token1)),
hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 25 of 31 : DAI.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "../libraries/token/IERC20.sol";
import "../libraries/math/SafeMath.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin guidelines: functions revert instead
* of returning `false` on failure. This behavior is nonetheless conventional
* and does not conflict with the expectations of ERC20 applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 26 of 31 : WETH.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "../libraries/token/IERC20.sol";
import "../libraries/math/SafeMath.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin guidelines: functions revert instead
* of returning `false` on failure. This behavior is nonetheless conventional
* and does not conflict with the expectations of ERC20 applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 27 of 31 : TransferHelper.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
function safeApprove(address token, address to, uint value) internal {
// bytes4(keccak256(bytes('approve(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
}
function safeTransfer(address token, address to, uint value) internal {
// bytes4(keccak256(bytes('transfer(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
}
function safeTransferFrom(address token, address from, address to, uint value) internal {
// bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
}
function safeTransferETH(address to, uint value) internal {
(bool success,) = to.call{value:value}(new bytes(0));
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 28 of 31 : UniswapV2ERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import '../interfaces/IUniswapV2ERC20.sol';
import '../libraries/math/SafeMath.sol';
contract UniswapV2ERC20 is IUniswapV2ERC20 {
using SafeMath for uint;
string public constant override name = 'Uniswap V2';
string public constant override symbol = 'UNI-V2';
uint8 public constant override decimals = 18;
uint private _totalSupply;
mapping(address => uint) private _balances;
mapping(address => mapping(address => uint)) private _allowances;
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
constructor() public {}
function _mint(address to, uint value) internal {
_totalSupply = _totalSupply.add(value);
_balances[to] = _balances[to].add(value);
emit Transfer(address(0), to, value);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 29 of 31 : UniswapV2Factory.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import '../interfaces/IUniswapV2Factory.sol';
import './UniswapV2Pair.sol';
contract UniswapV2Factory is IUniswapV2Factory {
address public override feeTo;
address public override feeToSetter;
mapping(address => mapping(address => address)) public override getPair;
address[] public override allPairs;
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
constructor(address _feeToSetter) public {
feeToSetter = _feeToSetter;
}
function allPairsLength() external override view returns (uint) {
return allPairs.length;
}
function createPair(address tokenA, address tokenB) external override returns (address pair) {
require(tokenA != tokenB, 'UniswapV2: IDENTICAL_ADDRESSES');
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 30 of 31 : UniswapV2Pair.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import '../libraries/math/Math.sol';
import '../libraries/math/UQ112x112.sol';
import '../libraries/token/IERC20.sol';
import '../interfaces/IUniswapV2Pair.sol';
import '../interfaces/IUniswapV2Factory.sol';
import '../interfaces/IUniswapV2Callee.sol';
import './UniswapV2ERC20.sol';
contract UniswapV2Pair is IUniswapV2Pair, UniswapV2ERC20 {
using SafeMath for uint;
using UQ112x112 for uint224;
uint public constant override MINIMUM_LIQUIDITY = 10**3;
bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));
address public override factory;
address public override token0;
address public override token1;
uint112 private reserve0; // uses single storage slot, accessible via getReserves
uint112 private reserve1; // uses single storage slot, accessible via getReserves
uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 31 of 31 : UniswapV2Router.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import './TransferHelper.sol';
import '../mocks/UniswapV2LibraryMock.sol';
import '../libraries/math/SafeMath.sol';
import '../libraries/token/IERC20.sol';
import '../interfaces/IWETH.sol';
import '../interfaces/IUniswapV2ERC20.sol';
import '../interfaces/IUniswapV2Router.sol';
import '../interfaces/IUniswapV2Factory.sol';
contract UniswapV2Router is IUniswapV2Router {
using SafeMath for uint;
address public immutable factory;
address public immutable WETH;
modifier ensure(uint deadline) {
require(deadline >= block.timestamp, 'UniswapV2Router: EXPIRED');
_;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"metadata": {
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"libraries": {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"uint256","name":"_initialSupply","type":"uint256"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"},{"internalType":"uint256","name":"_govHandoverTime","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":"msgSender","type":"address"}],"name":"ClearTransferConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"}],"name":"CreateSafe","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"senderBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"senderFundBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiverBurnBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiverFundBasisPoints","type":"uint256"}],"name":"DefaultTransferConfigChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"}],"name":"DestroySafe","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"capital","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"FloorPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"gov","type":"address"}],"name":"GovChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"normalDivisor","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextRebaseTime","type":"uint256"}],"name":"Rebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rebaseInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rebaseBasisPoints","type":"uint256"}],"name":"RebaseConfigChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"msgSender","type":"address"},{"indexed":false,"internalType":"uint256","name":"senderBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"senderFundBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiverBurnBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiverFundBasisPoints","type":"uint256"}],"name":"SetTransferConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"Toast","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":[],"name":"BASIS_POINTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BURN_BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FUND_BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_INTERVALS_PER_REBASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_NORMAL_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_REBASE_BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_REBASE_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_REBASE_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SAFE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_normalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_safeSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowances","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":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgSender","type":"address"}],"name":"clearTransferConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"createSafe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReceiverBurnBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReceiverFundBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultSenderBurnBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultSenderFundBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"destroySafe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"floor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"govHandoverTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"normalDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"normalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebaseBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"safes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_senderBurnBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_senderFundBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_receiverBurnBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_receiverFundBasisPoints","type":"uint256"}],"name":"setDefaultTransferConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_distributor","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_floor","type":"address"}],"name":"setFloor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fund","type":"address"}],"name":"setFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rebaseInterval","type":"uint256"},{"internalType":"uint256","name":"_rebaseBasisPoints","type":"uint256"}],"name":"setRebaseConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgSender","type":"address"},{"internalType":"uint256","name":"_senderBurnBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_senderFundBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_receiverBurnBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_receiverFundBasisPoints","type":"uint256"}],"name":"setTransferConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_website","type":"string"}],"name":"setWebsite","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"toast","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"transferConfigs","outputs":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"senderBurnBasisPoints","type":"uint256"},{"internalType":"uint256","name":"senderFundBasisPoints","type":"uint256"},{"internalType":"uint256","name":"receiverBurnBasisPoints","type":"uint256"},{"internalType":"uint256","name":"receiverFundBasisPoints","type":"uint256"}],"stateMutability":"view","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":[],"name":"website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60c0604052601560808190527f68747470733a2f2f787669782e66696e616e63652f000000000000000000000060a0908152620000409160009190620006ca565b506305f5e100600955610e10600a556002600b556000600c556000600d556000600e55602b600f5560076010553480156200007a57600080fd5b506040516200338e3803806200338e83398181016040526060811015620000a057600080fd5b5080516020820151604090920151600180546001600160a01b0319163390811790915560118290556008849055919291620000dc9084620000ef565b620000e6620001b2565b50505062000766565b6001600160a01b0382166200014b576040805162461bcd60e51b815260206004820152601e60248201527f585649583a206d696e7420746f20746865207a65726f20616464726573730000604482015290519081900360640190fd5b806200015757620001ae565b6200016382826200020f565b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3620001ae620003c7565b5050565b6000620001eb600a54620001d7600a54426200049c60201b62001cd61790919060201c565b620004ef60201b62001d1f1790919060201c565b905062000209600a54826200054d60201b62001d781790919060201c565b600c5550565b806200021b5762000366565b6001600160a01b03821660009081526015602052604090205460ff1615620002d55760006200025d6305f5e10083620004ef60201b62001d1f1790919060201c565b6001600160a01b038416600090815260126020908152604090912054919250620002939190839062001d786200054d821b17901c565b6001600160a01b038416600090815260126020908152604090912091909155600754620002cb91839062001d786200054d821b17901c565b6007555062000366565b6000620002f360095483620004ef60201b62001d1f1790919060201c565b6001600160a01b038416600090815260126020908152604090912054919250620003299190839062001d786200054d821b17901c565b6001600160a01b0384166000908152601260209081526040909120919091556006546200036191839062001d786200054d821b17901c565b600655505b60085462000373620005a8565b1115620001ae576040805162461bcd60e51b815260206004820152601960248201527f585649583a206d617820737570706c7920657863656564656400000000000000604482015290519081900360640190fd5b600354620003de906001600160a01b0316620005db565b156200049a5760035460408051631a423fa360e31b815290517f29cc6e043f6a8ee5c6495fc77b357c6291691b06b85c30e4b48a3fcebb3e3a7f926001600160a01b03169163d211fd18916004808301926020929190829003018186803b1580156200044957600080fd5b505afa1580156200045e573d6000803e3d6000fd5b505050506040513d60208110156200047557600080fd5b505162000481620005a8565b6040805192835260208301919091528051918290030190a15b565b6000620004e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005e160201b60201c565b90505b92915050565b6000826200050057506000620004e9565b828202828482816200050e57fe5b0414620004e65760405162461bcd60e51b81526004018080602001828103825260218152602001806200336d6021913960400191505060405180910390fd5b600082820183811015620004e6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000620005d6620005b862000688565b620005c2620006aa565b6200054d60201b62001d781790919060201c565b905090565b3b151590565b60008183620006715760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620006355781810151838201526020016200061b565b50505050905090810190601f168015620006635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200067e57fe5b0495945050505050565b6000620005d66305f5e1006007546200049c60201b62001cd61790919060201c565b6000620005d66009546006546200049c60201b62001cd61790919060201c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200070d57805160ff19168380011785556200073d565b828001600101855582156200073d579182015b828111156200073d57825182559160200191906001019062000720565b506200074b9291506200074f565b5090565b5b808211156200074b576000815560010162000750565b612bf780620007766000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c806389edeb74116101de578063bc75350f1161010f578063dd62ed3e116100ad578063f87f44b91161007c578063f87f44b9146108e9578063f9b676011461098f578063fca3b5aa14610997578063fffe7e91146109bd5761038e565b8063dd62ed3e14610885578063f27f5a22146108b3578063f47f43fd146108bb578063f59a4708146108e15761038e565b8063c57f9c08116100e9578063c57f9c0814610764578063cfad57a21461084f578063d5abeb0114610875578063d6338ecb1461087d5761038e565b8063bc75350f14610837578063beb0a4161461083f578063bfe10928146108475761038e565b8063a56faa7a1161017c578063a9059cbb11610156578063a9059cbb146107f3578063af14052c1461081f578063b3ed30b614610827578063b60d42881461082f5761038e565b8063a56faa7a146107c6578063a64666b5146107ce578063a6b949f2146107eb5761038e565b806395d89b41116101b857806395d89b41146103935780639dc29fac1461076c5780639e70ecd114610798578063a366b7f0146107a05761038e565b806389edeb74146107395780638b02358f146107415780638e3b231d146107645761038e565b8063295fe56f116102c3578063610df7211161026157806370a082311161023057806370a082311461068957806375619ab5146106af57806376804ef3146106d557806389adbf66146107135761038e565b8063610df721146106695780636236350b146106715780636a70229f146106795780636bf34d60146106815761038e565b8063406953631161029d57806340695363146105ff57806340c10f191461060757806348b5f2bc1461063357806355b6ed5c1461063b5761038e565b8063295fe56f146105d1578063313ce567146105d957806340062af4146105f75761038e565b8063174daa38116103305780631e0466ed1161030a5780631e0466ed146104fc57806323b872dd1461054f5780632585892e1461058557806327e235e3146105ab5761038e565b8063174daa38146104e457806317bedca9146104ec57806318160ddd146104f45761038e565b80630e21750f1161036c5780630e21750f14610474578063126082cf1461049c57806312d43a51146104b6578063153ec22f146104be5761038e565b806306fdde03146103935780630754617214610410578063095ea7b314610434575b600080fd5b61039b6109ec565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610418610a0c565b604080516001600160a01b039092168252519081900360200190f35b6104606004803603604081101561044a57600080fd5b506001600160a01b038135169060200135610a1b565b604080519115158252519081900360200190f35b61049a6004803603602081101561048a57600080fd5b50356001600160a01b0316610a32565b005b6104a4610aa5565b60408051918252519081900360200190f35b610418610aab565b61049a600480360360208110156104d457600080fd5b50356001600160a01b0316610aba565b6104a4610baf565b6104a4610bb5565b6104a4610bbb565b6105226004803603602081101561051257600080fd5b50356001600160a01b0316610bdc565b60408051951515865260208601949094528484019290925260608401526080830152519081900360a00190f35b6104606004803603606081101561056557600080fd5b506001600160a01b03813581169160208101359091169060400135610c0f565b61049a6004803603602081101561059b57600080fd5b50356001600160a01b0316610c86565b6104a4600480360360208110156105c157600080fd5b50356001600160a01b0316610d57565b6104a4610d69565b6105e1610d6f565b6040805160ff9092168252519081900360200190f35b6104a4610d74565b610418610d7a565b6104606004803603604081101561061d57600080fd5b506001600160a01b038135169060200135610d89565b6104a4610de7565b6104a46004803603604081101561065157600080fd5b506001600160a01b0381358116916020013516610e00565b6104a4610e1d565b6104a4610e2b565b6104a4610e31565b6104a4610e38565b6104a46004803603602081101561069f57600080fd5b50356001600160a01b0316610e3e565b61049a600480360360208110156106c557600080fd5b50356001600160a01b0316610eba565b61049a600480360360a08110156106eb57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135610f8b565b61049a6004803603602081101561072957600080fd5b50356001600160a01b0316611100565b6104a46112f5565b61049a6004803603604081101561075757600080fd5b50803590602001356112fb565b6104a46114af565b6104606004803603604081101561078257600080fd5b506001600160a01b0381351690602001356114b5565b6104a4611513565b61049a600480360360208110156107b657600080fd5b50356001600160a01b0316611519565b6104a46116c6565b610460600480360360208110156107e457600080fd5b50356116cc565b6104a461178d565b6104606004803603604081101561080957600080fd5b506001600160a01b038135169060200135611793565b6104606117b2565b6104a46118d6565b6104186118db565b6104a46118ea565b61039b6118f0565b61041861197e565b61049a6004803603602081101561086557600080fd5b50356001600160a01b031661198d565b6104a4611a32565b6104a4611a38565b6104a46004803603604081101561089b57600080fd5b506001600160a01b0381358116916020013516611a4c565b6104a4611a77565b610460600480360360208110156108d157600080fd5b50356001600160a01b0316611a7c565b6104a4611a91565b61049a600480360360208110156108ff57600080fd5b81019060208101813564010000000081111561091a57600080fd5b82018360208201111561092c57600080fd5b8035906020019184600183028401116401000000008311171561094e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a99945050505050565b6104a4611b01565b61049a600480360360208110156109ad57600080fd5b50356001600160a01b0316611b07565b61049a600480360360808110156109d357600080fd5b5080359060208101359060408101359060600135611bd8565b604051806040016040528060048152602001630b0ac92b60e31b81525081565b6002546001600160a01b031681565b6000610a28338484611dd2565b5060015b92915050565b6001546001600160a01b03163314610a83576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61271081565b6001546001600160a01b031681565b6001546001600160a01b03163314610b0b576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6011544211610b4b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b6001600160a01b038116600081815260146020526040808220805460ff19168155600181018390556002810183905560038101839055600401829055517f8f12cd94a95b51f0ac9bd32446333c1fbdd607ec0d4c6dd7ea6ce7d1530291989190a250565b600d5481565b60115481565b6000610bd6610bc8611a38565b610bd0610de7565b90611d78565b90505b90565b6014602052600090815260409020805460018201546002830154600384015460049094015460ff90931693919290919085565b600080610c5a83604051806060016040528060278152602001612a5a602791396001600160a01b03881660009081526013602090815260408083203384529091529020549190611ebe565b9050610c67853383611dd2565b610c72858585611f55565b610c7a6117b2565b50600195945050505050565b6001546001600160a01b03163314610cd7576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6003546001600160a01b031615610d35576040805162461bcd60e51b815260206004820152601760248201527f585649583a20666c6f6f7220616c726561647920736574000000000000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60126020526000908152604090205481565b61070881565b601281565b60095481565b6003546001600160a01b031681565b6002546000906001600160a01b03163314610ddd576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b610a2883836121b0565b6000610bd6600954600654611cd690919063ffffffff16565b601360209081526000928352604080842090915290825290205481565b69152d02c7e14af680000081565b600e5481565b62093a8081565b600c5481565b6001600160a01b03811660009081526015602052604081205460ff1615610e8d576001600160a01b038216600090815260126020526040902054610e86906305f5e100611cd6565b9050610eb5565b6009546001600160a01b038316600090815260126020526040902054610eb291611cd6565b90505b919050565b6001546001600160a01b03163314610f0b576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6004546001600160a01b031615610f69576040805162461bcd60e51b815260206004820152601d60248201527f585649583a206469737472696275746f7220616c726561647920736574000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610fdc576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6001600160a01b038516611037576040805162461bcd60e51b815260206004820152601d60248201527f585649583a2063616e6e6f7420736574207a65726f2061646472657373000000604482015290519081900360640190fd5b61104384848484612256565b6040805160a08101825260018082526020808301888152838501888152606080860189815260808088018a81526001600160a01b038f166000818152601489528b902099518a5460ff1916901515178a559551978901979097559251600288015551600387015593516004909501949094558451898152918201889052818501879052918101859052925190927ffd601d76c98906b47d0588bdb0e6bf873309af377dae629f95fc578317749e9b92908290030190a25050505050565b6001546001600160a01b03163314611151576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6001600160a01b03811660009081526015602052604090205460ff16156111bf576040805162461bcd60e51b815260206004820152601f60248201527f585649583a206163636f756e7420697320616c72656164792061207361666500604482015290519081900360640190fd5b6001600160a01b0381166000908152601560209081526040808320805460ff1916600117905560129091529020546006546111fa908261235e565b60065560095460009061121b90611215846305f5e100611d1f565b90611cd6565b6001600160a01b03841660009081526012602052604090208190556007549091506112469082611d78565b6007557f05436321947293619db7c7a7c30a8581bbf251c170866a622914c543fad4fde68361127481610e3e565b604080516001600160a01b03909316835260208301919091528051918290030190a150506008546112a3610bbb565b11156112f2576040805162461bcd60e51b8152602060048201526019602482015278161592560e881b585e081cdd5c1c1b1e48195e18d959591959603a1b604482015290519081900360640190fd5b50565b600a5481565b6001546001600160a01b0316331461134c576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b601154421161138c5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b6107088210156113e3576040805162461bcd60e51b815260206004820181905260248201527f585649583a20726562617365496e74657276616c2062656c6f77206c696d6974604482015290519081900360640190fd5b62093a808211156114255760405162461bcd60e51b8152600401808060200182810382526022815260200180612b786022913960400191505060405180910390fd5b6101f48111156114665760405162461bcd60e51b8152600401808060200182810382526025815260200180612a356025913960400191505060405180910390fd5b600a829055600b819055604080518381526020810183905281517f8a6115eb53f842f9d64324b20fdd329b455169a31774ffc34d658bec837a90cd929181900390910190a15050565b6101f481565b6003546000906001600160a01b03163314611509576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b610a2883836123a0565b60105481565b6001546001600160a01b0316331461156a576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b60115442116115aa5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b6001600160a01b03811660009081526015602052604090205460ff16611617576040805162461bcd60e51b815260206004820152601b60248201527f585649583a206163636f756e74206973206e6f74206120736166650000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152601560209081526040808320805460ff19169055601290915290205460075461164f908261235e565b60075560095460009061166d906305f5e10090611215908590611d1f565b6001600160a01b03841660009081526012602052604090208190556006549091506116989082611d78565b6006557f92d4f663a040f2629d4994604f1ffbe6733622e8c5f11910ec623e4c8746bdaa8361127481610e3e565b60075481565b6004546000906001600160a01b03163314611720576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b8161172d57506000610eb5565b61173733836123a0565b600854611744908361235e565b6008819055604080518481526020810192909252805133927f330cb712f04961497080da66a1f756f88bc9a4846dce611f510ab4108c32360192908290030190a2506001919050565b600f5481565b60006117a0338484611f55565b6117a86117b2565b5060019392505050565b6000600c544210156117c657506000610bd9565b60006117dd600c544261235e90919063ffffffff16565b905060006117fb6001610bd0600a5485611cd690919063ffffffff16565b9050600a81111561180a5750600a5b611812612446565b600b5461182457600092505050610bd9565b60008161183e600b54612710611d7890919063ffffffff16565b0a90506000826127100a905060006118658261121585600954611d1f90919063ffffffff16565b905069152d02c7e14af680000081111561188757600095505050505050610bd9565b6009819055600c5460408051838152602081019290925280517f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215119281900390910190a160019550505050505090565b600a81565b6005546001600160a01b031681565b600b5481565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119765780601f1061194b57610100808354040283529160200191611976565b820191906000526020600020905b81548152906001019060200180831161195957829003601f168201915b505050505081565b6004546001600160a01b031681565b6001546001600160a01b031633146119de576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f2c5d53cd16ceaf62d39256419d59e80a42575bfc21eab954015ca61b42dbe4619181900360200190a150565b60085481565b600754600090610bd6906305f5e100611cd6565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b601481565b60156020526000908152604090205460ff1681565b6305f5e10081565b6001546001600160a01b03163314611aea576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b8051611afd9060009060208401906128d2565b5050565b60065481565b6001546001600160a01b03163314611b58576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6002546001600160a01b031615611bb6576040805162461bcd60e51b815260206004820152601860248201527f585649583a206d696e74657220616c7265616479207365740000000000000000604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611c29576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6011544211611c695760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b611c7584848484612256565b600d849055600e839055600f829055601081905560408051858152602081018590528082018490526060810183905290517f6db95cd2b7f6ef4c4a75be48a0eddff5d137e8bc80405915950e2f20df154a7a9181900360800190a150505050565b6000611d1883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061247d565b9392505050565b600082611d2e57506000610a2c565b82820282848281611d3b57fe5b0414611d185760405162461bcd60e51b8152600401808060200182810382526021815260200180612aa46021913960400191505060405180910390fd5b600082820183811015611d18576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038316611e175760405162461bcd60e51b8152600401808060200182810382526023815260200180612a816023913960400191505060405180910390fd5b6001600160a01b038216611e5c5760405162461bcd60e51b81526004018080602001828103825260218152602001806129976021913960400191505060405180910390fd5b6001600160a01b03808416600081815260136020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60008184841115611f4d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f12578181015183820152602001611efa565b50505050905090810190601f168015611f3f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038316611f9a5760405162461bcd60e51b8152600401808060200182810382526024815260200180612ac56024913960400191505060405180910390fd5b6001600160a01b038216611fdf5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b346022913960400191505060405180910390fd5b600080600080611fed6124e2565b929650909450925090508460006120048686611d78565b9050801561202e57600061201e6127106112158a85611d1f565b905061202a8382611d78565b9250505b86600061203b8686611d78565b905080156120655760006120556127106112158c85611d1f565b9050612061838261235e565b9250505b61206f8b85612580565b6120798a836126ad565b896001600160a01b03168b6001600160a01b0316600080516020612ae9833981519152846040518082815260200191505060405180910390a360006120be8887611d78565b905060006120d26127106112158d85611d1f565b9050801561213f576005546120f0906001600160a01b0316826126ad565b600560009054906101000a90046001600160a01b03166001600160a01b03168d6001600160a01b0316600080516020612ae9833981519152836040518082815260200191505060405180910390a35b60006121558261214f898861235e565b9061235e565b905080156121985760006001600160a01b03168e6001600160a01b0316600080516020612ae9833981519152836040518082815260200191505060405180910390a35b6121a06127ff565b5050505050505050505050505050565b6001600160a01b03821661220b576040805162461bcd60e51b815260206004820152601e60248201527f585649583a206d696e7420746f20746865207a65726f20616464726573730000604482015290519081900360640190fd5b8061221557611afd565b61221f82826126ad565b6040805182815290516001600160a01b03841691600091600080516020612ae98339815191529181900360200190a3611afd6127ff565b6101f48411156122975760405162461bcd60e51b81526004018080602001828103825260298152602001806129b86029913960400191505060405180910390fd5b60148311156122d75760405162461bcd60e51b81526004018080602001828103825260298152602001806129e16029913960400191505060405180910390fd5b6101f48211156123185760405162461bcd60e51b815260040180806020018281038252602b815260200180612a0a602b913960400191505060405180910390fd5b60148111156123585760405162461bcd60e51b815260040180806020018281038252602b815260200180612b09602b913960400191505060405180910390fd5b50505050565b6000611d1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ebe565b6001600160a01b0382166123fb576040805162461bcd60e51b815260206004820181905260248201527f585649583a206275726e2066726f6d20746865207a65726f2061646472657373604482015290519081900360640190fd5b8061240557611afd565b61240f8282612580565b6040805182815290516000916001600160a01b03851691600080516020612ae98339815191529181900360200190a3611afd6127ff565b600a546000906124609061245a4282611cd6565b90611d1f565b9050612477600a5482611d7890919063ffffffff16565b600c5550565b600081836124cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f12578181015183820152602001611efa565b5060008385816124d857fe5b0495945050505050565b600d54600e54600f546010546000938493849384936124ff612950565b5033600090815260146020908152604091829020825160a081018452815460ff1615801582526001830154938201939093526002820154938101939093526003810154606084015260040154608083015261257157806020015194508060400151935080606001519250806080015191505b50929791965094509092509050565b8061258a57611afd565b6001600160a01b03821660009081526015602052604090205460ff16156126295760006125bb826305f5e100611d1f565b90506125fa81604051806060016040528060288152602001612b9a602891396001600160a01b0386166000908152601260205260409020549190611ebe565b6001600160a01b038416600090815260126020526040902055600754612620908261235e565b60075550611afd565b600061264060095483611d1f90919063ffffffff16565b905061267f81604051806060016040528060288152602001612b9a602891396001600160a01b0386166000908152601260205260409020549190611ebe565b6001600160a01b0384166000908152601260205260409020556006546126a5908261235e565b600655505050565b806126b7576127a5565b6001600160a01b03821660009081526015602052604090205460ff161561273d5760006126e8826305f5e100611d1f565b6001600160a01b03841660009081526012602052604090205490915061270e9082611d78565b6001600160a01b0384166000908152601260205260409020556007546127349082611d78565b600755506127a5565b600061275460095483611d1f90919063ffffffff16565b6001600160a01b03841660009081526012602052604090205490915061277a9082611d78565b6001600160a01b0384166000908152601260205260409020556006546127a09082611d78565b600655505b6008546127b0610bbb565b1115611afd576040805162461bcd60e51b8152602060048201526019602482015278161592560e881b585e081cdd5c1c1b1e48195e18d959591959603a1b604482015290519081900360640190fd5b600354612814906001600160a01b03166128cc565b156128ca5760035460408051631a423fa360e31b815290517f29cc6e043f6a8ee5c6495fc77b357c6291691b06b85c30e4b48a3fcebb3e3a7f926001600160a01b03169163d211fd18916004808301926020929190829003018186803b15801561287d57600080fd5b505afa158015612891573d6000803e3d6000fd5b505050506040513d60208110156128a757600080fd5b50516128b1610bbb565b6040805192835260208301919091528051918290030190a15b565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291357805160ff1916838001178555612940565b82800160010185558215612940579182015b82811115612940578251825591602001919060010190612925565b5061294c929150612981565b5090565b6040518060a00160405280600015158152602001600081526020016000815260200160008152602001600081525090565b5b8082111561294c576000815560010161298256fe585649583a20617070726f766520746f20746865207a65726f2061646472657373585649583a2073656e6465724275726e4261736973506f696e74732065786365656473206c696d6974585649583a2073656e64657246756e644261736973506f696e74732065786365656473206c696d6974585649583a2072656365697665724275726e4261736973506f696e74732065786365656473206c696d6974585649583a207265626173654261736973506f696e74732065786365656473206c696d6974585649583a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365585649583a20617070726f76652066726f6d20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77585649583a207472616e736665722066726f6d20746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef585649583a20726563656976657246756e644261736973506f696e74732065786365656473206c696d6974585649583a207472616e7366657220746f20746865207a65726f2061646472657373585649583a2068616e646f7665722074696d6520686173206e6f7420706173736564585649583a20726562617365496e74657276616c2065786365656473206c696d6974585649583a207375627472616374696f6e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220dcad92ea8347cb452d1d5c884171b4267b1c908213587526874cc1dcdb3f80e064736f6c634300060c0033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7700000000000000000000000000000000000000000000152d02c7e14af6800000000000000000000000000000000000000000000000002a5a058fc295ed0000000000000000000000000000000000000000000000000000000000000060335cef

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061038e5760003560e01c806389edeb74116101de578063bc75350f1161010f578063dd62ed3e116100ad578063f87f44b91161007c578063f87f44b9146108e9578063f9b676011461098f578063fca3b5aa14610997578063fffe7e91146109bd5761038e565b8063dd62ed3e14610885578063f27f5a22146108b3578063f47f43fd146108bb578063f59a4708146108e15761038e565b8063c57f9c08116100e9578063c57f9c0814610764578063cfad57a21461084f578063d5abeb0114610875578063d6338ecb1461087d5761038e565b8063bc75350f14610837578063beb0a4161461083f578063bfe10928146108475761038e565b8063a56faa7a1161017c578063a9059cbb11610156578063a9059cbb146107f3578063af14052c1461081f578063b3ed30b614610827578063b60d42881461082f5761038e565b8063a56faa7a146107c6578063a64666b5146107ce578063a6b949f2146107eb5761038e565b806395d89b41116101b857806395d89b41146103935780639dc29fac1461076c5780639e70ecd114610798578063a366b7f0146107a05761038e565b806389edeb74146107395780638b02358f146107415780638e3b231d146107645761038e565b8063295fe56f116102c3578063610df7211161026157806370a082311161023057806370a082311461068957806375619ab5146106af57806376804ef3146106d557806389adbf66146107135761038e565b8063610df721146106695780636236350b146106715780636a70229f146106795780636bf34d60146106815761038e565b8063406953631161029d57806340695363146105ff57806340c10f191461060757806348b5f2bc1461063357806355b6ed5c1461063b5761038e565b8063295fe56f146105d1578063313ce567146105d957806340062af4146105f75761038e565b8063174daa38116103305780631e0466ed1161030a5780631e0466ed146104fc57806323b872dd1461054f5780632585892e1461058557806327e235e3146105ab5761038e565b8063174daa38146104e457806317bedca9146104ec57806318160ddd146104f45761038e565b80630e21750f1161036c5780630e21750f14610474578063126082cf1461049c57806312d43a51146104b6578063153ec22f146104be5761038e565b806306fdde03146103935780630754617214610410578063095ea7b314610434575b600080fd5b61039b6109ec565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610418610a0c565b604080516001600160a01b039092168252519081900360200190f35b6104606004803603604081101561044a57600080fd5b506001600160a01b038135169060200135610a1b565b604080519115158252519081900360200190f35b61049a6004803603602081101561048a57600080fd5b50356001600160a01b0316610a32565b005b6104a4610aa5565b60408051918252519081900360200190f35b610418610aab565b61049a600480360360208110156104d457600080fd5b50356001600160a01b0316610aba565b6104a4610baf565b6104a4610bb5565b6104a4610bbb565b6105226004803603602081101561051257600080fd5b50356001600160a01b0316610bdc565b60408051951515865260208601949094528484019290925260608401526080830152519081900360a00190f35b6104606004803603606081101561056557600080fd5b506001600160a01b03813581169160208101359091169060400135610c0f565b61049a6004803603602081101561059b57600080fd5b50356001600160a01b0316610c86565b6104a4600480360360208110156105c157600080fd5b50356001600160a01b0316610d57565b6104a4610d69565b6105e1610d6f565b6040805160ff9092168252519081900360200190f35b6104a4610d74565b610418610d7a565b6104606004803603604081101561061d57600080fd5b506001600160a01b038135169060200135610d89565b6104a4610de7565b6104a46004803603604081101561065157600080fd5b506001600160a01b0381358116916020013516610e00565b6104a4610e1d565b6104a4610e2b565b6104a4610e31565b6104a4610e38565b6104a46004803603602081101561069f57600080fd5b50356001600160a01b0316610e3e565b61049a600480360360208110156106c557600080fd5b50356001600160a01b0316610eba565b61049a600480360360a08110156106eb57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135610f8b565b61049a6004803603602081101561072957600080fd5b50356001600160a01b0316611100565b6104a46112f5565b61049a6004803603604081101561075757600080fd5b50803590602001356112fb565b6104a46114af565b6104606004803603604081101561078257600080fd5b506001600160a01b0381351690602001356114b5565b6104a4611513565b61049a600480360360208110156107b657600080fd5b50356001600160a01b0316611519565b6104a46116c6565b610460600480360360208110156107e457600080fd5b50356116cc565b6104a461178d565b6104606004803603604081101561080957600080fd5b506001600160a01b038135169060200135611793565b6104606117b2565b6104a46118d6565b6104186118db565b6104a46118ea565b61039b6118f0565b61041861197e565b61049a6004803603602081101561086557600080fd5b50356001600160a01b031661198d565b6104a4611a32565b6104a4611a38565b6104a46004803603604081101561089b57600080fd5b506001600160a01b0381358116916020013516611a4c565b6104a4611a77565b610460600480360360208110156108d157600080fd5b50356001600160a01b0316611a7c565b6104a4611a91565b61049a600480360360208110156108ff57600080fd5b81019060208101813564010000000081111561091a57600080fd5b82018360208201111561092c57600080fd5b8035906020019184600183028401116401000000008311171561094e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a99945050505050565b6104a4611b01565b61049a600480360360208110156109ad57600080fd5b50356001600160a01b0316611b07565b61049a600480360360808110156109d357600080fd5b5080359060208101359060408101359060600135611bd8565b604051806040016040528060048152602001630b0ac92b60e31b81525081565b6002546001600160a01b031681565b6000610a28338484611dd2565b5060015b92915050565b6001546001600160a01b03163314610a83576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61271081565b6001546001600160a01b031681565b6001546001600160a01b03163314610b0b576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6011544211610b4b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b6001600160a01b038116600081815260146020526040808220805460ff19168155600181018390556002810183905560038101839055600401829055517f8f12cd94a95b51f0ac9bd32446333c1fbdd607ec0d4c6dd7ea6ce7d1530291989190a250565b600d5481565b60115481565b6000610bd6610bc8611a38565b610bd0610de7565b90611d78565b90505b90565b6014602052600090815260409020805460018201546002830154600384015460049094015460ff90931693919290919085565b600080610c5a83604051806060016040528060278152602001612a5a602791396001600160a01b03881660009081526013602090815260408083203384529091529020549190611ebe565b9050610c67853383611dd2565b610c72858585611f55565b610c7a6117b2565b50600195945050505050565b6001546001600160a01b03163314610cd7576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6003546001600160a01b031615610d35576040805162461bcd60e51b815260206004820152601760248201527f585649583a20666c6f6f7220616c726561647920736574000000000000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60126020526000908152604090205481565b61070881565b601281565b60095481565b6003546001600160a01b031681565b6002546000906001600160a01b03163314610ddd576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b610a2883836121b0565b6000610bd6600954600654611cd690919063ffffffff16565b601360209081526000928352604080842090915290825290205481565b69152d02c7e14af680000081565b600e5481565b62093a8081565b600c5481565b6001600160a01b03811660009081526015602052604081205460ff1615610e8d576001600160a01b038216600090815260126020526040902054610e86906305f5e100611cd6565b9050610eb5565b6009546001600160a01b038316600090815260126020526040902054610eb291611cd6565b90505b919050565b6001546001600160a01b03163314610f0b576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6004546001600160a01b031615610f69576040805162461bcd60e51b815260206004820152601d60248201527f585649583a206469737472696275746f7220616c726561647920736574000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610fdc576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6001600160a01b038516611037576040805162461bcd60e51b815260206004820152601d60248201527f585649583a2063616e6e6f7420736574207a65726f2061646472657373000000604482015290519081900360640190fd5b61104384848484612256565b6040805160a08101825260018082526020808301888152838501888152606080860189815260808088018a81526001600160a01b038f166000818152601489528b902099518a5460ff1916901515178a559551978901979097559251600288015551600387015593516004909501949094558451898152918201889052818501879052918101859052925190927ffd601d76c98906b47d0588bdb0e6bf873309af377dae629f95fc578317749e9b92908290030190a25050505050565b6001546001600160a01b03163314611151576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6001600160a01b03811660009081526015602052604090205460ff16156111bf576040805162461bcd60e51b815260206004820152601f60248201527f585649583a206163636f756e7420697320616c72656164792061207361666500604482015290519081900360640190fd5b6001600160a01b0381166000908152601560209081526040808320805460ff1916600117905560129091529020546006546111fa908261235e565b60065560095460009061121b90611215846305f5e100611d1f565b90611cd6565b6001600160a01b03841660009081526012602052604090208190556007549091506112469082611d78565b6007557f05436321947293619db7c7a7c30a8581bbf251c170866a622914c543fad4fde68361127481610e3e565b604080516001600160a01b03909316835260208301919091528051918290030190a150506008546112a3610bbb565b11156112f2576040805162461bcd60e51b8152602060048201526019602482015278161592560e881b585e081cdd5c1c1b1e48195e18d959591959603a1b604482015290519081900360640190fd5b50565b600a5481565b6001546001600160a01b0316331461134c576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b601154421161138c5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b6107088210156113e3576040805162461bcd60e51b815260206004820181905260248201527f585649583a20726562617365496e74657276616c2062656c6f77206c696d6974604482015290519081900360640190fd5b62093a808211156114255760405162461bcd60e51b8152600401808060200182810382526022815260200180612b786022913960400191505060405180910390fd5b6101f48111156114665760405162461bcd60e51b8152600401808060200182810382526025815260200180612a356025913960400191505060405180910390fd5b600a829055600b819055604080518381526020810183905281517f8a6115eb53f842f9d64324b20fdd329b455169a31774ffc34d658bec837a90cd929181900390910190a15050565b6101f481565b6003546000906001600160a01b03163314611509576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b610a2883836123a0565b60105481565b6001546001600160a01b0316331461156a576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b60115442116115aa5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b6001600160a01b03811660009081526015602052604090205460ff16611617576040805162461bcd60e51b815260206004820152601b60248201527f585649583a206163636f756e74206973206e6f74206120736166650000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152601560209081526040808320805460ff19169055601290915290205460075461164f908261235e565b60075560095460009061166d906305f5e10090611215908590611d1f565b6001600160a01b03841660009081526012602052604090208190556006549091506116989082611d78565b6006557f92d4f663a040f2629d4994604f1ffbe6733622e8c5f11910ec623e4c8746bdaa8361127481610e3e565b60075481565b6004546000906001600160a01b03163314611720576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b8161172d57506000610eb5565b61173733836123a0565b600854611744908361235e565b6008819055604080518481526020810192909252805133927f330cb712f04961497080da66a1f756f88bc9a4846dce611f510ab4108c32360192908290030190a2506001919050565b600f5481565b60006117a0338484611f55565b6117a86117b2565b5060019392505050565b6000600c544210156117c657506000610bd9565b60006117dd600c544261235e90919063ffffffff16565b905060006117fb6001610bd0600a5485611cd690919063ffffffff16565b9050600a81111561180a5750600a5b611812612446565b600b5461182457600092505050610bd9565b60008161183e600b54612710611d7890919063ffffffff16565b0a90506000826127100a905060006118658261121585600954611d1f90919063ffffffff16565b905069152d02c7e14af680000081111561188757600095505050505050610bd9565b6009819055600c5460408051838152602081019290925280517f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215119281900390910190a160019550505050505090565b600a81565b6005546001600160a01b031681565b600b5481565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119765780601f1061194b57610100808354040283529160200191611976565b820191906000526020600020905b81548152906001019060200180831161195957829003601f168201915b505050505081565b6004546001600160a01b031681565b6001546001600160a01b031633146119de576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f2c5d53cd16ceaf62d39256419d59e80a42575bfc21eab954015ca61b42dbe4619181900360200190a150565b60085481565b600754600090610bd6906305f5e100611cd6565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b601481565b60156020526000908152604090205460ff1681565b6305f5e10081565b6001546001600160a01b03163314611aea576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b8051611afd9060009060208401906128d2565b5050565b60065481565b6001546001600160a01b03163314611b58576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6002546001600160a01b031615611bb6576040805162461bcd60e51b815260206004820152601860248201527f585649583a206d696e74657220616c7265616479207365740000000000000000604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611c29576040805162461bcd60e51b815260206004820152600f60248201526e2c2b24ac1d103337b93134b23232b760891b604482015290519081900360640190fd5b6011544211611c695760405162461bcd60e51b8152600401808060200182810382526022815260200180612b566022913960400191505060405180910390fd5b611c7584848484612256565b600d849055600e839055600f829055601081905560408051858152602081018590528082018490526060810183905290517f6db95cd2b7f6ef4c4a75be48a0eddff5d137e8bc80405915950e2f20df154a7a9181900360800190a150505050565b6000611d1883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061247d565b9392505050565b600082611d2e57506000610a2c565b82820282848281611d3b57fe5b0414611d185760405162461bcd60e51b8152600401808060200182810382526021815260200180612aa46021913960400191505060405180910390fd5b600082820183811015611d18576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038316611e175760405162461bcd60e51b8152600401808060200182810382526023815260200180612a816023913960400191505060405180910390fd5b6001600160a01b038216611e5c5760405162461bcd60e51b81526004018080602001828103825260218152602001806129976021913960400191505060405180910390fd5b6001600160a01b03808416600081815260136020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60008184841115611f4d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f12578181015183820152602001611efa565b50505050905090810190601f168015611f3f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038316611f9a5760405162461bcd60e51b8152600401808060200182810382526024815260200180612ac56024913960400191505060405180910390fd5b6001600160a01b038216611fdf5760405162461bcd60e51b8152600401808060200182810382526022815260200180612b346022913960400191505060405180910390fd5b600080600080611fed6124e2565b929650909450925090508460006120048686611d78565b9050801561202e57600061201e6127106112158a85611d1f565b905061202a8382611d78565b9250505b86600061203b8686611d78565b905080156120655760006120556127106112158c85611d1f565b9050612061838261235e565b9250505b61206f8b85612580565b6120798a836126ad565b896001600160a01b03168b6001600160a01b0316600080516020612ae9833981519152846040518082815260200191505060405180910390a360006120be8887611d78565b905060006120d26127106112158d85611d1f565b9050801561213f576005546120f0906001600160a01b0316826126ad565b600560009054906101000a90046001600160a01b03166001600160a01b03168d6001600160a01b0316600080516020612ae9833981519152836040518082815260200191505060405180910390a35b60006121558261214f898861235e565b9061235e565b905080156121985760006001600160a01b03168e6001600160a01b0316600080516020612ae9833981519152836040518082815260200191505060405180910390a35b6121a06127ff565b5050505050505050505050505050565b6001600160a01b03821661220b576040805162461bcd60e51b815260206004820152601e60248201527f585649583a206d696e7420746f20746865207a65726f20616464726573730000604482015290519081900360640190fd5b8061221557611afd565b61221f82826126ad565b6040805182815290516001600160a01b03841691600091600080516020612ae98339815191529181900360200190a3611afd6127ff565b6101f48411156122975760405162461bcd60e51b81526004018080602001828103825260298152602001806129b86029913960400191505060405180910390fd5b60148311156122d75760405162461bcd60e51b81526004018080602001828103825260298152602001806129e16029913960400191505060405180910390fd5b6101f48211156123185760405162461bcd60e51b815260040180806020018281038252602b815260200180612a0a602b913960400191505060405180910390fd5b60148111156123585760405162461bcd60e51b815260040180806020018281038252602b815260200180612b09602b913960400191505060405180910390fd5b50505050565b6000611d1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ebe565b6001600160a01b0382166123fb576040805162461bcd60e51b815260206004820181905260248201527f585649583a206275726e2066726f6d20746865207a65726f2061646472657373604482015290519081900360640190fd5b8061240557611afd565b61240f8282612580565b6040805182815290516000916001600160a01b03851691600080516020612ae98339815191529181900360200190a3611afd6127ff565b600a546000906124609061245a4282611cd6565b90611d1f565b9050612477600a5482611d7890919063ffffffff16565b600c5550565b600081836124cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f12578181015183820152602001611efa565b5060008385816124d857fe5b0495945050505050565b600d54600e54600f546010546000938493849384936124ff612950565b5033600090815260146020908152604091829020825160a081018452815460ff1615801582526001830154938201939093526002820154938101939093526003810154606084015260040154608083015261257157806020015194508060400151935080606001519250806080015191505b50929791965094509092509050565b8061258a57611afd565b6001600160a01b03821660009081526015602052604090205460ff16156126295760006125bb826305f5e100611d1f565b90506125fa81604051806060016040528060288152602001612b9a602891396001600160a01b0386166000908152601260205260409020549190611ebe565b6001600160a01b038416600090815260126020526040902055600754612620908261235e565b60075550611afd565b600061264060095483611d1f90919063ffffffff16565b905061267f81604051806060016040528060288152602001612b9a602891396001600160a01b0386166000908152601260205260409020549190611ebe565b6001600160a01b0384166000908152601260205260409020556006546126a5908261235e565b600655505050565b806126b7576127a5565b6001600160a01b03821660009081526015602052604090205460ff161561273d5760006126e8826305f5e100611d1f565b6001600160a01b03841660009081526012602052604090205490915061270e9082611d78565b6001600160a01b0384166000908152601260205260409020556007546127349082611d78565b600755506127a5565b600061275460095483611d1f90919063ffffffff16565b6001600160a01b03841660009081526012602052604090205490915061277a9082611d78565b6001600160a01b0384166000908152601260205260409020556006546127a09082611d78565b600655505b6008546127b0610bbb565b1115611afd576040805162461bcd60e51b8152602060048201526019602482015278161592560e881b585e081cdd5c1c1b1e48195e18d959591959603a1b604482015290519081900360640190fd5b600354612814906001600160a01b03166128cc565b156128ca5760035460408051631a423fa360e31b815290517f29cc6e043f6a8ee5c6495fc77b357c6291691b06b85c30e4b48a3fcebb3e3a7f926001600160a01b03169163d211fd18916004808301926020929190829003018186803b15801561287d57600080fd5b505afa158015612891573d6000803e3d6000fd5b505050506040513d60208110156128a757600080fd5b50516128b1610bbb565b6040805192835260208301919091528051918290030190a15b565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291357805160ff1916838001178555612940565b82800160010185558215612940579182015b82811115612940578251825591602001919060010190612925565b5061294c929150612981565b5090565b6040518060a00160405280600015158152602001600081526020016000815260200160008152602001600081525090565b5b8082111561294c576000815560010161298256fe585649583a20617070726f766520746f20746865207a65726f2061646472657373585649583a2073656e6465724275726e4261736973506f696e74732065786365656473206c696d6974585649583a2073656e64657246756e644261736973506f696e74732065786365656473206c696d6974585649583a2072656365697665724275726e4261736973506f696e74732065786365656473206c696d6974585649583a207265626173654261736973506f696e74732065786365656473206c696d6974585649583a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365585649583a20617070726f76652066726f6d20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77585649583a207472616e736665722066726f6d20746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef585649583a20726563656976657246756e644261736973506f696e74732065786365656473206c696d6974585649583a207472616e7366657220746f20746865207a65726f2061646472657373585649583a2068616e646f7665722074696d6520686173206e6f7420706173736564585649583a20726562617365496e74657276616c2065786365656473206c696d6974585649583a207375627472616374696f6e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220dcad92ea8347cb452d1d5c884171b4267b1c908213587526874cc1dcdb3f80e064736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000152d02c7e14af6800000000000000000000000000000000000000000000000002a5a058fc295ed0000000000000000000000000000000000000000000000000000000000000060335cef

-----Decoded View---------------
Arg [0] : _initialSupply (uint256): 100000000000000000000000
Arg [1] : _maxSupply (uint256): 200000000000000000000000
Arg [2] : _govHandoverTime (uint256): 1613978863

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000152d02c7e14af6800000
Arg [1] : 000000000000000000000000000000000000000000002a5a058fc295ed000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000060335cef


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.