Test Coverage
Last updated
Last updated
The tables below provides a summary and detailed information in relation to the number of tests performed, the count of passing tests and the count of failing tests.
To summarize, VeChain achieves a pass rate of 99%, when taking into consideration that 1346 of the 1355 failing tests are classified as being either justifiable or passable, given some modifications to the tests.
You can find detailed analysis of the coverage categories in the pages to follow.
Category | Short Description | Failures |
---|---|---|
Category | Short Description | Failures |
---|---|---|
Contract Name | Pass | Fail | Total |
---|---|---|---|
Contract Name | Pass | Fail | Total |
---|---|---|---|
Justifiable
Failures that result from the inherent design differences between VeChain and Ethereum.
73
Contract Address Prediction
See here.
14
Failures in Constructor
Contract fails in constructor resulting in failure to be deployed.
7
Full, with eth_sign implementation
See here.
4
Full, with test changes
Some test modifications had to be added for the tests to pass.
3
BadBeaconProxy Address 0x1
See here.
1
Custom Error
Failures due to custom errors specific to the implementation.
928
Hardhat Specific
Issues specific to Hardhat Network.
335
Justifiable
Failures that result from the inherent design differences between VeChain and Ethereum.
83
Max code size limit
Failures due to exceeding the maximum contract code size limit.
4
eth_sign
See here.
4
BadBeaconProxy Address 0x1
See here
1
Total
2324
102
2426
ERC1967Proxy
25
3
28
TransparentUpgradeableProxy
58
3
61
BeaconProxy
7
2
9
GovernorTimelockCompound
7
12
19
GovernorCompatibilityBravo
7
2
9
TimelockController
27
15
42
CrossChainEnabled
4
9
13
GovernorTimelockControl
12
9
21
AccessControl
50
4
54
MinimalForwarder
12
4
16
TokenTimelock
3
4
7
VestingWallet
2
4
6
ERC721Enumerable
233
3
236
DoubleEndedQueue
7
2
9
ERC2771Context
5
2
7
ERC721
211
2
213
Governor
42
2
44
Checkpoints
22
1
23
ERC1155
83
1
84
ERC1155Holder
4
1
5
ERC1155PresetMinterPauser
16
1
17
ERC165
2
1
3
ERC165Storage
4
1
5
ERC20Votes
28
1
29
ERC20VotesComp
27
1
28
ERC721PresetMinterPauserAutoId
15
1
16
ERC721Royalty
13
1
14
GovernorWithParams
3
1
4
MerkleProof
8
1
9
TimersTimestamp
4
1
5
ECDSA
14
3
17
SignatureChecker (ERC1271)
1
1
1
ERC1820Implementer
1
1
1
ERC777
1
1
1
ERC777PresetFixedSupply
1
1
1
Address
29
0
29
Arrays
15
0
15
BitMap
10
0
10
Clones
30
0
30
ConditionalEscrow
11
0
11
Context
4
0
4
Counters
8
0
8
Create2
8
0
8
EIP712
2
0
2
EnumerableMap
70
0
70
EnumerableSet
20
0
24
ERC1155Burnable
6
0
6
ERC1155Pausable
11
0
11
ERC1155Supply
10
0
10
ERC1155URIStorage
4
0
4
ERC165Checker
40
0
40
ERC20
118
0
118
ERC20Burnable
13
0
13
ERC20Capped
5
0
5
ERC20FlashMint
12
0
12
ERC20Pausable
12
0
12
ERC20Permit
6
0
6
ERC20PresetFixedSupply
4
0
4
ERC20PresetMinterPauser
12
0
12
ERC20Snapshot
14
0
14
ERC4626
25
0
25
ERC721Burnable
4
0
4
ERC721Consecutive
13
0
13
ERC721Holder
1
0
1
ERC721Pausable
10
0
10
ERC721URIStorage
10
0
10
ERC721Votes
26
0
26
Escrow
10
0
10
GovernorComp
2
0
2
GovernorERC721Mock
2
0
2
GovernorPreventLateQuorum
5
0
5
GovernorVotesQuorumFraction
6
0
6
Initializable
29
0
29
Math
25
0
25
MulticallToken
4
0
4
Ownable
6
0
6
Ownable2Step
5
0
5
Pausable
11
0
11
PaymentSplitter
20
0
20
ProxyAdmin
12
0
12
PullPayment
4
0
4
ReentrancyGuard
6
0
6
RefundEscrow
17
0
17
SafeCast
444
0
444
SafeERC20
35
0
35
SafeMath
48
0
48
SignedMath
12
0
12
SignedSafeMath
17
0
17
StorageSlot
12
0
12
Strings
31
0
31
TimersBlockNumber
5
0
5
UpgradeableBeacon
5
0
5
UUPSUpgradeable
6
0
6
Votes
23
0
23
Total
7063
1351
5057
AccessControl
30
9
39
Ownable
8
4
12
Ownable2Step
6
2
8
AccessControlDefaultAdminRules
94
67
161
AccessControlEnumerable
37
11
48
AccessManaged
11
6
17
AccessManager
160
185
345
AuthorityUtils
4
0
4
VestingWallet
6
5
11
Governor
202
143
345
TimelockController
53
38
91
GovernorERC721
4
2
6
GovernorPreventLateQuorum
10
7
17
GovernorTimelockCompound
38
36
74
GovernorTimelockControl
42
37
79
GovernorVotesQuorumFraction
12
10
22
GovernorWithParams
14
11
25
Votes
46
14
60
ERC2771Context
11
0
11
ERC2771Forwarder
37
19
56
Clones
30
1
31
ERC1967Proxy
26
12
38
BeaconProxy
10
8
18
UpgradeableBeacon
6
3
9
ProxyAdmin
7
4
11
TransparentUpgradeableProxy
26
12
38
Initializable
29
8
37
UUPSUpgradeable
11
10
21
ERC1155
89
29
118
ERC1155Burnable
6
2
8
ERC1155Pausable
11
8
19
ERC1155Supply
11
0
11
ERC1155URIStorage
4
0
4
ERC1155Holder
7
2
9
ERC20
122
34
156
ERC20Burnable
13
3
16
ERC20Capped
5
3
8
ERC20FlashMint
12
4
16
ERC20Pausable
12
4
16
ERC20Permit
6
3
9
ERC20Votes
92
30
122
ERC20Wrapper
44
12
56
ERC4626
71
11
82
SafeERC20
35
12
47
ERC721
378
71
449
ERC721Enumerable
400
80
480
ERC721Burnable
5
4
9
ERC721Consecutive
34
22
56
ERC721Pausable
9
5
14
ERC721Royalty
16
4
20
ERC721URIStorage
17
6
23
ERC721Votes
25
7
32
ERC721Wrapper
384
72
456
ERC721Holder
1
0
1
Address
29
14
43
Arrays
15
0
15
Base64
5
0
5
Context
4
0
4
Create2
8
2
10
Multicall
4
2
6
Nonces
6
1
7
Pausable
11
5
16
ReentrancyGuard
6
3
9
ShortStrings
14
6
20
StorageSlot
24
0
24
Strings
71
1
72
ECDSA
15
11
26
EIP712
13
0
13
MerkleProof
10
3
13
MessageHashUtils
4
0
4
ERC165
5
2
7
ERC165Checker
40
0
40
Math
44
1
45
SafeCast
444
190
634
SignedMath
12
0
12
BitMap
10
0
10
Checkpoints
33
3
36
DoubleEndedQueue
9
2
11
EnumerableMap
60
5
65
EnumerableSet
24
0
24
Time
7
0
7
GovernorStorage
0
2
2
GovernorTimelockAccess
0
2
2
ERC1967Utils
0
3
3
SignatureChecker
0
1
1