ETH Price: $2,174.23 (+5.23%)

Token

CyberConnect (CYBER)
 

Overview

Max Total Supply

100,000,000 CYBER

Holders

6,451 (0.00%)
Created with Highcharts 10.2.1

Market

Price

$1.36 @ 0.000626 ETH (+3.32%)

Onchain Market Cap

$136,000,000.00

Circulating Supply Market Cap

$50,267,210.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
30.341575529199987037 CYBER

Value
$41.26 ( ~0.0189767953867447 Eth) [0.0000%]
0x7fcabc037dd9551a3d44941546b0f3afe1485364
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Cyber is the L2 for social. By expanding web3's focus beyond finance, Cyber enables developers to create dApps that transform how people connect, create, monetize, and share value.

Market

Volume (24H):$17,311,605.00
Market Capitalization:$50,267,210.00
Circulating Supply:36,874,767.00 CYBER
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
HTX
CYBER-USDT$1.36
0.0006261 Eth
$3,528,614.00
2,642,695.250 CYBER
20.7599%
2
Binance
CYBER-USDT$1.36
0.0006215 Eth
$2,951,662.00
2,239,600.570 CYBER
17.5934%
3
Hotcoin
CYBER-USDT$1.36
0.0006241 Eth
$1,962,781.00
1,443,479.470 CYBER
11.3394%
4
MEXC
CYBER-USDT$1.36
0.0006241 Eth
$1,794,897.00
1,320,013.320 CYBER
10.3695%
5
GroveX
CYBER-USDT$1.36
0.0006244 Eth
$801,463.00
588,087.025 CYBER
4.6198%
6
Hibt
CYBER-USDT$1.36
0.0006245 Eth
$680,645.00
515,928.630 CYBER
4.0529%
7
Trubit
CYBER-USDT$1.36
0.0006240 Eth
$672,764.00
503,571.880 CYBER
3.9559%
8
Ourbit
CYBER-USDT$1.36
0.0006241 Eth
$416,111.00
315,478.290 CYBER
2.4783%
9
BitMart
CYBER-USDT$1.36
0.0006235 Eth
$364,925.00
268,635.320 CYBER
2.1103%
10
LBank
CYBER-USDT$1.35
0.0006216 Eth
$322,342.00
238,129.290 CYBER
1.8706%
11
Binance
CYBER-TRY$1.36
0.0006244 Eth
$293,575.00
221,380.890 CYBER
1.7391%
12
OrangeX
CYBER-USDT$1.36
0.0006232 Eth
$279,045.00
211,132.290 CYBER
1.6586%
13
Bybit
CYBER-USDT$1.36
0.0006239 Eth
$263,107.00
199,295.810 CYBER
1.5656%
14
CoinCatch
CYBER-USDT$1.36
0.0006247 Eth
$219,458.00
164,915.850 CYBER
1.2955%
15
BVOX
CYBER-USDT$1.36
0.0006243 Eth
$210,643.00
158,520.790 CYBER
1.2453%
16
Toobit
CYBER-USDT$1.36
0.0006231 Eth
$167,603.00
126,821.130 CYBER
0.9963%
17
Byte Exchange
CYBER-USDT$1.36
0.0006230 Eth
$141,467.00
104,239.840 CYBER
0.8189%
18
CoinTR
CYBER-USDT$1.35
0.0006212 Eth
$137,433.00
103,238.080 CYBER
0.8110%
19
Bitunix
CYBER-USDT$1.36
0.0006231 Eth
$136,548.00
100,520.430 CYBER
0.7896%
20
CoinTR
CYBER-TRY$1.37
0.0006274 Eth
$135,585.00
101,549.370 CYBER
0.7977%
21
CoinW
CYBER-USDT$1.36
0.0006239 Eth
$130,121.00
95,735.900 CYBER
0.7521%
22
Tapbit
CYBER-USDT$1.36
0.0006235 Eth
$124,292.00
93,235.620 CYBER
0.7324%
23
Pionex
CYBER-USDT$1.36
0.0006230 Eth
$115,246.00
87,357.470 CYBER
0.6862%
24
Bitbank
CYBER-JPY$1.36
0.0006258 Eth
$99,842.00
73,179.547 CYBER
0.5749%
25
Gate.io
CYBER-USDT$1.36
0.0006244 Eth
$98,340.00
74,559.008 CYBER
0.5857%
26
Bithumb
CYBER-KRW$1.40
0.0006438 Eth
$98,088.00
69,987.534 CYBER
0.5498%
27
Nonkyc.io
CYBER-USDT$1.36
0.0006253 Eth
$92,986.00
70,058.724 CYBER
0.5504%
28
WhiteBIT
CYBER-USDT$1.36
0.0006250 Eth
$82,557.00
60,515.730 CYBER
0.4754%
29
bitcastle
CYBER-USDT$1.36
0.0006235 Eth
$70,359.00
53,270.560 CYBER
0.4185%
30
Byte Exchange
CYBER-BTC$1.37
0.0006271 Eth
$68,408.00
50,110.570 CYBER
0.3936%
31
BingX
CYBER-USDT$1.36
0.0006235 Eth
$59,488.00
44,935.796 CYBER
0.3530%
32
Upbit
CYBER-BTC$1.35
0.0006206 Eth
$52,960.00
39,170.888 CYBER
0.3077%
33
Upbit Indonesia
CYBER-BTC$1.35
0.0006204 Eth
$49,710.00
36,710.859 CYBER
0.2884%
34
DigiFinex
CYBER-USDT$1.36
0.0006235 Eth
$48,507.00
35,711.780 CYBER
0.2805%
35
Binance
CYBER-BTC$1.36
0.0006238 Eth
$45,278.00
33,149.980 CYBER
0.2604%
36
BloFin
CYBER-USDT$1.36
0.0006239 Eth
$41,787.00
31,449.050 CYBER
0.2471%
37
QMall
CYBER-USDT$1.36
0.0006239 Eth
$34,497.00
26,043.254 CYBER
0.2046%
38
Bitvavo
CYBER-EUR$1.35
0.0006213 Eth
$34,003.00
25,106.624 CYBER
0.1972%
39
PointPay
CYBER-USDT$1.36
0.0006244 Eth
$33,042.00
25,037.613 CYBER
0.1967%
40
Bittime
CYBER-IDR$1.37
0.0006263 Eth
$30,187.00
22,545.682 CYBER
0.1771%
41
Phemex
CYBER-USDT$1.36
0.0006226 Eth
$29,725.00
21,913.630 CYBER
0.1721%
42
XT.COM
CYBER-USDT$1.36
0.0006239 Eth
$29,176.00
22,118.680 CYBER
0.1738%
43
Uniswap V3 (Optimism)
0X0B2C639C533813F4AA9D7837CAF62653D097FF85-0X14778860E937F509E651192A90589DE711FB88A9$1.36
0.0006249 Eth
$26,473.00
25,594.389 0X0B2C639C533813F4AA9D7837CAF62653D097FF85
0.2011%
44
Uniswap V3 (Ethereum)
0X14778860E937F509E651192A90589DE711FB88A9-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$1.36
0.0006225 Eth
$26,291.00
19,949.697 0X14778860E937F509E651192A90589DE711FB88A9
0.1567%
45
BTSE
CYBER-USDT$1.36
0.0006230 Eth
$26,275.00
19,340.252 CYBER
0.1519%
46
PancakeSwap V3 (BSC)
0X14778860E937F509E651192A90589DE711FB88A9-0X55D398326F99059FF775485246999027B3197955$1.38
0.0006333 Eth
$24,710.00
18,634.110 0X14778860E937F509E651192A90589DE711FB88A9
0.1464%
47
Binance
CYBER-FDUSD$1.36
0.0006248 Eth
$22,132.00
16,660.450 CYBER
0.1309%
48
Binance
CYBER-ETH$1.37
0.0006266 Eth
$18,359.81
13,382.940 CYBER
0.1051%
49
Bitget
CYBER-USDT$1.38
0.0006318 Eth
$12,880.31
9,687.280 CYBER
0.0761%
50
KuCoin
CYBER-USDT$1.36
0.0006226 Eth
$12,457.49
9,184.890 CYBER
0.0722%
51
LATOKEN
CYBER-USDT$1.36
0.0006248 Eth
$9,468.40
6,956.283 CYBER
0.0546%
52
Kraken
CYBER-USD$1.35
0.0006206 Eth
$9,362.86
6,930.319 CYBER
0.0544%
53
Bitrue
CYBER-USDT$1.36
0.0006224 Eth
$6,441.51
4,730.863 CYBER
0.0372%
54
Icrypex
CYBER-USDT$1.34
0.0006171 Eth
$5,144.43
3,825.752 CYBER
0.0301%
55
Bitlo
CYBER-TRY$1.36
0.0006207 Eth
$3,925.99
2,966.418 CYBER
0.0233%
56
CoinEx
CYBER-USDT$1.36
0.0006222 Eth
$3,440.10
2,589.245 CYBER
0.0203%
57
Binance
CYBER-BNB$1.37
0.0006278 Eth
$3,084.27
2,256.010 CYBER
0.0177%
58
Nami.Exchange
CYBER-VNST$1.35
0.0006204 Eth
$1,591.00
1,177.345 CYBER
0.0092%
59
Nami.Exchange
CYBER-USDT$1.36
0.0006245 Eth
$1,561.63
1,147.620 CYBER
0.0090%
60
Vindax
CYBER-USDT$1.36
0.0006217 Eth
$1,393.69
1,028.410 CYBER
0.0081%
61
HonorSwap
0X14778860E937F509E651192A90589DE711FB88A9-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$3.00
0.0013709 Eth
$1,281.54
446.043 0X14778860E937F509E651192A90589DE711FB88A9
0.0035%
62
TokoCrypto
CYBER-USDT$1.36
0.0006232 Eth
$1,153.12
845.994 CYBER
0.0066%
63
Mudrex
CYBER-USDT$1.35
0.0006260 Eth
$942.24
697.941 CYBER
0.0055%
64
Bitkub
CYBER-THB$1.36
0.0006244 Eth
$898.05
659.019 CYBER
0.0052%
65
WEEX
CYBER-USDT$1.36
0.0006219 Eth
$852.12
645.000 CYBER
0.0051%
66
NovaDAX
CYBER-BRL$1.53
0.0007023 Eth
$399.98
260.980 CYBER
0.0021%
67
Kraken
CYBER-EUR$1.33
0.0006092 Eth
$324.91
245.004 CYBER
0.0019%
68
Bit2Me
CYBER-EUR$1.33
0.0006078 Eth
$318.53
240.104 CYBER
0.0019%
69
Korbit
CYBER-KRW$1.40
0.0006418 Eth
$176.71
128.036 CYBER
0.0010%
70
Indodax
CYBER-IDR$1.34
0.0006155 Eth
$135.10
100.763 CYBER
0.0008%
71
Crypto.com Exchange
CYBER-USD$1.35
0.0006209 Eth
$66.47
49.130 CYBER
0.0004%
72
Giottus
CYBER-INR$1.62
0.0007594 Eth
$56.71
35.096 CYBER
0.0003%
73
Mercado Bitcoin
CYBER-BRL$1.33
0.0006106 Eth
$49.18
36.969 CYBER
0.0003%
74
Gate.io
CYBER-TRY$1.35
0.0006201 Eth
$28.63
21.224 CYBER
0.0002%
75
Coinone
CYBER-KRW$1.41
0.0006465 Eth
$25.07
17.799 CYBER
0.0001%
76
PancakeSwap V3 (BSC)
0X14778860E937F509E651192A90589DE711FB88A9-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$1.38
0.0006338 Eth
$3.66
2.683 0X14778860E937F509E651192A90589DE711FB88A9
0.0000%
77
Coinlist
CYBER-USDT$1.36
0.0006239 Eth
$0.0339
0.025 CYBER
0.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
CyberToken

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 17 : CyberToken.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: GPL-3.0-or-later
pragma solidity 0.8.14;
import { Ownable } from "openzeppelin-contracts/contracts/access/Ownable.sol";
import { ERC20Burnable } from "openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import { ERC20Votes } from "openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol";
import { ERC20 } from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol";
import { ERC20Permit } from "openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol";
/**
* @dev The CyberConnect ERC20 token.
* Implements governance functionality with voting and delegation.
* Implements EIP 2612 allowing signed approvals.
* Support token holder to burn token or burnFrom others by allowance.
* Only the owner address has permission to mint.
*/
contract CyberToken is ERC20Burnable, ERC20Votes, Ownable {
/*//////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////*/
constructor() ERC20("CyberConnect", "CYBER") ERC20Permit("CyberConnect") {}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 17 : Ownable.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
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 17 : ERC20Burnable.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
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)
pragma solidity ^0.8.0;
import "../ERC20.sol";
import "../../../utils/Context.sol";
/**
* @dev Extension of {ERC20} that allows token holders to destroy both their own
* tokens and those that they have an allowance for, in a way that can be
* recognized off-chain (via event analysis).
*/
abstract contract ERC20Burnable is Context, ERC20 {
/**
* @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.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 17 : ERC20Votes.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
// OpenZeppelin Contracts (last updated v4.8.1) (token/ERC20/extensions/ERC20Votes.sol)
pragma solidity ^0.8.0;
import "./draft-ERC20Permit.sol";
import "../../../utils/math/Math.sol";
import "../../../governance/utils/IVotes.sol";
import "../../../utils/math/SafeCast.sol";
import "../../../utils/cryptography/ECDSA.sol";
/**
* @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's,
* and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1.
*
* NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module.
*
* This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either
* by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting
* power can be queried through the public accessors {getVotes} and {getPastVotes}.
*
* By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it
* requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.
*
* _Available since v4.2._
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 17 : ERC20.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
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.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.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead 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}.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 17 : draft-ERC20Permit.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
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/draft-ERC20Permit.sol)
pragma solidity ^0.8.0;
import "./draft-IERC20Permit.sol";
import "../ERC20.sol";
import "../../../utils/cryptography/ECDSA.sol";
import "../../../utils/cryptography/EIP712.sol";
import "../../../utils/Counters.sol";
/**
* @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
*
* Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
* presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't
* need to send a transaction, and thus is not required to hold Ether at all.
*
* _Available since v3.4._
*/
abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 {
using Counters for Counters.Counter;
mapping(address => Counters.Counter) private _nonces;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 17 : Context.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
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 17 : 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
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
enum Rounding {
Down, // Toward negative infinity
Up, // Toward infinity
Zero // Toward zero
}
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a > b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 17 : IVotes.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
// OpenZeppelin Contracts (last updated v4.5.0) (governance/utils/IVotes.sol)
pragma solidity ^0.8.0;
/**
* @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.
*
* _Available since v4.5._
*/
interface IVotes {
/**
* @dev Emitted when an account changes their delegate.
*/
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);
/**
* @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.
*/
event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);
/**
* @dev Returns the current amount of votes that `account` has.
*/
function getVotes(address account) external view returns (uint256);
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 17 : SafeCast.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
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)
// This file was procedurally generated from scripts/generate/templates/SafeCast.js.
pragma solidity ^0.8.0;
/**
* @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow
* checks.
*
* Downcasting from uint256/int256 in Solidity does not revert on overflow. This can
* easily result in undesired exploitation or bugs, since developers usually
* assume that overflows raise errors. `SafeCast` restores this intuition by
* reverting the transaction when such 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.
*
* Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing
* all math on `uint256` and `int256` and then downcasting.
*/
library SafeCast {
/**
* @dev Returns the downcasted uint248 from uint256, reverting on
* overflow (when the input is greater than largest uint248).
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 17 : ECDSA.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
// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/ECDSA.sol)
pragma solidity ^0.8.0;
import "../Strings.sol";
/**
* @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
*
* These functions can be used to verify that a message was signed by the holder
* of the private keys of a given address.
*/
library ECDSA {
enum RecoverError {
NoError,
InvalidSignature,
InvalidSignatureLength,
InvalidSignatureS,
InvalidSignatureV // Deprecated in v4.8
}
function _throwError(RecoverError error) private pure {
if (error == RecoverError.NoError) {
return; // no error: do nothing
} else if (error == RecoverError.InvalidSignature) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 17 : 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
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 17 : IERC20Metadata.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
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 17 : draft-IERC20Permit.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
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
*
* Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
* need to send a transaction, and thus is not required to hold Ether at all.
*/
interface IERC20Permit {
/**
* @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
* given ``owner``'s signed approval.
*
* IMPORTANT: The same issues {IERC20-approve} has related to transaction
* ordering also apply here.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `spender` cannot be the zero address.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 17 : EIP712.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
// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/EIP712.sol)
pragma solidity ^0.8.0;
import "./ECDSA.sol";
/**
* @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.
*
* The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,
* thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding
* they need in their contracts using a combination of `abi.encode` and `keccak256`.
*
* This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding
* scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA
* ({_hashTypedDataV4}).
*
* The implementation of the domain separator was designed to be as efficient as possible while still properly updating
* the chain id to protect against replay attacks on an eventual fork of the chain.
*
* NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method
* https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].
*
* _Available since v3.4._
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 17 : Counters.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
// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)
pragma solidity ^0.8.0;
/**
* @title Counters
* @author Matt Condon (@shrugs)
* @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
* of elements in a mapping, issuing ERC721 ids, or counting request ids.
*
* Include with `using Counters for Counters.Counter;`
*/
library Counters {
struct Counter {
// This variable should never be directly accessed by users of the library: interactions must be restricted to
// the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
// this feature: see https://github.com/ethereum/solidity/issues/4637
uint256 _value; // default: 0
}
function current(Counter storage counter) internal view returns (uint256) {
return counter._value;
}
function increment(Counter storage counter) internal {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 17 : Strings.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
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
import "./math/Math.sol";
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
unchecked {
uint256 length = Math.log10(value) + 1;
string memory buffer = new string(length);
uint256 ptr;
/// @solidity memory-safe-assembly
assembly {
ptr := add(buffer, add(32, length))
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
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
{
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"solmate/=lib/solmate/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

API
[{"inputs":[],"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","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":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101406040523480156200001257600080fd5b506040518060400160405280600c81526020016b10de58995c90dbdb9b9958dd60a21b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600c81526020016b10de58995c90dbdb9b9958dd60a21b8152506040518060400160405280600581526020016421aca122a960d91b8152508160039080519060200190620000ae929190620001bb565b508051620000c4906004906020840190620001bb565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506200016390503362000169565b6200029d565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001c99062000261565b90600052602060002090601f016020900481019282620001ed576000855562000238565b82601f106200020857805160ff191683800117855562000238565b8280016001018555821562000238579182015b82811115620002385782518255916020019190600101906200021b565b50620002469291506200024a565b5090565b5b808211156200024657600081556001016200024b565b600181811c908216806200027657607f821691505b6020821081036200029757634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051612067620002ed6000396000610f7e01526000610fcd01526000610fa801526000610f0101526000610f2b01526000610f5501526120676000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf146103e2578063dd62ed3e146103f5578063f1127ed814610408578063f2fde38b1461044557600080fd5b8063a457c2d7146103a9578063a9059cbb146103bc578063c3cda520146103cf57600080fd5b80638da5cb5b116100d35780638da5cb5b1461036a5780638e539e8c1461037b57806395d89b411461038e5780639ab24eb01461039657600080fd5b8063715018a61461033c57806379cc6790146103445780637ecebe001461035757600080fd5b80633a46b1a811610166578063587cde1e11610140578063587cde1e146102945780635c19a95c146102d85780636fcfff45146102eb57806370a082311461031357600080fd5b80633a46b1a81461025957806340c10f191461026c57806342966c681461028157600080fd5b806323b872dd116101a257806323b872dd1461021c578063313ce5671461022f5780633644e5151461023e578063395093511461024657600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d1610458565b6040516101de9190611d03565b60405180910390f35b6101fa6101f5366004611d74565b6104ea565b60405190151581526020016101de565b6002545b6040519081526020016101de565b6101fa61022a366004611d9e565b610502565b604051601281526020016101de565b61020e610526565b6101fa610254366004611d74565b610535565b61020e610267366004611d74565b610557565b61027f61027a366004611d74565b6105d6565b005b61027f61028f366004611dda565b6105ec565b6102c06102a2366004611df3565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101de565b61027f6102e6366004611df3565b6105f9565b6102fe6102f9366004611df3565b610603565b60405163ffffffff90911681526020016101de565b61020e610321366004611df3565b6001600160a01b031660009081526020819052604090205490565b61027f61062b565b61027f610352366004611d74565b61063f565b61020e610365366004611df3565b610654565b600a546001600160a01b03166102c0565b61020e610389366004611dda565b610672565b6101d16106ce565b61020e6103a4366004611df3565b6106dd565b6101fa6103b7366004611d74565b610764565b6101fa6103ca366004611d74565b6107df565b61027f6103dd366004611e1f565b6107ed565b61027f6103f0366004611e77565b610923565b61020e610403366004611ee1565b610a87565b61041b610416366004611f14565b610ab2565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101de565b61027f610453366004611df3565b610b36565b60606003805461046790611f54565b80601f016020809104026020016040519081016040528092919081815260200182805461049390611f54565b80156104e05780601f106104b5576101008083540402835291602001916104e0565b820191906000526020600020905b8154815290600101906020018083116104c357829003601f168201915b5050505050905090565b6000336104f8818585610bac565b5060019392505050565b600033610510858285610cd0565b61051b858585610d4a565b506001949350505050565b6000610530610ef4565b905090565b6000336104f88185856105488383610a87565b6105529190611f9e565b610bac565b60004382106105ad5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090206105cf908361101b565b9392505050565b6105de611112565b6105e8828261116c565b5050565b6105f63382611176565b50565b6105f63382611180565b6001600160a01b038116600090815260086020526040812054610625906111f9565b92915050565b610633611112565b61063d6000611262565b565b61064a823383610cd0565b6105e88282611176565b6001600160a01b038116600090815260056020526040812054610625565b60004382106106c35760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064016105a4565b61062560098361101b565b60606004805461046790611f54565b6001600160a01b0381166000908152600860205260408120548015610751576001600160a01b038316600090815260086020526040902061071f600183611fb6565b8154811061072f5761072f611fcd565b60009182526020909120015464010000000090046001600160e01b0316610754565b60005b6001600160e01b03169392505050565b600033816107728286610a87565b9050838110156107d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105a4565b61051b8286868403610bac565b6000336104f8818585610d4a565b8342111561083d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e6174757265206578706972656400000060448201526064016105a4565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906108b7906108af9060a001604051602081830303815290604052805190602001206112b4565b858585611302565b90506108c28161132a565b86146109105760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000060448201526064016105a4565b61091a8188611180565b50505050505050565b834211156109735760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105a4565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109a28c61132a565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006109fd826112b4565b90506000610a0d82878787611302565b9050896001600160a01b0316816001600160a01b031614610a705760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105a4565b610a7b8a8a8a610bac565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610af657610af6611fcd565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610b3e611112565b6001600160a01b038116610ba35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a4565b6105f681611262565b6001600160a01b038316610c0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a4565b6001600160a01b038216610c6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610cdc8484610a87565b90506000198114610d445781811015610d375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a4565b610d448484848403610bac565b50505050565b6001600160a01b038316610dae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a4565b6001600160a01b038216610e105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a4565b6001600160a01b03831660009081526020819052604090205481811015610e885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a4565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d44848484611357565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610f4d57507f000000000000000000000000000000000000000000000000000000000000000046145b15610f7757507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b81546000908181600581111561107557600061103684611362565b6110409085611fb6565b600088815260209020909150869082015463ffffffff16111561106557809150611073565b611070816001611f9e565b92505b505b808210156110c2576000611089838361144a565b600088815260209020909150869082015463ffffffff1611156110ae578091506110bc565b6110b9816001611f9e565b92505b50611075565b80156110fc576110e5866110d7600184611fb6565b600091825260209091200190565b5464010000000090046001600160e01b03166110ff565b60005b6001600160e01b03169695505050505050565b600a546001600160a01b0316331461063d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a4565b6105e88282611465565b6105e882826114ef565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610d44828483611507565b600063ffffffff82111561125e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105a4565b5090565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106256112c1610ef4565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061131387878787611644565b9150915061132081611708565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b505050565b611352838383611852565b60008160000361137457506000919050565b6000600161138184611884565b901c6001901b9050600181848161139a5761139a611fe3565b048201901c905060018184816113b2576113b2611fe3565b048201901c905060018184816113ca576113ca611fe3565b048201901c905060018184816113e2576113e2611fe3565b048201901c905060018184816113fa576113fa611fe3565b048201901c9050600181848161141257611412611fe3565b048201901c9050600181848161142a5761142a611fe3565b048201901c90506105cf8182858161144457611444611fe3565b04611918565b60006114596002848418611ff9565b6105cf90848416611f9e565b61146f828261192e565b6002546001600160e01b0310156114e15760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084016105a4565b610d4460096119f583611a01565b6114f98282611b55565b610d446009611c8e83611a01565b816001600160a01b0316836001600160a01b0316141580156115295750600081115b15611352576001600160a01b038316156115b7576001600160a01b0383166000908152600860205260408120819061156490611c8e85611a01565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516115ac929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611352576001600160a01b038216600090815260086020526040812081906115ed906119f585611a01565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611635929190918252602082015260400190565b60405180910390a25050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561167b57506000905060036116ff565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156116cf573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116f8576000600192509250506116ff565b9150600090505b94509492505050565b600081600481111561171c5761171c61201b565b036117245750565b60018160048111156117385761173861201b565b036117855760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105a4565b60028160048111156117995761179961201b565b036117e65760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105a4565b60038160048111156117fa576117fa61201b565b036105f65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105a4565b6001600160a01b0383811660009081526007602052604080822054858416835291205461135292918216911683611507565b600080608083901c1561189957608092831c92015b604083901c156118ab57604092831c92015b602083901c156118bd57602092831c92015b601083901c156118cf57601092831c92015b600883901c156118e157600892831c92015b600483901c156118f357600492831c92015b600283901c1561190557600292831c92015b600183901c156106255760010192915050565b600081831061192757816105cf565b5090919050565b6001600160a01b0382166119845760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105a4565b80600260008282546119969190611f9e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105e860008383611357565b60006105cf8284611f9e565b82546000908190818115611a4e57611a1e876110d7600185611fb6565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611a63565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611a8384868863ffffffff16565b9250600082118015611a9b5750805163ffffffff1643145b15611ae057611aa983611c9a565b611ab8886110d7600186611fb6565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611b4b565b866040518060400160405280611af5436111f9565b63ffffffff168152602001611b0986611c9a565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b038216611bb55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105a4565b6001600160a01b03821660009081526020819052604090205481811015611c295760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105a4565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361135283600084611357565b60006105cf8284611fb6565b60006001600160e01b0382111561125e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016105a4565b600060208083528351808285015260005b81811015611d3057858101830151858201604001528201611d14565b81811115611d42576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611d6f57600080fd5b919050565b60008060408385031215611d8757600080fd5b611d9083611d58565b946020939093013593505050565b600080600060608486031215611db357600080fd5b611dbc84611d58565b9250611dca60208501611d58565b9150604084013590509250925092565b600060208284031215611dec57600080fd5b5035919050565b600060208284031215611e0557600080fd5b6105cf82611d58565b803560ff81168114611d6f57600080fd5b60008060008060008060c08789031215611e3857600080fd5b611e4187611d58565b95506020870135945060408701359350611e5d60608801611e0e565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611e9257600080fd5b611e9b88611d58565b9650611ea960208901611d58565b95506040880135945060608801359350611ec560808901611e0e565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611ef457600080fd5b611efd83611d58565b9150611f0b60208401611d58565b90509250929050565b60008060408385031215611f2757600080fd5b611f3083611d58565b9150602083013563ffffffff81168114611f4957600080fd5b809150509250929050565b600181811c90821680611f6857607f821691505b60208210810361134c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611fb157611fb1611f88565b500190565b600082821015611fc857611fc8611f88565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60008261201657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea26469706673582212209e895779581f1385477f5b91f9d69ca95e91300c1f861b78a030b4ed734d171364736f6c634300080e0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf146103e2578063dd62ed3e146103f5578063f1127ed814610408578063f2fde38b1461044557600080fd5b8063a457c2d7146103a9578063a9059cbb146103bc578063c3cda520146103cf57600080fd5b80638da5cb5b116100d35780638da5cb5b1461036a5780638e539e8c1461037b57806395d89b411461038e5780639ab24eb01461039657600080fd5b8063715018a61461033c57806379cc6790146103445780637ecebe001461035757600080fd5b80633a46b1a811610166578063587cde1e11610140578063587cde1e146102945780635c19a95c146102d85780636fcfff45146102eb57806370a082311461031357600080fd5b80633a46b1a81461025957806340c10f191461026c57806342966c681461028157600080fd5b806323b872dd116101a257806323b872dd1461021c578063313ce5671461022f5780633644e5151461023e578063395093511461024657600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d1610458565b6040516101de9190611d03565b60405180910390f35b6101fa6101f5366004611d74565b6104ea565b60405190151581526020016101de565b6002545b6040519081526020016101de565b6101fa61022a366004611d9e565b610502565b604051601281526020016101de565b61020e610526565b6101fa610254366004611d74565b610535565b61020e610267366004611d74565b610557565b61027f61027a366004611d74565b6105d6565b005b61027f61028f366004611dda565b6105ec565b6102c06102a2366004611df3565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101de565b61027f6102e6366004611df3565b6105f9565b6102fe6102f9366004611df3565b610603565b60405163ffffffff90911681526020016101de565b61020e610321366004611df3565b6001600160a01b031660009081526020819052604090205490565b61027f61062b565b61027f610352366004611d74565b61063f565b61020e610365366004611df3565b610654565b600a546001600160a01b03166102c0565b61020e610389366004611dda565b610672565b6101d16106ce565b61020e6103a4366004611df3565b6106dd565b6101fa6103b7366004611d74565b610764565b6101fa6103ca366004611d74565b6107df565b61027f6103dd366004611e1f565b6107ed565b61027f6103f0366004611e77565b610923565b61020e610403366004611ee1565b610a87565b61041b610416366004611f14565b610ab2565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101de565b61027f610453366004611df3565b610b36565b60606003805461046790611f54565b80601f016020809104026020016040519081016040528092919081815260200182805461049390611f54565b80156104e05780601f106104b5576101008083540402835291602001916104e0565b820191906000526020600020905b8154815290600101906020018083116104c357829003601f168201915b5050505050905090565b6000336104f8818585610bac565b5060019392505050565b600033610510858285610cd0565b61051b858585610d4a565b506001949350505050565b6000610530610ef4565b905090565b6000336104f88185856105488383610a87565b6105529190611f9e565b610bac565b60004382106105ad5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090206105cf908361101b565b9392505050565b6105de611112565b6105e8828261116c565b5050565b6105f63382611176565b50565b6105f63382611180565b6001600160a01b038116600090815260086020526040812054610625906111f9565b92915050565b610633611112565b61063d6000611262565b565b61064a823383610cd0565b6105e88282611176565b6001600160a01b038116600090815260056020526040812054610625565b60004382106106c35760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064016105a4565b61062560098361101b565b60606004805461046790611f54565b6001600160a01b0381166000908152600860205260408120548015610751576001600160a01b038316600090815260086020526040902061071f600183611fb6565b8154811061072f5761072f611fcd565b60009182526020909120015464010000000090046001600160e01b0316610754565b60005b6001600160e01b03169392505050565b600033816107728286610a87565b9050838110156107d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105a4565b61051b8286868403610bac565b6000336104f8818585610d4a565b8342111561083d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e6174757265206578706972656400000060448201526064016105a4565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906108b7906108af9060a001604051602081830303815290604052805190602001206112b4565b858585611302565b90506108c28161132a565b86146109105760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000060448201526064016105a4565b61091a8188611180565b50505050505050565b834211156109735760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105a4565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109a28c61132a565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006109fd826112b4565b90506000610a0d82878787611302565b9050896001600160a01b0316816001600160a01b031614610a705760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105a4565b610a7b8a8a8a610bac565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610af657610af6611fcd565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610b3e611112565b6001600160a01b038116610ba35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a4565b6105f681611262565b6001600160a01b038316610c0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a4565b6001600160a01b038216610c6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610cdc8484610a87565b90506000198114610d445781811015610d375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a4565b610d448484848403610bac565b50505050565b6001600160a01b038316610dae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a4565b6001600160a01b038216610e105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a4565b6001600160a01b03831660009081526020819052604090205481811015610e885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a4565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d44848484611357565b6000306001600160a01b037f00000000000000000000000014778860e937f509e651192a90589de711fb88a916148015610f4d57507f000000000000000000000000000000000000000000000000000000000000000146145b15610f7757507f88c57ca37f17baba145406d8a1007f208e521f6cbd57f6417eb05632902c06fd90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fb883326f1f36a144c140e6f1f93117f91b7e9a52545e9d6c305530e870a384bc828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b81546000908181600581111561107557600061103684611362565b6110409085611fb6565b600088815260209020909150869082015463ffffffff16111561106557809150611073565b611070816001611f9e565b92505b505b808210156110c2576000611089838361144a565b600088815260209020909150869082015463ffffffff1611156110ae578091506110bc565b6110b9816001611f9e565b92505b50611075565b80156110fc576110e5866110d7600184611fb6565b600091825260209091200190565b5464010000000090046001600160e01b03166110ff565b60005b6001600160e01b03169695505050505050565b600a546001600160a01b0316331461063d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a4565b6105e88282611465565b6105e882826114ef565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610d44828483611507565b600063ffffffff82111561125e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105a4565b5090565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106256112c1610ef4565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061131387878787611644565b9150915061132081611708565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b505050565b611352838383611852565b60008160000361137457506000919050565b6000600161138184611884565b901c6001901b9050600181848161139a5761139a611fe3565b048201901c905060018184816113b2576113b2611fe3565b048201901c905060018184816113ca576113ca611fe3565b048201901c905060018184816113e2576113e2611fe3565b048201901c905060018184816113fa576113fa611fe3565b048201901c9050600181848161141257611412611fe3565b048201901c9050600181848161142a5761142a611fe3565b048201901c90506105cf8182858161144457611444611fe3565b04611918565b60006114596002848418611ff9565b6105cf90848416611f9e565b61146f828261192e565b6002546001600160e01b0310156114e15760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084016105a4565b610d4460096119f583611a01565b6114f98282611b55565b610d446009611c8e83611a01565b816001600160a01b0316836001600160a01b0316141580156115295750600081115b15611352576001600160a01b038316156115b7576001600160a01b0383166000908152600860205260408120819061156490611c8e85611a01565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516115ac929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611352576001600160a01b038216600090815260086020526040812081906115ed906119f585611a01565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611635929190918252602082015260400190565b60405180910390a25050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561167b57506000905060036116ff565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156116cf573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116f8576000600192509250506116ff565b9150600090505b94509492505050565b600081600481111561171c5761171c61201b565b036117245750565b60018160048111156117385761173861201b565b036117855760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105a4565b60028160048111156117995761179961201b565b036117e65760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105a4565b60038160048111156117fa576117fa61201b565b036105f65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105a4565b6001600160a01b0383811660009081526007602052604080822054858416835291205461135292918216911683611507565b600080608083901c1561189957608092831c92015b604083901c156118ab57604092831c92015b602083901c156118bd57602092831c92015b601083901c156118cf57601092831c92015b600883901c156118e157600892831c92015b600483901c156118f357600492831c92015b600283901c1561190557600292831c92015b600183901c156106255760010192915050565b600081831061192757816105cf565b5090919050565b6001600160a01b0382166119845760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105a4565b80600260008282546119969190611f9e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105e860008383611357565b60006105cf8284611f9e565b82546000908190818115611a4e57611a1e876110d7600185611fb6565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611a63565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611a8384868863ffffffff16565b9250600082118015611a9b5750805163ffffffff1643145b15611ae057611aa983611c9a565b611ab8886110d7600186611fb6565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611b4b565b866040518060400160405280611af5436111f9565b63ffffffff168152602001611b0986611c9a565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b038216611bb55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105a4565b6001600160a01b03821660009081526020819052604090205481811015611c295760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105a4565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361135283600084611357565b60006105cf8284611fb6565b60006001600160e01b0382111561125e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016105a4565b600060208083528351808285015260005b81811015611d3057858101830151858201604001528201611d14565b81811115611d42576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611d6f57600080fd5b919050565b60008060408385031215611d8757600080fd5b611d9083611d58565b946020939093013593505050565b600080600060608486031215611db357600080fd5b611dbc84611d58565b9250611dca60208501611d58565b9150604084013590509250925092565b600060208284031215611dec57600080fd5b5035919050565b600060208284031215611e0557600080fd5b6105cf82611d58565b803560ff81168114611d6f57600080fd5b60008060008060008060c08789031215611e3857600080fd5b611e4187611d58565b95506020870135945060408701359350611e5d60608801611e0e565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611e9257600080fd5b611e9b88611d58565b9650611ea960208901611d58565b95506040880135945060608801359350611ec560808901611e0e565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611ef457600080fd5b611efd83611d58565b9150611f0b60208401611d58565b90509250929050565b60008060408385031215611f2757600080fd5b611f3083611d58565b9150602083013563ffffffff81168114611f4957600080fd5b809150509250929050565b600181811c90821680611f6857607f821691505b60208210810361134c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611fb157611fb1611f88565b500190565b600082821015611fc857611fc8611f88565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60008261201657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea26469706673582212209e895779581f1385477f5b91f9d69ca95e91300c1f861b78a030b4ed734d171364736f6c634300080e0033

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.