Skip to content

Commit cdd8a27

Browse files
committed
docs: add README
1 parent 5ce2a9c commit cdd8a27

File tree

1 file changed

+24
-48
lines changed

1 file changed

+24
-48
lines changed

README.md

Lines changed: 24 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,42 @@
1-
## Foundry
1+
# OpenVM Solidity SDK
22

3-
**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.**
3+
This repo houses OpenVM verifier contracts generated on official release commits of the [openvm](https://github.com/openvm-org/openvm) repo with the default VM config using the `cargo-openvm` cli tool. Advanced VM configurations may require their own generations.
44

5-
Foundry consists of:
5+
## Installation
66

7-
- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools).
8-
- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
9-
- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network.
10-
- **Chisel**: Fast, utilitarian, and verbose solidity REPL.
7+
To install `openvm-solidity-sdk` as a dependency in your forge project, run the following:
118

12-
## Documentation
13-
14-
https://book.getfoundry.sh/
15-
16-
## Usage
17-
18-
### Build
19-
20-
```shell
21-
$ forge build
22-
```
23-
24-
### Test
25-
26-
```shell
27-
$ forge test
9+
```bash
10+
forge install openvm-org/openvm-solidity-sdk
2811
```
2912

30-
### Format
13+
## Usage
3114

32-
```shell
33-
$ forge fmt
34-
```
15+
If you are using a deployed instance of the verifier contract, then you can import the interfaces in your contract directly.
3516

36-
### Gas Snapshots
17+
```solidity
18+
import { IOpenVmHalo2Verifier } from "openvm-solidity-sdk/v1.1.1/interfaces/IOpenVmHalo2Verifier.sol";
3719
38-
```shell
39-
$ forge snapshot
40-
```
20+
contract MyContract {
21+
function myFunction() public view {
22+
// ... snip ...
4123
42-
### Anvil
24+
IOpenVmHalo2Verifier(verifierAddress)
25+
.verify(publicValues, proofData, appExeCommit, appVmCommit);
4326
44-
```shell
45-
$ anvil
27+
// ... snip ...
28+
}
29+
}
4630
```
4731

48-
### Deploy
32+
If you want to deploy your own instance of the verifier contract, you can use `forge create`:
4933

50-
```shell
51-
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>
34+
```bash
35+
forge create src/v1.1.1/OpenVmHalo2Verifier.sol:OpenVmHalo2Verifier --rpc-url $RPC --private-key $PRIVATE_KEY --broadcast
5236
```
5337

54-
### Cast
38+
If you want to import the verifier into your own repo for testing purposes, it might be a bit trickier. The verifier contracts are locked to version `0.8.19` of solc, so if you are using a different version, the import will not be compilable. If you are using a different version, as a workaround, you can compile the contract and `vm.etch()` the raw bytecode into your tests.
5539

56-
```shell
57-
$ cast <subcommand>
58-
```
59-
60-
### Help
40+
## Audits
6141

62-
```shell
63-
$ forge --help
64-
$ anvil --help
65-
$ cast --help
66-
```
42+
You can find the audit reports for these contracts in the [OpenVM repo](https://github.com/openvm-org/openvm/tree/main/audits).

0 commit comments

Comments
 (0)