Test Coverage
The tables below provide 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 summarise, VeChain is fully compatible with OpenZeppelin contracts (with v5 being the latest version tested), and the main differences encountered are related to Hardhat:
The
chainId
in VeChain is the genesis block ID of each networkCustom Hardhat RPC methods like
evm_increaseTime
orevm_mine
depend on the actual Hardhat VeChain plugin (so differences might be expected in this regard).
You can find detailed analysis of the coverage categories in the pages to follow.
OpenZeppelin v5
Summary
Set base URI
URI was not set in the ERC721 and ERC721Enumerable test cases, causing 6 tests to remain pending. Since these tests focus on compatibility, URI validation is not essential.
0
Detail
Total
2611
0
2617
AccessControl
30
0
30
Ownable
8
0
8
Ownable2Step
6
0
6
AccessControlDefaultAdminRules
56
0
56
AccessControlEnumerable
36
0
36
AccessManaged
8
0
8
AccessManager
113
0
113
AuthorityUtils
4
0
4
VestingWallet
2
0
2
Governor
136
0
136
GovernorERC721
2
0
2
GovernorPreventLateQuorum
5
0
5
GovernorStorage
3
0
3
GovernorTimelockAccess
3
0
3
GovernorTimelockCompound
8
0
8
GovernorTimelockControl
12
0
12
GovernorVotesQuorumFraction
4
0
4
GovernorWithParams
7
0
7
Votes
44
0
44
ERC2771Context
11
0
11
ERC2771Forwarder
36
0
36
Clones
30
0
30
ERC1967Proxy
19
0
19
BeaconProxy
6
0
6
UpgradeableBeacon
6
0
6
ProxyAdmin
5
0
5
TransparentUpgradeableProxy
19
0
19
Initializable
29
0
29
UUPSupgradeable
8
0
8
ERC721
375
0
378
ERC721Enumerable
397
0
400
ERC721Wrapper
18
0
18
ERC721Holder
1
0
1
ERC721Burnable
5
0
5
ERC721Consecutive
34
0
34
ERC721Pausable
9
0
9
ERC721Royalty
16
0
16
ERC721URIStorage
17
0
17
ERC721Votes
23
0
23
ERC721Holder
1
0
1
ERC1155
89
0
89
ERC1155Burnable
6
0
6
ERC1155Pausable
11
0
11
ERC1155Supply
4
0
4
ERC1155URIStorage
4
0
4
ERC1155Holder
7
0
7
Address
7
0
7
Address
29
0
29
Arrays
20
0
20
Base64
5
0
5
Context
4
0
4
Create2
8
0
8
Multicall
4
0
4
Nonces
6
0
6
Pausable
11
0
11
ReentrancyGuard
6
0
6
ShortStrings
14
0
14
StorageSlot
24
0
24
Strings
71
0
71
ECDSA
14
0
14
EIP712
13
0
13
MerkleProof
10
0
10
MessageHashUtils
4
0
4
ERC165
5
0
5
ERC165Checker
40
0
40
Math
44
0
44
SafeCast
444
0
444
SignedMath
12
0
12
BitMap
10
0
10
Checkpoints
33
0
33
DoubleEndedQueue
9
0
9
EnumerableMap
60
0
60
EnumerableSet
24
0
24
Time
7
0
7
OpenZeppelin v4
Summary
Justifiable
Failures that result from the inherent design differences between VeChain and Ethereum.
73
Failures in Constructor
Contract fails in constructor, resulting in failure to be deployed.
7
Full, with test changes
Some test modifications had to be added for the tests to pass.
3
Detail
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
Last updated
Was this helpful?