diff --git a/README.md b/README.md index b2c05dc..5f0888d 100644 --- a/README.md +++ b/README.md @@ -1,147 +1,35 @@ # Boilerplate for ethereum solidity smart contract development -## INSTALL +## quickstart ```bash -yarn +pnpm i +pnpm prepare +pnpm dev ``` +add sepolia eth to an account and add it to .env: -## TEST - -There are 3 flavors of tests: hardhat, dapptools and forge - -### hardhat - -- One using hardhat that can leverage hardhat-deploy to reuse deployment procedures and named accounts: - -```bash -yarn test +```env +ETH_NODE_URI_SEPOLIA=https://eth-sepolia.g.alchemy.com/v2/v178sXJ0X49qRdgINzyuNbEvKsMXob4W +MNEMONIC_SEPOLIA='FILL THESE IN' ``` -### [dapptools](https://dapp.tools) - -```bash -dapp test +edit **hardhat.config.ts**, and fill in the address for the simpleOffchainVerifier named account on sepolia: +```javascript + namedAccounts: { + deployer: 0, + simpleERC20Beneficiary: 1, + onRamper: 2, + offRamper: 3, + simpleOffchainVerifier: { + default: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', + sepolia: 'match this with the mnemonic in the .env' + }, ``` -The latter requires additional step to set up your machine: -Install dapptools (Following instruction [here](https://github.com/dapphub/dapptools#installation)): +## in another shell ```bash -# user must be in sudoers -curl -L https://nixos.org/nix/install | sh - -# Run this or login again to use Nix -. "$HOME/.nix-profile/etc/profile.d/nix.sh" - -curl https://dapp.tools/install | sh +pnpm execute localhost scripts/getBalance.ts ``` - -Then install solc with the correct version: - -```bash -nix-env -f https://github.com/dapphub/dapptools/archive/master.tar.gz -iA solc-static-versions.solc_0_8_9 -``` - -### forge - -```bash -forge test -``` - -This require the installation of forge (see [foundry](https://github.com/gakonst/foundry)) - -## SCRIPTS - -Here is the list of npm scripts you can execute: - -Some of them relies on [./\_scripts.js](./_scripts.js) to allow parameterizing it via command line argument (have a look inside if you need modifications) -

- -### `yarn prepare` - -As a standard lifecycle npm script, it is executed automatically upon install. It generate config file and typechain to get you started with type safe contract interactions -

- -### `yarn format` and `yarn format:fix` - -These will format check your code. the `:fix` version will modifiy the files to match the requirement specified in `.prettierrc.` -

- -### `yarn compile` - -These will compile your contracts -

- -### `yarn void:deploy` - -This will deploy your contracts on the in-memory hardhat network and exit, leaving no trace. quick way to ensure deployments work as intended without consequences -

- -### `yarn test [mocha args...]` - -These will execute your tests using mocha. you can pass extra arguments to mocha -

- -### `yarn coverage` - -These will produce a coverage report in the `coverage/` folder -

- -### `yarn gas` - -These will produce a gas report for function used in the tests -

- -### `yarn dev` - -These will run a local hardhat network on `localhost:8545` and deploy your contracts on it. Plus it will watch for any changes and redeploy them. -

- -### `yarn local:dev` - -This assumes a local node it running on `localhost:8545`. It will deploy your contracts on it. Plus it will watch for any changes and redeploy them. -

- -### `yarn execute [args...]` - -This will execute the script `` against the specified network -

- -### `yarn deploy [args...]` - -This will deploy the contract on the specified network. - -Behind the scene it uses `hardhat deploy` command so you can append any argument for it -

- -### `yarn export ` - -This will export the abi+address of deployed contract to `` -

- -### `yarn fork:execute [--blockNumber ] [--deploy] [args...]` - -This will execute the script `` against a temporary fork of the specified network - -if `--deploy` is used, deploy scripts will be executed -

- -### `yarn fork:deploy [--blockNumber ] [args...]` - -This will deploy the contract against a temporary fork of the specified network. - -Behind the scene it uses `hardhat deploy` command so you can append any argument for it -

- -### `yarn fork:test [--blockNumber ] [mocha args...]` - -This will test the contract against a temporary fork of the specified network. -

- -### `yarn fork:dev [--blockNumber ] [args...]` - -This will deploy the contract against a fork of the specified network and it will keep running as a node. - -Behind the scene it uses `hardhat node` command so you can append any argument for it