For more information on the EVM protocol adapter, find the related
Warning
This repo features a prototype and is work in progress. Do NOT use in production.
.
├── bindings
├── contracts
├── LICENSE
└── README.md
The contracts
folder contains the contracts written in Solidity contracts as well as Foundry forge tests and deploy scripts.
The bindings
folder contains bindings in Rust to convert Rust and RISC Zero types into EVM types using the alloy-rs
library.
-
Get an up-to-date version of Rust with
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Clone this repo
Change the directory to the contracts
folder with cd contracts
and run
forge install
Run
forge test
To simulate deployment on sepolia, run
forge script script/Deploy.s.sol:Deploy \
--rpc-url sepolia
Append the
--broadcast
flag to deploy on sepolia--verify
flag for subsequent contract verification on Etherscan--account <ACCOUNT_NAME>
flag to use a previously imported keystore (seecast wallet --help
for more info)
For post-deployment verification on Etherscan run
forge verify-contract \
<ADDRESS> \
src/ProtocolAdapter.sol:ProtocolAdapter \
--chain sepolia \
--constructor-args-path script/constructor-args.txt
after replacing <ADDRESS>
with the respective contract address.
Parameters:
- Commitment accumulator
treeDepth = 32
Change the directory to the bindings
folder with cd bindings
and run
-
Install
rzup
by running the following command:curl -L https://risczero.com/install | bash
-
Run
rzup
to install RISC Zero:rzup install
-
Go to the
bindings
directory withcd bindings
and runcargo build
Print a test transaction with
cargo test -- conversion::tests::print_tx --exact --show-output --ignored