-
-
Notifications
You must be signed in to change notification settings - Fork 54
/
ERC20Properties.sol
50 lines (44 loc) · 1.77 KB
/
ERC20Properties.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// SPDX-License-Identifier: WTFPL
pragma solidity ^0.8.27;
import {VyperDeployer} from "utils/VyperDeployer.sol";
import {ITokenMock} from "properties/ERC20/external/util/ITokenMock.sol";
import {CryticERC20ExternalBasicProperties} from "properties/ERC20/external/properties/ERC20ExternalBasicProperties.sol";
import {CryticERC20ExternalBurnableProperties} from "properties/ERC20/external/properties/ERC20ExternalBurnableProperties.sol";
import {CryticERC20ExternalMintableProperties} from "properties/ERC20/external/properties/ERC20ExternalMintableProperties.sol";
contract CryticERC20ExternalHarness is
CryticERC20ExternalBasicProperties,
CryticERC20ExternalBurnableProperties,
CryticERC20ExternalMintableProperties
{
string private constant _NAME = "MyToken";
string private constant _SYMBOL = "WAGMI";
uint8 private constant _DECIMALS = 18;
string private constant _NAME_EIP712 = "MyToken";
string private constant _VERSION_EIP712 = "1";
uint256 private constant _INITIAL_SUPPLY = type(uint8).max;
VyperDeployer private vyperDeployer = new VyperDeployer();
constructor() {
bytes memory args = abi.encode(
_NAME,
_SYMBOL,
_DECIMALS,
_INITIAL_SUPPLY,
_NAME_EIP712,
_VERSION_EIP712
);
/**
* @dev `hevm` does not currently work with the EVM version `cancun`:
* https://github.com/ethereum/hevm/issues/469. For Echidna-based tests,
* we therefore use the EVM version `shanghai`.
*/
token = ITokenMock(
vyperDeployer.deployContract(
"src/snekmate/tokens/mocks/",
"erc20_mock",
args,
"shanghai",
"gas"
)
);
}
}