@webb-tools/evm-test-utils
v1.0.11
Published
<div align="center"> <a href="https://www.webb.tools/">
Downloads
15
Keywords
Readme
This Repository is meant to support a development environment for the anchor protocol over EVM networks. In its current state, it starts up two networks and deploys a Variable Anchor bridge over these networks for a freshly created erc20 token. It is meant to be used directly with this script at the current moment.
- Hermes: chainId 5001, 'chain a'
- Athena: chainId 5002, 'chain b'
- Demeter: chainId 5003, 'chain c'
- Clone the repo and build dependencies
git clone https://github.com/webb-tools/protocol-solidity
cd protocol-solidity && yarn
- Populate fixed zero knowledge keys by running:
cd packages/contracts && dvc pull && cd ../..
- Start the local testnet with:
ts-node ./scripts/evm/deployments/LocalEvmVBridge.ts
Great! Now you have a local EVM node running!
The deployer is the oracle signer for this bridge. As such, a CLI is supported for actions which require the bridge to sign messages, acting as the DKG. These commands are as follows:
- 'deposit on chain a': Using the deployer account, deposit into the fixed anchor on chain a. The deposit is stored in this local testnet memory for use by the withdraw command later.
- 'relay from a to b': Using the deployer account, look at the latest deposit on chain a and update chain b's root. This simulates the work of the Webb Relayer network interacting with a dkg and submitting the signed transaction on the other side of the bridge.
- 'withdraw on chain b': Using the deployer account, withdraw from the chain. It takes the latest deposit done through the CLI for a withdraw.
- 'root on chain a': Print the current root of the merkle tree for chain a.
For full E2E integration testing with the dapp, deposits and withdrawals can be done through the DApp UI. Simply call the 'relay from to ' command after a deposit through the dapp to relay the roots before initiating the withdrawal through the dapp.