blobstream-starknet
blobstream-starknet copied to clipboard
[feat] Blobstream Contracts Integration Tests
Create integration tests (scripts) for the Blobstream contract(s) by doing the following :
- Launch a
Katananode - Declare & Deploy the
BlobstreamXcontract ( & dependencies such as the gateway ) to theKatananode - Make calls to public functions on
BlobstreamXcontract & check state updates are correct
Possibly use mock implementations where needed.
References
https://github.com/keep-starknet-strange/blobstream-starknet/blob/main/src/lib.cairo
This is currently blocked. Waiting for Katana to upgrade the supported JSON-RPC spec to 0.6.0
It was posted that this should be soon https://t.me/dojoengine/5922
The decision to switch from Katana to starknet-devnet-rs has unblocked this. Katana does now support 0.6.0, but this decision was made prior to that. I think this is still the best way to go because forking starknet-devnet-rs doesn't require forking the entire dojo engine. ( Forking will be required to unblock Groth EC pairings with new syscalls for now )
Update
We have decided to integrate with Herodotus storage proof's / API. So, instead of using a devnet for integration tests, we will need to do tests on Sepolia for the integration.
This would include setting up deployment and upgrading scripts for the BlobstreamX contracts on Sepolia, script for sending a blob to Celestia, using the request data commitments from Herodotus script, updating Starknet BlobstreamX data commitments from the Herodotus Fact registry, and verifying DA for the blob on Starknet through BlobstreamX.
References
@b-j-roberts @drspacemn
So remaining scripts to do are :
- updating Starknet
BlobstreamXdata commitments from the Herodotus Fact registry - verifying DA for the blob on Starknet through
BlobstreamX
Can I work on these ? If so, is starkli the way to go ?
@thomas192 yes this is a good summary of the remaining scripts. Can you take #138 and I'll take #139 ?
duplicate of https://github.com/keep-starknet-strange/blobstream-starknet/issues/136 ?