Skip to content

Latest commit

 

History

History
123 lines (90 loc) · 2.81 KB

how-to-recreate.md

File metadata and controls

123 lines (90 loc) · 2.81 KB
description
A tutorial on how to recreate the OpenZeppelin tests locally using a Thor Solo node.

How to Recreate

Run a Thor Solo Node

Use the tutorial how-to-run-a-thor-solo-node to start up a thor solo node.

Configure a Development Environment

Clone openzeppelin-contracts

git clone [email protected]:OpenZeppelin/openzeppelin-contracts.git
cd openzeppelin-contracts

Install the required VeChain libraries

npm install @vechain/[email protected] --save-exact
npm install @vechain/[email protected] --save-exact
npm install @vechain/[email protected] --save-exact

Modify your hardhat.config.js

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"
      },
    },

Run the OpenZeppelin Tests

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

Run a single test

npx hardhat test --network vechain test/access/AccessControlEnumerable.test.js

Run all tests

npx hardhat test --network vechain

Running VeChain custom fork

This section explains how to run the custom tests adapted to run on VeChainThor blockchain. This fork is based on OpenZeppelin version 5.

Clone openzeppelin-contracts

git clone -b thor-compatibility [email protected]:vechain/openzeppelin-contracts.git
cd openzeppelin-contracts

Run thor solo

When running the custom fork you need to increase the gas limit.

bin/thor solo --on-demand --gas-limit 10000000000

Run the OpenZeppelin Tests

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

Run a single test

npx hardhat test --network vechain test/access/AccessControlEnumerable.test.js

Run all tests

npx hardhat test --network vechain

or in case of OZ5

npm run test:solo

Run all tests in a specific directory (OZ5)

npm run test:solo:dir <dir_relative_path>

Results

All the tests in the custom fork are expected to pass.