- Node.js v18.17.1
- Bun v1.1.29
- Forge v0.2.0
After cloning the repo, run make setup
to install dependencies and build the project.
There are two key components that need to be implemented:
- Implement the
Prover
contract for the destination L2 chain. - Implement the
rip7755Mint
function in the demo service.
The Prover
contract should adhere to the IProver
interface and implement validation of a nested storage proof. To properly set up the storage proof parameters, pay attention to the Rollup
contract. This is where our mock-L2 chains are posting roots on L1 - notice how the destination L2's state root is used to post data there.
Once the Prover
contract is implemented, try running the test file to see if it passes!
The rip7755Mint
function in the demo service should construct an RIP-7755 request and submit to the mock Base RIP7755Outbox
contract. The target call should be the mint
function in our simple NFT contract.
Run make start-mock-L1
to start the mock L1 chain.
In a new terminal window, run make start-mock-base
to start the mock Base chain.
In a new terminal window, run make start-mock-arbitrum
to start the mock Arbitrum chain.
In a new terminal window, run make setup-contracts
to setup the contracts.
In a new terminal window, run make start-syncer
to start the rollup syncer service.
In a new terminal window, run make start-fulfiller
to start the fulfiller service.
In a new terminal window, run make demo
to start the demo service.