4 releases

0.1.3 Apr 12, 2024
0.1.2 Feb 6, 2024
0.1.1 Feb 6, 2024
0.1.0 Feb 5, 2024

#17 in #starknet

Download history 50/week @ 2024-07-27 8/week @ 2024-09-21 1/week @ 2024-09-28

231 downloads per month

MIT license

19KB
217 lines

Overview

Utility features to play with EIP-4844 blobs for Starknet usage.

Usage

As a CLI

You can use the CLI to recover the original data from a blob file and parse it into state diffs.

Install the CLI

cargo install majin-blob

Use the CLI

# Recover the original data from a blob file
majin-blob recover ./examples/blob/sn_blob_goerli.txt

Help

majin-blob --help

As a library

Add the following to your Cargo.toml:

[dependencies]
majin-blob-core = "0.1.0"
majin-blob-types = "0.1.0"

Then you can use the library as follows:

use majin_blob_core::blob;
use majin_blob_types::serde;

fn main() {
    // Read the blob data from a file
    let blob_data = serde::parse_file_to_blob_data("./examples/blob/sn_blob_goerli.txt");

    // Recover the original data
    let original_data = blob::recover(blob_data);

    // Parse the original data into state diffs
    let state_diffs = serde::parse_state_diffs(original_data.as_slice());

    // Serialize the state diffs into JSON
    let state_diffs_json = serde::to_json(state_diffs.as_slice());

    println!("{}", state_diffs_json);
}

Use the REST API

You can use the REST API to recover the original data from a blob file and parse it into state diffs.

Start the REST API

cargo run --release -p majin-blob-rest-api

Recover the original data from a blob file

curl -X POST --data-binary "@./examples/blob/sn_blob_goerli.txt" http://127.0.0.1:3030/blob

License

This project is licensed under the MIT license.

Dependencies

~2–3MB
~60K SLoC