description |
---|
A tutorial on how to recreate the OpenZeppelin tests locally using a Thor Solo node. |
Use the tutorial how-to-run-a-thor-solo-node to start up a thor solo node.
git clone git@github.com:OpenZeppelin/openzeppelin-contracts.git
cd openzeppelin-contracts
npm install @vechain/hardhat-vechain@0.0.1 --save-exact
npm install @vechain/hardhat-web3@0.0.1 --save-exact
npm install @vechain/web3-providers-connex@1.0.0 --save-exact
Add the following to your hardhat config
require("@vechain/hardhat-vechain");
require("@vechain/hardhat-web3");
Add the VeChain network settings
vechain: {
url: "http://127.0.0.1:8669",
accounts: {
mnemonic: "denial kitchen pet squirrel other broom bar gas better priority spoil cross",
count: 10,
},
restful: true,
gas: 10000000,
delegate: {
url: "hello",
signer : "world"
},
},
Assuming you have cloned OpenZeppelin and are running thor locally in solo mode we can now move on to running the OpenZeppelin tests. First navigate to the appropriate directory.
cd openzeppelin-contracts
npx hardhat test --network vechain test/access/AccessControlEnumerable.test.js
npx hardhat test --network vechain
This section explains how to run the custom tests adapted to run on VeChainThor blockchain. This fork is based on OpenZeppelin version 5.
git clone -b thor-compatibility git@github.com:vechain/openzeppelin-contracts.git
cd openzeppelin-contracts
When running the custom fork you need to increase the gas limit.
bin/thor solo --on-demand --gas-limit 10000000000
Assuming you have cloned OpenZeppelin and are running thor locally in solo mode we can now move on to running the OpenZeppelin tests. First navigate to the appropriate directory.
cd openzeppelin-contracts
npx hardhat test --network vechain test/access/AccessControlEnumerable.test.js
npx hardhat test --network vechain
or in case of OZ5
npm run test:solo
npm run test:solo:dir <dir_relative_path>
All the tests in the custom fork are expected to pass.