The plugin generates 0xWeb classes for compiled solidity contracts, making the blockchain development transparent.
We use 📦 dequanto library for the classes
# install 0xweb
$ npm i 0xweb -g
# initialize 0xweb and hardhat project
$ 0xweb init --hardhat
any/directory/Foo.sol
pragma solidity ^0.8.2;
contract Foo {
    string public name;
    function setName(string memory _name) public {
        name = _name;
    }
}Plugin adds also ability to specify the
sourcesfolder. As per default this is/contracts/**.sol
$ npx hardhat compile --sources ./any/directory/
example.ts
import { Foo } from '0xc/hardhat/Foo/Foo.ts'
import { HardhatProvider } from '@dequanto/hardhat/HardhatProvider'
// automatically deploys the contract to hardhat chain
const deployer = new HardhatProvider();
const foo = await deployer.deployClass<Foo>(Foo, { arguments: [ 'Hello' ] });
// write
const tx = await foo.setName('Hello world')
const receipt = await tx.wait();
// read
const text = await foo.name();If the contract is already deployed, initialize the contract with the Address as normal class. If the contract is deployed to any other chain - set also the client in constructor
example.ts
import { Foo } from '0xc/hardhat/Foo/Foo.ts'
import { EthWeb3Client } from '@dequanto/clients/EthWeb3Client'
const client =  new EthWeb3Client();
const foo = new Foo('0x12345...', client);
// write
const tx = await foo.setName('Hello world');
const receipt = tx.wait();
// read
const text = await foo.name();- npx hardhat compile --sources /foo/bar/qux- compiles solidity files which are located outside the- /contractsfolder
- npx hardhat compile --artifacts /dist- set custom folder for artifacts (ABI JSONs and TS contracts)
- npx hardhat compile --watch- Compile the sources and waits to recompile on changes
- npx hardhat compile --package path/to/package/folder- You can split your project into packages, and with the command compile the contracts in a package, the sources will be searched in that directory, and the artifacts output will be written to that directory
- npx hardhat compile --tsgen false- Do not generate the TS classes. Installs all the contracts from the sources directory.
- npx hardhat compile --install TimelockController- Installs only specified Artifact name or *.sol paths. Comma separated.