- Hardhat: compile and run the smart contracts on a local development network
- TypeChain: generate TypeScript types for smart contracts
- Ethers: renowned Ethereum library and wallet implementation
- Waffle: tooling for writing comprehensive smart contract tests
- Solhint: linter
- Solcover: code coverage
- Prettier Plugin Solidity: code formatter
Before running any command, make sure to install dependencies:
$ yarn installCopy .env.example to .env and update MNEMONIC
cp .env.example .env
Compile the smart contracts with Hardhat:
$ yarn compileCompile the smart contracts with Tronbox:
$ yarn compile:tronCompile the smart contracts and generate TypeChain artifacts:
$ yarn typechainLint the Solidity code:
$ yarn lint:solLint the TypeScript code:
$ yarn lint:tsRun the Mocha tests:
$ yarn testGenerate the code coverage report:
$ yarn coverageSee the gas usage per unit test and average gas per method call:
$ REPORT_GAS=true yarn testDeploy the contracts to Hardhat Network:
$ npx hardhat deploy:AssetBridge --env "testnet or alpha or devnet" --network ..e.g Deploy the contracts to a specific network, such as the mumbai testnet:
$ npx hardhat deploy:AssetBridge --env "alpha" --network mumbai$ npx hardhat Configure:AssetBridge --env "testnet or alpha or devnet" --network ..e.g Configuring the contracts to a specific network, such as the mumbai testnet:
$ npx hardhat Configure:AssetBridge --env "alpha" --network mumbai$ npx hardhat deploy:AssetBridgeTron --env "testnet or alpha or devnet" --net "shasta or nile"e.g
$ npx hardhat deploy:AssetBridgeTron --env "alpha" --net shastaDeploy the contracts to Hardhat Network:
$ npx hardhat Configure:AssetBridge --env "testnet or alpha or devnet" --network ..e.g:
$ npx hardhat Configure:AssetBridgeTron --env "alpha" --net shastaNote: Change constants as per need in tasks/constants.ts and deployment/config info for configuring contract
If you use VSCode, you can enjoy syntax highlighting for your Solidity code via the vscode-solidity extension. The recommended approach to set the compiler version is to add the following fields to your VSCode user settings:
{
"solidity.compileUsingRemoteVersion": "v0.8.4+commit.c7e474f2",
"solidity.defaultCompiler": "remote"
}Where of course v0.8.4+commit.c7e474f2 can be replaced with any other version.