diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b4279f..73d6fef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,4 +70,4 @@ jobs: ${{ runner.os }}-cargo-build- - name: Run verification - run: cargo run --release --bin cairovm_verifier_cli --features ${{ matrix.layout }},keccak --no-default-features -- --proof examples/proofs/${{ matrix.layout }}/cairo0_example_proof.json \ No newline at end of file + run: cargo run --release --bin swiftness --features ${{ matrix.layout }},keccak --no-default-features -- --proof examples/proofs/${{ matrix.layout }}/cairo0_example_proof.json \ No newline at end of file diff --git a/.github/workflows/npm_publish.yaml b/.github/workflows/npm_publish.yaml new file mode 100644 index 0000000..861ebd8 --- /dev/null +++ b/.github/workflows/npm_publish.yaml @@ -0,0 +1,58 @@ +name: Manual Publish to npm + +on: + workflow_dispatch: + inputs: + npm_version: + description: 'Version to publish' + required: true + default: 'patch' # could be 'patch', 'minor', 'major', or a specific version + +jobs: + publish: + runs-on: ubuntu-latest + + env: + WORKING_DIR: wasm-binding # define the working directory here + + strategy: + fail-fast: false + matrix: + layout: ["starknet_with_keccak"] + hash: ["blake2s"] + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' # specify your desired Node.js version + + - name: Install dependencies + run: npm install + working-directory: ${{ env.WORKING_DIR }} + + - name: Update version + run: npm version ${{ github.event.inputs.npm_version }} --no-git-tag-version + working-directory: ${{ env.WORKING_DIR }} + + - name: Configure npm + run: npm config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} + working-directory: ${{ env.WORKING_DIR }} + + - name: Install wasm-pack + run: cargo install wasm-pack + + - name: Build package + run: wasm-pack build --target web --workspace --features ${{ matrix.layout }},${{ matrix.hash }} --no-default-features --out-dir pkg + working-directory: ${{ env.WORKING_DIR }} + + - name: Rename package + run: jq '.name = "swiftness-${{ matrix.layout }}-${{ matrix.hash }}"' package.json > tmp.json && mv tmp.json package.json + working-directory: ${{ env.WORKING_DIR }}/pkg + + - name: Publish to npm + run: npm publish --dry-run + working-directory: ${{ env.WORKING_DIR }}/pkg diff --git a/.gitignore b/.gitignore index b630a4c..0b27d31 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # will have compiled files and executables debug/ target/ +pkg/ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html @@ -11,4 +12,4 @@ target/ **/*.rs.bk # MSVC Windows builds of rustc generate these, which store debugging information -*.pdb +*.pdb \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index fc17d1a..2386991 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -135,138 +135,11 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -[[package]] -name = "cairovm_verifier_air" -version = "0.0.3" -dependencies = [ - "bail-out", - "cairovm_verifier_commitment", - "cairovm_verifier_transcript", - "serde", - "serde_with", - "starknet-core", - "starknet-crypto", - "thiserror", -] - -[[package]] -name = "cairovm_verifier_cli" -version = "0.0.3" -dependencies = [ - "cairovm_verifier_air", - "cairovm_verifier_proof_parser", - "cairovm_verifier_stark", - "clap", - "starknet-crypto", - "thiserror", -] - -[[package]] -name = "cairovm_verifier_commitment" -version = "0.0.3" -dependencies = [ - "blake2", - "cairovm_verifier_transcript", - "crypto-bigint", - "serde", - "serde_with", - "sha3", - "starknet-core", - "starknet-crypto", - "starknet-types-core", - "thiserror", -] - -[[package]] -name = "cairovm_verifier_fri" -version = "0.0.3" -dependencies = [ - "cairovm_verifier_air", - "cairovm_verifier_commitment", - "cairovm_verifier_transcript", - "serde", - "serde_with", - "sha3", - "starknet-core", - "starknet-crypto", - "thiserror", -] - -[[package]] -name = "cairovm_verifier_pow" -version = "0.0.3" -dependencies = [ - "bail-out", - "blake2", - "cairovm_verifier_transcript", - "serde", - "sha3", - "starknet-crypto", - "starknet-types-core", - "thiserror", -] - -[[package]] -name = "cairovm_verifier_proof_parser" -version = "0.0.3" -dependencies = [ - "anyhow", - "cairovm_verifier_air", - "cairovm_verifier_commitment", - "cairovm_verifier_fri", - "cairovm_verifier_pow", - "cairovm_verifier_stark", - "clap", - "num-bigint", - "regex", - "serde", - "serde_json", - "starknet-types-core", - "thiserror", -] - -[[package]] -name = "cairovm_verifier_stark" -version = "0.0.3" -dependencies = [ - "bail-out", - "cairovm_verifier_air", - "cairovm_verifier_commitment", - "cairovm_verifier_fri", - "cairovm_verifier_pow", - "cairovm_verifier_transcript", - "serde", - "serde_with", - "starknet-core", - "starknet-crypto", - "thiserror", - "wasm-bindgen", -] - -[[package]] -name = "cairovm_verifier_transcript" -version = "0.0.3" -dependencies = [ - "starknet-crypto", -] - -[[package]] -name = "cairovm_verifier_wasm" -version = "0.0.3" -dependencies = [ - "cairovm_verifier_air", - "cairovm_verifier_proof_parser", - "cairovm_verifier_stark", - "getrandom", - "serde_json", - "wasm-bindgen", -] - [[package]] name = "cc" -version = "1.1.5" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324c74f2155653c90b04f25b2a47a8a631360cb908f92a772695f430c7e31052" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" [[package]] name = "cfg-if" @@ -915,6 +788,133 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "swiftness" +version = "0.0.3" +dependencies = [ + "clap", + "starknet-crypto", + "swiftness_air", + "swiftness_proof_parser", + "swiftness_stark", + "thiserror", +] + +[[package]] +name = "swiftness_air" +version = "0.0.3" +dependencies = [ + "bail-out", + "serde", + "serde_with", + "starknet-core", + "starknet-crypto", + "swiftness_commitment", + "swiftness_transcript", + "thiserror", +] + +[[package]] +name = "swiftness_commitment" +version = "0.0.3" +dependencies = [ + "blake2", + "crypto-bigint", + "serde", + "serde_with", + "sha3", + "starknet-core", + "starknet-crypto", + "starknet-types-core", + "swiftness_transcript", + "thiserror", +] + +[[package]] +name = "swiftness_fri" +version = "0.0.3" +dependencies = [ + "serde", + "serde_with", + "sha3", + "starknet-core", + "starknet-crypto", + "swiftness_air", + "swiftness_commitment", + "swiftness_transcript", + "thiserror", +] + +[[package]] +name = "swiftness_pow" +version = "0.0.3" +dependencies = [ + "bail-out", + "blake2", + "serde", + "sha3", + "starknet-crypto", + "starknet-types-core", + "swiftness_transcript", + "thiserror", +] + +[[package]] +name = "swiftness_proof_parser" +version = "0.0.3" +dependencies = [ + "anyhow", + "clap", + "num-bigint", + "regex", + "serde", + "serde_json", + "starknet-types-core", + "swiftness_air", + "swiftness_commitment", + "swiftness_fri", + "swiftness_pow", + "swiftness_stark", + "thiserror", +] + +[[package]] +name = "swiftness_stark" +version = "0.0.3" +dependencies = [ + "bail-out", + "serde", + "serde_with", + "starknet-core", + "starknet-crypto", + "swiftness_air", + "swiftness_commitment", + "swiftness_fri", + "swiftness_pow", + "swiftness_transcript", + "thiserror", + "wasm-bindgen", +] + +[[package]] +name = "swiftness_transcript" +version = "0.0.3" +dependencies = [ + "starknet-crypto", +] + +[[package]] +name = "swiftness_wasm" +version = "0.0.3" +dependencies = [ + "getrandom", + "serde_json", + "swiftness_air", + "swiftness_proof_parser", + "swiftness_stark", + "wasm-bindgen", +] + [[package]] name = "syn" version = "2.0.71" @@ -928,18 +928,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.62" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.62" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index a4f49bb..041145f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,13 +16,11 @@ members = [ exclude = [] [workspace.package] -description = "" +description = "Swiftness - Rust CairoVM Verifier implementation" edition = "2021" -homepage = "" license-file = "LICENSE" readme = "README.md" -repository = "https://github.com/iosis-tech/cairovm-verifier" -version = "0.0.3" +repository = "https://github.com/iosis-tech/swiftness" [workspace.dependencies] bail-out = "0.2.0" @@ -39,10 +37,10 @@ num-bigint = { version = "0.4.4", features = ["serde"] } blake2 = "0.10.6" wasm-bindgen = "0.2" -cairovm_verifier_air = { path = "crates/air", default-features = false } -cairovm_verifier_commitment = { path = "crates/commitment", default-features = false } -cairovm_verifier_fri = { path = "crates/fri", default-features = false } -cairovm_verifier_pow = { path = "crates/pow", default-features = false } -cairovm_verifier_stark = { path = "crates/stark", default-features = false } -cairovm_verifier_transcript = { path = "crates/transcript", default-features = false } -cairovm_verifier_proof_parser = { path = "proof-parser", default-features = false } +swiftness_air = { path = "crates/air", default-features = false, version = "0.0.3" } +swiftness_commitment = { path = "crates/commitment", default-features = false, version = "0.0.3" } +swiftness_fri = { path = "crates/fri", default-features = false, version = "0.0.3" } +swiftness_pow = { path = "crates/pow", default-features = false, version = "0.0.3" } +swiftness_stark = { path = "crates/stark", default-features = false, version = "0.0.3" } +swiftness_transcript = { path = "crates/transcript", default-features = false, version = "0.0.3" } +swiftness_proof_parser = { path = "proof-parser", default-features = false, version = "0.0.3" } diff --git a/dockerfile b/Dockerfile similarity index 100% rename from dockerfile rename to Dockerfile diff --git a/README.md b/README.md index b35c15f..39e9116 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # Swiftness CairoVM Verifier ![Version](https://img.shields.io/badge/v0.0.3-green?style=flat-square&logo=git&logoColor=white&label=version) -![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/cairovm-verifier/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration) +![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/swiftness/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration) This is the Rust implementation of the Cairo-VM STARK verifier with layouts. The code is inspired by StarkWare's [Cairo-verifier](https://github.com/starkware-libs/cairo-lang) implementation in Cairo0. ### Verify example proof: ```sh -cargo run --release --bin cairovm_verifier_cli --features starknet_with_keccak,keccak --no-default-features -- --proof examples/proofs/starknet_with_keccak/cairo0_example_proof.json +cargo run --release --bin swiftness --features starknet_with_keccak,keccak --no-default-features -- --proof examples/proofs/starknet_with_keccak/cairo0_example_proof.json ``` ## Run Tests @@ -17,6 +17,17 @@ cargo run --release --bin cairovm_verifier_cli --features starknet_with_keccak,k cargo test ``` +### Install wasm-pack +```sh +cargo install wasm-pack +``` + +### Build WASM: + +```sh +cd wasm-binding && wasm-pack build --target web --workspace --features starknet_with_keccak,blake2s --no-default-features +``` + ## Features - **Usage:** diff --git a/cli/Cargo.toml b/cli/Cargo.toml index e5eeb7b..c0a186e 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,24 +1,23 @@ [package] -name = "cairovm_verifier_cli" +name = "swiftness" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true readme.workspace = true repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] clap = { version = "4.4.4", features = ["derive"] } thiserror.workspace = true starknet-crypto.workspace = true -cairovm_verifier_air = { workspace = true, default-features = false } -cairovm_verifier_stark = { workspace = true, default-features = false } -cairovm_verifier_proof_parser = { workspace = true, default-features = false } +swiftness_air = { workspace = true } +swiftness_stark = { workspace = true } +swiftness_proof_parser = { workspace = true } [features] -default = ["recursive", "keccak"] +default = ["starknet_with_keccak", "blake2s"] dex = [] recursive = [] recursive_with_poseidon = [] diff --git a/cli/src/lib.rs b/cli/src/lib.rs new file mode 100644 index 0000000..7dd5486 --- /dev/null +++ b/cli/src/lib.rs @@ -0,0 +1,2 @@ +pub use swiftness_proof_parser::*; +pub use swiftness_stark::*; diff --git a/cli/src/main.rs b/cli/src/main.rs index be169ad..ec5d7f3 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -1,19 +1,20 @@ use std::path::PathBuf; +pub use swiftness_proof_parser::*; +pub use swiftness_stark::*; #[cfg(feature = "dex")] -use cairovm_verifier_air::layout::dex::Layout; +use swiftness_air::layout::dex::Layout; #[cfg(feature = "recursive")] -use cairovm_verifier_air::layout::recursive::Layout; +use swiftness_air::layout::recursive::Layout; #[cfg(feature = "recursive_with_poseidon")] -use cairovm_verifier_air::layout::recursive_with_poseidon::Layout; +use swiftness_air::layout::recursive_with_poseidon::Layout; #[cfg(feature = "small")] -use cairovm_verifier_air::layout::small::Layout; +use swiftness_air::layout::small::Layout; #[cfg(feature = "starknet")] -use cairovm_verifier_air::layout::starknet::Layout; +use swiftness_air::layout::starknet::Layout; #[cfg(feature = "starknet_with_keccak")] -use cairovm_verifier_air::layout::starknet_with_keccak::Layout; +use swiftness_air::layout::starknet_with_keccak::Layout; -use cairovm_verifier_proof_parser::parse; use clap::Parser; #[derive(Parser)] diff --git a/crates/air/Cargo.toml b/crates/air/Cargo.toml index d8b9073..46f963a 100644 --- a/crates/air/Cargo.toml +++ b/crates/air/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_air" +name = "swiftness_air" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] bail-out.workspace = true @@ -16,8 +15,8 @@ starknet-core.workspace = true starknet-crypto.workspace = true thiserror.workspace = true -cairovm_verifier_commitment.workspace = true -cairovm_verifier_transcript.workspace = true +swiftness_commitment.workspace = true +swiftness_transcript.workspace = true [features] default = ["recursive"] diff --git a/crates/air/README.md b/crates/air/README.md new file mode 100644 index 0000000..7afa590 --- /dev/null +++ b/crates/air/README.md @@ -0,0 +1 @@ +# Swiftness Air CairoVM Verifier \ No newline at end of file diff --git a/crates/air/src/fixtures/commitment.rs b/crates/air/src/fixtures/commitment.rs index 30a3d6f..f2fe1b8 100644 --- a/crates/air/src/fixtures/commitment.rs +++ b/crates/air/src/fixtures/commitment.rs @@ -1,7 +1,7 @@ use super::{config, interaction_elements, unsent_commitment}; use crate::{layout::recursive::global_values::InteractionElements, trace::Commitment}; -use cairovm_verifier_commitment::{table, vector}; use starknet_crypto::Felt; +use swiftness_commitment::{table, vector}; pub fn get() -> Commitment { let unsent_commitment = unsent_commitment::get(); diff --git a/crates/air/src/fixtures/config.rs b/crates/air/src/fixtures/config.rs index 65b82ab..0493b43 100644 --- a/crates/air/src/fixtures/config.rs +++ b/crates/air/src/fixtures/config.rs @@ -1,6 +1,6 @@ use crate::trace; -use cairovm_verifier_commitment::{table, vector}; use starknet_crypto::Felt; +use swiftness_commitment::{table, vector}; pub fn get() -> trace::config::Config { trace::config::Config { diff --git a/crates/air/src/fixtures/decommitment.rs b/crates/air/src/fixtures/decommitment.rs index bdfe6da..26453b8 100644 --- a/crates/air/src/fixtures/decommitment.rs +++ b/crates/air/src/fixtures/decommitment.rs @@ -1,5 +1,5 @@ -use cairovm_verifier_commitment::table; use starknet_crypto::Felt; +use swiftness_commitment::table; use crate::trace; diff --git a/crates/air/src/fixtures/witness.rs b/crates/air/src/fixtures/witness.rs index cc86fe5..1f75ae8 100644 --- a/crates/air/src/fixtures/witness.rs +++ b/crates/air/src/fixtures/witness.rs @@ -1,6 +1,6 @@ use crate::trace::Witness; -use cairovm_verifier_commitment::{table, vector}; use starknet_crypto::Felt; +use swiftness_commitment::{table, vector}; pub fn get() -> Witness { Witness { diff --git a/crates/air/src/layout/dex/global_values.rs b/crates/air/src/layout/dex/global_values.rs index c89b37e..2716518 100644 --- a/crates/air/src/layout/dex/global_values.rs +++ b/crates/air/src/layout/dex/global_values.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use starknet_core::serde::unsigned_field_element::UfeHex; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/crates/air/src/layout/dex/mod.rs b/crates/air/src/layout/dex/mod.rs index 873f1c4..e374300 100644 --- a/crates/air/src/layout/dex/mod.rs +++ b/crates/air/src/layout/dex/mod.rs @@ -7,10 +7,10 @@ use crate::{ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, }; use bail_out::ensure; -use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; use global_values::{EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; use starknet_core::types::NonZeroFelt; use starknet_crypto::{poseidon_hash_many, Felt}; +use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit}; use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; @@ -211,7 +211,7 @@ impl LayoutTrait for Layout { ) } fn traces_commit( - transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + transcript: &mut swiftness_transcript::transcript::Transcript, unsent_commitment: &crate::trace::UnsentCommitment, config: crate::trace::config::Config, ) -> crate::trace::Commitment { diff --git a/crates/air/src/layout/mod.rs b/crates/air/src/layout/mod.rs index 96d032c..e41741e 100644 --- a/crates/air/src/layout/mod.rs +++ b/crates/air/src/layout/mod.rs @@ -1,6 +1,6 @@ use crate::{domains::StarkDomains, public_memory::PublicInput}; -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; pub mod dex; pub mod recursive; diff --git a/crates/air/src/layout/recursive/global_values.rs b/crates/air/src/layout/recursive/global_values.rs index 704ff71..e15c969 100644 --- a/crates/air/src/layout/recursive/global_values.rs +++ b/crates/air/src/layout/recursive/global_values.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use starknet_core::serde::unsigned_field_element::UfeHex; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/crates/air/src/layout/recursive/mod.rs b/crates/air/src/layout/recursive/mod.rs index 426612b..f1f5486 100644 --- a/crates/air/src/layout/recursive/mod.rs +++ b/crates/air/src/layout/recursive/mod.rs @@ -7,10 +7,10 @@ use crate::{ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, }; use bail_out::ensure; -use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; use global_values::{EcPoint, GlobalValues, InteractionElements}; use starknet_core::types::NonZeroFelt; use starknet_crypto::{poseidon_hash_many, Felt}; +use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit}; use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; @@ -213,7 +213,7 @@ impl LayoutTrait for Layout { ) } fn traces_commit( - transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + transcript: &mut swiftness_transcript::transcript::Transcript, unsent_commitment: &crate::trace::UnsentCommitment, config: crate::trace::config::Config, ) -> crate::trace::Commitment { diff --git a/crates/air/src/layout/recursive_with_poseidon/global_values.rs b/crates/air/src/layout/recursive_with_poseidon/global_values.rs index 7ac7259..9b07ff5 100644 --- a/crates/air/src/layout/recursive_with_poseidon/global_values.rs +++ b/crates/air/src/layout/recursive_with_poseidon/global_values.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use starknet_core::serde::unsigned_field_element::UfeHex; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/crates/air/src/layout/recursive_with_poseidon/mod.rs b/crates/air/src/layout/recursive_with_poseidon/mod.rs index 84fb424..811f548 100644 --- a/crates/air/src/layout/recursive_with_poseidon/mod.rs +++ b/crates/air/src/layout/recursive_with_poseidon/mod.rs @@ -11,10 +11,10 @@ use crate::{ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, }; use bail_out::ensure; -use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; use global_values::{EcPoint, GlobalValues, InteractionElements}; use starknet_core::types::NonZeroFelt; use starknet_crypto::{poseidon_hash_many, Felt}; +use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit}; use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; @@ -255,7 +255,7 @@ impl LayoutTrait for Layout { ) } fn traces_commit( - transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + transcript: &mut swiftness_transcript::transcript::Transcript, unsent_commitment: &crate::trace::UnsentCommitment, config: crate::trace::config::Config, ) -> crate::trace::Commitment { diff --git a/crates/air/src/layout/small/global_values.rs b/crates/air/src/layout/small/global_values.rs index c89b37e..2716518 100644 --- a/crates/air/src/layout/small/global_values.rs +++ b/crates/air/src/layout/small/global_values.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use starknet_core::serde::unsigned_field_element::UfeHex; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/crates/air/src/layout/small/mod.rs b/crates/air/src/layout/small/mod.rs index f51020c..ca64d3f 100644 --- a/crates/air/src/layout/small/mod.rs +++ b/crates/air/src/layout/small/mod.rs @@ -7,10 +7,10 @@ use crate::{ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, }; use bail_out::ensure; -use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; use global_values::{EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; use starknet_core::types::NonZeroFelt; use starknet_crypto::{poseidon_hash_many, Felt}; +use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit}; use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; @@ -211,7 +211,7 @@ impl LayoutTrait for Layout { ) } fn traces_commit( - transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + transcript: &mut swiftness_transcript::transcript::Transcript, unsent_commitment: &crate::trace::UnsentCommitment, config: crate::trace::config::Config, ) -> crate::trace::Commitment { diff --git a/crates/air/src/layout/starknet/global_values.rs b/crates/air/src/layout/starknet/global_values.rs index 0b0379d..a58d0e5 100644 --- a/crates/air/src/layout/starknet/global_values.rs +++ b/crates/air/src/layout/starknet/global_values.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use starknet_core::serde::unsigned_field_element::UfeHex; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/crates/air/src/layout/starknet/mod.rs b/crates/air/src/layout/starknet/mod.rs index 8d63c49..d589752 100644 --- a/crates/air/src/layout/starknet/mod.rs +++ b/crates/air/src/layout/starknet/mod.rs @@ -13,10 +13,10 @@ use crate::{ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, }; use bail_out::ensure; -use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; use global_values::{CurveConfig, EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; use starknet_core::types::NonZeroFelt; use starknet_crypto::{poseidon_hash_many, Felt}; +use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit}; use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; @@ -296,7 +296,7 @@ impl LayoutTrait for Layout { ) } fn traces_commit( - transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + transcript: &mut swiftness_transcript::transcript::Transcript, unsent_commitment: &crate::trace::UnsentCommitment, config: crate::trace::config::Config, ) -> crate::trace::Commitment { diff --git a/crates/air/src/layout/starknet_with_keccak/global_values.rs b/crates/air/src/layout/starknet_with_keccak/global_values.rs index 1845e7c..e8f792b 100644 --- a/crates/air/src/layout/starknet_with_keccak/global_values.rs +++ b/crates/air/src/layout/starknet_with_keccak/global_values.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use starknet_core::serde::unsigned_field_element::UfeHex; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/crates/air/src/layout/starknet_with_keccak/mod.rs b/crates/air/src/layout/starknet_with_keccak/mod.rs index 8f542b3..0b67dca 100644 --- a/crates/air/src/layout/starknet_with_keccak/mod.rs +++ b/crates/air/src/layout/starknet_with_keccak/mod.rs @@ -15,10 +15,10 @@ use crate::{ public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, }; use bail_out::ensure; -use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; use global_values::{CurveConfig, EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; use starknet_core::types::NonZeroFelt; use starknet_crypto::{poseidon_hash_many, Felt}; +use swiftness_commitment::table::{commit::table_commit, decommit::table_decommit}; use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; @@ -330,7 +330,7 @@ impl LayoutTrait for Layout { ) } fn traces_commit( - transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + transcript: &mut swiftness_transcript::transcript::Transcript, unsent_commitment: &crate::trace::UnsentCommitment, config: crate::trace::config::Config, ) -> crate::trace::Commitment { diff --git a/crates/air/src/trace/config.rs b/crates/air/src/trace/config.rs index b6fedf9..723700d 100644 --- a/crates/air/src/trace/config.rs +++ b/crates/air/src/trace/config.rs @@ -11,17 +11,17 @@ use crate::layout::starknet::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; #[cfg(feature = "starknet_with_keccak")] use crate::layout::starknet_with_keccak::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; -use cairovm_verifier_commitment::vector; use serde::{Deserialize, Serialize}; use starknet_crypto::Felt; +use swiftness_commitment::vector; const MAX_N_COLUMNS: Felt = Felt::from_hex_unchecked("0x80"); // Configuration for the Traces component. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Config { - pub original: cairovm_verifier_commitment::table::config::Config, - pub interaction: cairovm_verifier_commitment::table::config::Config, + pub original: swiftness_commitment::table::config::Config, + pub interaction: swiftness_commitment::table::config::Config, } impl Config { diff --git a/crates/air/src/trace/decommit.rs b/crates/air/src/trace/decommit.rs index fd01ccf..c150bef 100644 --- a/crates/air/src/trace/decommit.rs +++ b/crates/air/src/trace/decommit.rs @@ -1,4 +1,4 @@ -use cairovm_verifier_commitment::table; +use swiftness_commitment::table; use thiserror::Error; #[derive(Error, Debug)] diff --git a/crates/air/src/trace/mod.rs b/crates/air/src/trace/mod.rs index dabd9e8..bbaa610 100644 --- a/crates/air/src/trace/mod.rs +++ b/crates/air/src/trace/mod.rs @@ -21,12 +21,12 @@ pub struct UnsentCommitment { #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct Commitment { // Commitment to the first trace. - pub original: cairovm_verifier_commitment::table::types::Commitment, + pub original: swiftness_commitment::table::types::Commitment, // The interaction elements that were sent to the prover after the first trace commitment (e.g. // memory interaction). pub interaction_elements: InteractionElements, // Commitment to the second (interaction) trace. - pub interaction: cairovm_verifier_commitment::table::types::Commitment, + pub interaction: swiftness_commitment::table::types::Commitment, } // Responses for queries to the AIR commitment. @@ -34,14 +34,14 @@ pub struct Commitment { #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Decommitment { // Responses for queries to the original trace. - pub original: cairovm_verifier_commitment::table::types::Decommitment, + pub original: swiftness_commitment::table::types::Decommitment, // Responses for queries to the interaction trace. - pub interaction: cairovm_verifier_commitment::table::types::Decommitment, + pub interaction: swiftness_commitment::table::types::Decommitment, } // A witness for a decommitment of the AIR traces over queries. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Witness { - pub original: cairovm_verifier_commitment::table::types::Witness, - pub interaction: cairovm_verifier_commitment::table::types::Witness, + pub original: swiftness_commitment::table::types::Witness, + pub interaction: swiftness_commitment::table::types::Witness, } diff --git a/crates/commitment/Cargo.toml b/crates/commitment/Cargo.toml index 5b1b014..a4f141a 100644 --- a/crates/commitment/Cargo.toml +++ b/crates/commitment/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_commitment" +name = "swiftness_commitment" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] serde_with.workspace = true @@ -19,7 +18,7 @@ thiserror.workspace = true crypto-bigint.workspace = true blake2.workspace = true -cairovm_verifier_transcript.workspace = true +swiftness_transcript.workspace = true [features] default = ["keccak"] diff --git a/crates/commitment/README.md b/crates/commitment/README.md new file mode 100644 index 0000000..08b9291 --- /dev/null +++ b/crates/commitment/README.md @@ -0,0 +1 @@ +# Swiftness Commitment CairoVM Verifier \ No newline at end of file diff --git a/crates/commitment/src/table/commit.rs b/crates/commitment/src/table/commit.rs index 5a3d50b..84a0bc1 100644 --- a/crates/commitment/src/table/commit.rs +++ b/crates/commitment/src/table/commit.rs @@ -1,7 +1,7 @@ use super::{config::Config, types::Commitment}; use crate::vector::commit::vector_commit; -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; pub fn table_commit( transcript: &mut Transcript, diff --git a/crates/commitment/src/table/tests/table_commitment_commit.rs b/crates/commitment/src/table/tests/table_commitment_commit.rs index 7dc8508..b95a528 100644 --- a/crates/commitment/src/table/tests/table_commitment_commit.rs +++ b/crates/commitment/src/table/tests/table_commitment_commit.rs @@ -1,5 +1,5 @@ -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use crate::{ table::{self, commit::table_commit}, diff --git a/crates/commitment/src/vector/commit.rs b/crates/commitment/src/vector/commit.rs index 58c0679..ab75d33 100644 --- a/crates/commitment/src/vector/commit.rs +++ b/crates/commitment/src/vector/commit.rs @@ -1,5 +1,5 @@ -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use super::{config::Config, types::Commitment}; diff --git a/crates/commitment/src/vector/tests/vector_commitment_commit.rs b/crates/commitment/src/vector/tests/vector_commitment_commit.rs index 8393d8b..6bab5cc 100644 --- a/crates/commitment/src/vector/tests/vector_commitment_commit.rs +++ b/crates/commitment/src/vector/tests/vector_commitment_commit.rs @@ -1,5 +1,5 @@ -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use crate::vector::{commit::vector_commit, config::Config, types::Commitment}; diff --git a/crates/fri/Cargo.toml b/crates/fri/Cargo.toml index 7d94f38..d458107 100644 --- a/crates/fri/Cargo.toml +++ b/crates/fri/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_fri" +name = "swiftness_fri" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] serde_with.workspace = true @@ -16,6 +15,6 @@ starknet-core.workspace = true starknet-crypto.workspace = true thiserror.workspace = true -cairovm_verifier_air.workspace = true -cairovm_verifier_commitment.workspace = true -cairovm_verifier_transcript.workspace = true +swiftness_air.workspace = true +swiftness_commitment.workspace = true +swiftness_transcript.workspace = true diff --git a/crates/fri/README.md b/crates/fri/README.md new file mode 100644 index 0000000..0cc1bdd --- /dev/null +++ b/crates/fri/README.md @@ -0,0 +1 @@ +# Swiftness Fri CairoVM Verifier \ No newline at end of file diff --git a/crates/fri/src/config.rs b/crates/fri/src/config.rs index b1c977d..2a8dee5 100644 --- a/crates/fri/src/config.rs +++ b/crates/fri/src/config.rs @@ -20,7 +20,7 @@ pub struct Config { pub n_layers: Felt, // Array of size n_layers - 1, each entry is a configuration of a table commitment for the // corresponding inner layer. - pub inner_layers: Vec, + pub inner_layers: Vec, // Array of size n_layers, each entry represents the FRI step size, // i.e. the number of FRI-foldings between layer i and i+1. #[serde_as(as = "Vec")] @@ -98,5 +98,5 @@ pub enum Error { #[error("log input size mismatch, expected {expected}, got {actual}")] LogInputSizeMismatch { expected: Felt, actual: Felt }, #[error("vector validation failed: {0}")] - VectorValidationFailed(#[from] cairovm_verifier_commitment::vector::config::Error), + VectorValidationFailed(#[from] swiftness_commitment::vector::config::Error), } diff --git a/crates/fri/src/fixtures/commitment.rs b/crates/fri/src/fixtures/commitment.rs index 9acecaf..e15bec1 100644 --- a/crates/fri/src/fixtures/commitment.rs +++ b/crates/fri/src/fixtures/commitment.rs @@ -1,8 +1,8 @@ -use cairovm_verifier_commitment::{ +use starknet_crypto::Felt; +use swiftness_commitment::{ table::{config::Config as TableCommitmentConfig, types::Commitment as TableCommitment}, vector::{config::Config as VectorCommitmentConfig, types::Commitment as VectorCommitment}, }; -use starknet_crypto::Felt; use crate::types::Commitment as FriCommitment; diff --git a/crates/fri/src/fixtures/config.rs b/crates/fri/src/fixtures/config.rs index d4b78b1..5a5666e 100644 --- a/crates/fri/src/fixtures/config.rs +++ b/crates/fri/src/fixtures/config.rs @@ -1,6 +1,6 @@ use crate::config::Config; -use cairovm_verifier_commitment::{table, vector}; use starknet_crypto::Felt; +use swiftness_commitment::{table, vector}; pub fn get() -> Config { Config { diff --git a/crates/fri/src/fixtures/witness.rs b/crates/fri/src/fixtures/witness.rs index aea8e37..9895b80 100644 --- a/crates/fri/src/fixtures/witness.rs +++ b/crates/fri/src/fixtures/witness.rs @@ -1,11 +1,11 @@ use std::vec; use crate::types::{LayerWitness, Witness}; -use cairovm_verifier_commitment::{ +use starknet_crypto::Felt; +use swiftness_commitment::{ table::types::Witness as TableCommitmentWitness, vector::types::Witness as VectorCommitmentWitness, }; -use starknet_crypto::Felt; pub fn get() -> Witness { Witness { diff --git a/crates/fri/src/fri.rs b/crates/fri/src/fri.rs index 0454dc1..fa64681 100644 --- a/crates/fri/src/fri.rs +++ b/crates/fri/src/fri.rs @@ -1,11 +1,11 @@ -use cairovm_verifier_commitment::table::{ +use starknet_crypto::Felt; +use swiftness_commitment::table::{ commit::table_commit, config::Config as TableCommitmentConfig, decommit::table_decommit, types::{Commitment as TableCommitment, Decommitment as TableDecommitment}, }; -use cairovm_verifier_transcript::transcript::Transcript; -use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use crate::{ config::Config as FriConfig, diff --git a/crates/fri/src/tests/commit.rs b/crates/fri/src/tests/commit.rs index 452dce3..370af31 100644 --- a/crates/fri/src/tests/commit.rs +++ b/crates/fri/src/tests/commit.rs @@ -1,5 +1,5 @@ -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use crate::{ fixtures::{commitment, config, unsent_commitment}, diff --git a/crates/fri/src/types.rs b/crates/fri/src/types.rs index 020b319..2fc9a8f 100644 --- a/crates/fri/src/types.rs +++ b/crates/fri/src/types.rs @@ -23,7 +23,7 @@ pub struct UnsentCommitment { pub struct Commitment { pub config: Config, // Array of size n_layers - 1 containing table commitments for each inner layer. - pub inner_layers: Vec, + pub inner_layers: Vec, // Array of size n_layers, of one evaluation point for each layer. #[serde_as(as = "Vec")] pub eval_points: Vec, @@ -61,5 +61,5 @@ pub struct LayerWitness { #[serde_as(as = "Vec")] pub leaves: Vec, // Table commitment witnesses for decommiting all the leaves. - pub table_witness: cairovm_verifier_commitment::table::types::Witness, + pub table_witness: swiftness_commitment::table::types::Witness, } diff --git a/crates/pow/Cargo.toml b/crates/pow/Cargo.toml index 3e4777f..e69fba8 100644 --- a/crates/pow/Cargo.toml +++ b/crates/pow/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_pow" +name = "swiftness_pow" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] bail-out.workspace = true @@ -17,7 +16,7 @@ starknet-types-core.workspace = true thiserror.workspace = true blake2.workspace = true -cairovm_verifier_transcript.workspace = true +swiftness_transcript.workspace = true [features] default = ["keccak"] diff --git a/crates/pow/README.md b/crates/pow/README.md new file mode 100644 index 0000000..eea477d --- /dev/null +++ b/crates/pow/README.md @@ -0,0 +1 @@ +# Swiftness Proof of Work CairoVM Verifier \ No newline at end of file diff --git a/crates/pow/src/pow.rs b/crates/pow/src/pow.rs index 4b9de58..a14dccb 100644 --- a/crates/pow/src/pow.rs +++ b/crates/pow/src/pow.rs @@ -8,9 +8,9 @@ use sha3::Digest; use sha3::Keccak256; use bail_out::assure; -use cairovm_verifier_transcript::transcript::Transcript; use serde::{Deserialize, Serialize}; use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use crate::config::Config; diff --git a/crates/stark/Cargo.toml b/crates/stark/Cargo.toml index b6c37d4..617b946 100644 --- a/crates/stark/Cargo.toml +++ b/crates/stark/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_stark" +name = "swiftness_stark" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] bail-out.workspace = true @@ -17,11 +16,11 @@ starknet-crypto.workspace = true thiserror.workspace = true wasm-bindgen.workspace = true -cairovm_verifier_air.workspace = true -cairovm_verifier_commitment.workspace = true -cairovm_verifier_fri.workspace = true -cairovm_verifier_pow.workspace = true -cairovm_verifier_transcript.workspace = true +swiftness_air.workspace = true +swiftness_commitment.workspace = true +swiftness_fri.workspace = true +swiftness_pow.workspace = true +swiftness_transcript.workspace = true [features] default = ["recursive"] diff --git a/crates/stark/README.md b/crates/stark/README.md new file mode 100644 index 0000000..712dadf --- /dev/null +++ b/crates/stark/README.md @@ -0,0 +1 @@ +# Swiftness Stark CairoVM Verifier \ No newline at end of file diff --git a/crates/stark/src/commit.rs b/crates/stark/src/commit.rs index 1bfb88b..e48d8d7 100644 --- a/crates/stark/src/commit.rs +++ b/crates/stark/src/commit.rs @@ -1,28 +1,22 @@ #[cfg(feature = "dex")] -use cairovm_verifier_air::layout::dex::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; +use swiftness_air::layout::dex::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; #[cfg(feature = "recursive")] -use cairovm_verifier_air::layout::recursive::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; +use swiftness_air::layout::recursive::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; #[cfg(feature = "recursive_with_poseidon")] -use cairovm_verifier_air::layout::recursive_with_poseidon::{ - CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS, -}; +use swiftness_air::layout::recursive_with_poseidon::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; #[cfg(feature = "small")] -use cairovm_verifier_air::layout::small::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; +use swiftness_air::layout::small::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; #[cfg(feature = "starknet")] -use cairovm_verifier_air::layout::starknet::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; +use swiftness_air::layout::starknet::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; #[cfg(feature = "starknet_with_keccak")] -use cairovm_verifier_air::layout::starknet_with_keccak::{ - CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS, -}; +use swiftness_air::layout::starknet_with_keccak::{CONSTRAINT_DEGREE, MASK_SIZE, N_CONSTRAINTS}; -use cairovm_verifier_air::{ - domains::StarkDomains, layout::LayoutTrait, public_memory::PublicInput, -}; -use cairovm_verifier_commitment::table::commit::table_commit; -use cairovm_verifier_fri::fri::fri_commit; -use cairovm_verifier_pow::pow; -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_air::{domains::StarkDomains, layout::LayoutTrait, public_memory::PublicInput}; +use swiftness_commitment::table::commit::table_commit; +use swiftness_fri::fri::fri_commit; +use swiftness_pow::pow; +use swiftness_transcript::transcript::Transcript; // STARK commitment phase. pub fn stark_commit( diff --git a/crates/stark/src/config.rs b/crates/stark/src/config.rs index 0033282..46a9331 100644 --- a/crates/stark/src/config.rs +++ b/crates/stark/src/config.rs @@ -6,10 +6,10 @@ use starknet_crypto::Felt; #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct StarkConfig { - pub traces: cairovm_verifier_air::trace::config::Config, - pub composition: cairovm_verifier_commitment::table::config::Config, - pub fri: cairovm_verifier_fri::config::Config, - pub proof_of_work: cairovm_verifier_pow::config::Config, + pub traces: swiftness_air::trace::config::Config, + pub composition: swiftness_commitment::table::config::Config, + pub fri: swiftness_fri::config::Config, + pub proof_of_work: swiftness_pow::config::Config, // Log2 of the trace domain size. #[serde_as(as = "UfeHex")] pub log_trace_domain_size: Felt, @@ -50,7 +50,7 @@ impl StarkConfig { } } -use cairovm_verifier_commitment::vector; +use swiftness_commitment::vector; use thiserror::Error; #[derive(Error, Debug)] @@ -58,9 +58,9 @@ pub enum Error { #[error("Vector Error")] Vector(#[from] vector::config::Error), #[error("Fri Error")] - Fri(#[from] cairovm_verifier_fri::config::Error), + Fri(#[from] swiftness_fri::config::Error), #[error("Pow Error")] - Pow(#[from] cairovm_verifier_pow::config::Error), + Pow(#[from] swiftness_pow::config::Error), #[error("Trace Error")] - Trace(#[from] cairovm_verifier_air::trace::config::Error), + Trace(#[from] swiftness_air::trace::config::Error), } diff --git a/crates/stark/src/fixtures/commitment.rs b/crates/stark/src/fixtures/commitment.rs index 13d6c7f..160aa52 100644 --- a/crates/stark/src/fixtures/commitment.rs +++ b/crates/stark/src/fixtures/commitment.rs @@ -1,9 +1,9 @@ -use cairovm_verifier_air::layout::recursive::global_values::InteractionElements; -use cairovm_verifier_commitment::{ +use starknet_crypto::Felt; +use swiftness_air::layout::recursive::global_values::InteractionElements; +use swiftness_commitment::{ table::{config::Config as TableCommitmentConfig, types::Commitment as TableCommitment}, vector::{config::Config as VectorCommitmentConfig, types::Commitment as VectorCommitment}, }; -use starknet_crypto::Felt; use crate::types::StarkCommitment; @@ -11,7 +11,7 @@ use super::oods_values; pub fn get() -> StarkCommitment { StarkCommitment { - traces: cairovm_verifier_air::fixtures::commitment::get(), + traces: swiftness_air::fixtures::commitment::get(), composition: TableCommitment { config: TableCommitmentConfig { n_columns: Felt::from_hex_unchecked("0x2"), @@ -439,6 +439,6 @@ pub fn get() -> StarkCommitment { "0x7a702a902f300a47fb79f18195691f2f1cd57fa870b6d4e12d365ed59231506", ), ], - fri: cairovm_verifier_fri::fixtures::commitment::get(), + fri: swiftness_fri::fixtures::commitment::get(), } } diff --git a/crates/stark/src/fixtures/config.rs b/crates/stark/src/fixtures/config.rs index d74ce61..0766ff3 100644 --- a/crates/stark/src/fixtures/config.rs +++ b/crates/stark/src/fixtures/config.rs @@ -1,14 +1,14 @@ -use cairovm_verifier_commitment::{ +use starknet_crypto::Felt; +use swiftness_commitment::{ table::config::Config as TableCommitmentConfig, vector::config::Config as VectorCommitmentConfig, }; -use starknet_crypto::Felt; use crate::config::StarkConfig; pub fn get() -> StarkConfig { StarkConfig { - traces: cairovm_verifier_air::fixtures::config::get(), + traces: swiftness_air::fixtures::config::get(), composition: TableCommitmentConfig { n_columns: Felt::from_hex_unchecked("0x2"), vector: VectorCommitmentConfig { @@ -16,8 +16,8 @@ pub fn get() -> StarkConfig { n_verifier_friendly_commitment_layers: Felt::from_hex_unchecked("0x64"), }, }, - fri: cairovm_verifier_fri::fixtures::config::get(), - proof_of_work: cairovm_verifier_pow::fixtures::config::get(), + fri: swiftness_fri::fixtures::config::get(), + proof_of_work: swiftness_pow::fixtures::config::get(), log_trace_domain_size: Felt::from_hex_unchecked("0x12"), n_queries: Felt::from_hex_unchecked("0xa"), log_n_cosets: Felt::from_hex_unchecked("0x2"), diff --git a/crates/stark/src/fixtures/domains.rs b/crates/stark/src/fixtures/domains.rs index 48f801a..b4ca842 100644 --- a/crates/stark/src/fixtures/domains.rs +++ b/crates/stark/src/fixtures/domains.rs @@ -1,5 +1,5 @@ -use cairovm_verifier_air::domains::StarkDomains; use starknet_crypto::Felt; +use swiftness_air::domains::StarkDomains; pub fn get() -> StarkDomains { StarkDomains { diff --git a/crates/stark/src/fixtures/unsent_commitment.rs b/crates/stark/src/fixtures/unsent_commitment.rs index 52e4927..c1396c5 100644 --- a/crates/stark/src/fixtures/unsent_commitment.rs +++ b/crates/stark/src/fixtures/unsent_commitment.rs @@ -4,12 +4,12 @@ use crate::{fixtures::oods_values, types::StarkUnsentCommitment}; pub fn get() -> StarkUnsentCommitment { StarkUnsentCommitment { - traces: cairovm_verifier_air::fixtures::unsent_commitment::get(), + traces: swiftness_air::fixtures::unsent_commitment::get(), composition: Felt::from_hex_unchecked( "0x30b93bbd6b193eb57d9f818202b899b7e8e09b0c7d183537fe85f4e6b6f4373", ), oods_values: oods_values::get(), - fri: cairovm_verifier_fri::fixtures::unsent_commitment::get(), - proof_of_work: cairovm_verifier_pow::fixtures::unsent_commitment::get(), + fri: swiftness_fri::fixtures::unsent_commitment::get(), + proof_of_work: swiftness_pow::fixtures::unsent_commitment::get(), } } diff --git a/crates/stark/src/fixtures/witness.rs b/crates/stark/src/fixtures/witness.rs index b3f2371..3bed483 100644 --- a/crates/stark/src/fixtures/witness.rs +++ b/crates/stark/src/fixtures/witness.rs @@ -1,15 +1,15 @@ -use cairovm_verifier_commitment::{ +use starknet_crypto::Felt; +use swiftness_commitment::{ table::types::{Decommitment as TableDecommitment, Witness as TableCommitmentWitness}, vector::types::Witness as VectorCommitmentWitness, }; -use starknet_crypto::Felt; use crate::types::StarkWitness; pub fn get() -> StarkWitness { StarkWitness { - traces_decommitment: cairovm_verifier_air::fixtures::decommitment::get(), - traces_witness: cairovm_verifier_air::fixtures::witness::get(), + traces_decommitment: swiftness_air::fixtures::decommitment::get(), + traces_witness: swiftness_air::fixtures::witness::get(), composition_decommitment: TableDecommitment { values: vec![ Felt::from_hex_unchecked( @@ -560,6 +560,6 @@ pub fn get() -> StarkWitness { ], }, }, - fri_witness: cairovm_verifier_fri::fixtures::witness::get(), + fri_witness: swiftness_fri::fixtures::witness::get(), } } diff --git a/crates/stark/src/oods.rs b/crates/stark/src/oods.rs index 4e8f598..7e48db6 100644 --- a/crates/stark/src/oods.rs +++ b/crates/stark/src/oods.rs @@ -1,23 +1,23 @@ use bail_out::assure; +use starknet_crypto::Felt; #[cfg(feature = "dex")] -use cairovm_verifier_air::layout::dex::CONSTRAINT_DEGREE; +use swiftness_air::layout::dex::CONSTRAINT_DEGREE; #[cfg(feature = "recursive")] -use cairovm_verifier_air::layout::recursive::CONSTRAINT_DEGREE; +use swiftness_air::layout::recursive::CONSTRAINT_DEGREE; #[cfg(feature = "recursive_with_poseidon")] -use cairovm_verifier_air::layout::recursive_with_poseidon::CONSTRAINT_DEGREE; +use swiftness_air::layout::recursive_with_poseidon::CONSTRAINT_DEGREE; #[cfg(feature = "small")] -use cairovm_verifier_air::layout::small::CONSTRAINT_DEGREE; +use swiftness_air::layout::small::CONSTRAINT_DEGREE; #[cfg(feature = "starknet")] -use cairovm_verifier_air::layout::starknet::CONSTRAINT_DEGREE; +use swiftness_air::layout::starknet::CONSTRAINT_DEGREE; #[cfg(feature = "starknet_with_keccak")] -use cairovm_verifier_air::layout::starknet_with_keccak::CONSTRAINT_DEGREE; -use cairovm_verifier_air::{ +use swiftness_air::layout::starknet_with_keccak::CONSTRAINT_DEGREE; +use swiftness_air::{ layout::{CompositionPolyEvalError, LayoutTrait}, public_memory::PublicInput, trace, }; -use cairovm_verifier_commitment::table; -use starknet_crypto::Felt; +use swiftness_commitment::table; pub struct OodsEvaluationInfo { pub oods_values: Vec, diff --git a/crates/stark/src/queries.rs b/crates/stark/src/queries.rs index bccb010..28f4f87 100644 --- a/crates/stark/src/queries.rs +++ b/crates/stark/src/queries.rs @@ -1,7 +1,7 @@ -use cairovm_verifier_air::domains::StarkDomains; -use cairovm_verifier_transcript::transcript::Transcript; use starknet_core::types::NonZeroFelt; use starknet_crypto::Felt; +use swiftness_air::domains::StarkDomains; +use swiftness_transcript::transcript::Transcript; const FIELD_GENERATOR: Felt = Felt::from_hex_unchecked("0x3"); diff --git a/crates/stark/src/stark.rs b/crates/stark/src/stark.rs index 193cd77..7528fca 100644 --- a/crates/stark/src/stark.rs +++ b/crates/stark/src/stark.rs @@ -2,19 +2,17 @@ use crate::{ commit::stark_commit, queries::generate_queries, types::StarkProof, verify::stark_verify, }; #[cfg(feature = "dex")] -use cairovm_verifier_air::layout::dex::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use swiftness_air::layout::dex::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; #[cfg(feature = "recursive")] -use cairovm_verifier_air::layout::recursive::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use swiftness_air::layout::recursive::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; #[cfg(feature = "recursive_with_poseidon")] -use cairovm_verifier_air::layout::recursive_with_poseidon::{ - NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND, -}; +use swiftness_air::layout::recursive_with_poseidon::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; #[cfg(feature = "small")] -use cairovm_verifier_air::layout::small::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use swiftness_air::layout::small::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; #[cfg(feature = "starknet")] -use cairovm_verifier_air::layout::starknet::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use swiftness_air::layout::starknet::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; #[cfg(feature = "starknet_with_keccak")] -use cairovm_verifier_air::layout::starknet_with_keccak::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use swiftness_air::layout::starknet_with_keccak::{NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; impl StarkProof { pub fn verify(&self, security_bits: Felt) -> Result<(Felt, Felt), Error> { @@ -61,12 +59,12 @@ impl StarkProof { } } -use cairovm_verifier_air::{ +use starknet_crypto::Felt; +use swiftness_air::{ domains::StarkDomains, layout::{LayoutTrait, PublicInputError}, }; -use cairovm_verifier_transcript::transcript::Transcript; -use starknet_crypto::Felt; +use swiftness_transcript::transcript::Transcript; use thiserror::Error; #[derive(Error, Debug)] diff --git a/crates/stark/src/tests/commit.rs b/crates/stark/src/tests/commit.rs index 6feec1e..cda0389 100644 --- a/crates/stark/src/tests/commit.rs +++ b/crates/stark/src/tests/commit.rs @@ -1,6 +1,6 @@ -use cairovm_verifier_air::{fixtures::public_input, layout::recursive::Layout}; -use cairovm_verifier_transcript::transcript::Transcript; use starknet_crypto::Felt; +use swiftness_air::{fixtures::public_input, layout::recursive::Layout}; +use swiftness_transcript::transcript::Transcript; use crate::{ commit::stark_commit, diff --git a/crates/stark/src/tests/proof.rs b/crates/stark/src/tests/proof.rs index 23a4635..ee3f6e8 100644 --- a/crates/stark/src/tests/proof.rs +++ b/crates/stark/src/tests/proof.rs @@ -2,8 +2,8 @@ use crate::{ fixtures::{config, unsent_commitment, witness}, types::StarkProof, }; -use cairovm_verifier_air::{fixtures::public_input, layout::recursive::Layout}; use starknet_crypto::Felt; +use swiftness_air::{fixtures::public_input, layout::recursive::Layout}; #[test] fn test_stark_proof_fibonacci_verify() { diff --git a/crates/stark/src/tests/verify.rs b/crates/stark/src/tests/verify.rs index 7de58b8..e7626bf 100644 --- a/crates/stark/src/tests/verify.rs +++ b/crates/stark/src/tests/verify.rs @@ -2,8 +2,8 @@ use crate::{ fixtures::{commitment, domains, witness}, verify::stark_verify, }; -use cairovm_verifier_air::layout::recursive::{Layout, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; -use cairovm_verifier_fri::fixtures::queries; +use swiftness_air::layout::recursive::{Layout, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use swiftness_fri::fixtures::queries; #[test] pub fn test_stark_verify() { diff --git a/crates/stark/src/types.rs b/crates/stark/src/types.rs index 239c406..6adc794 100644 --- a/crates/stark/src/types.rs +++ b/crates/stark/src/types.rs @@ -8,7 +8,7 @@ use crate::config; #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct StarkProof { pub config: config::StarkConfig, - pub public_input: cairovm_verifier_air::public_memory::PublicInput, + pub public_input: swiftness_air::public_memory::PublicInput, pub unsent_commitment: StarkUnsentCommitment, pub witness: StarkWitness, } @@ -16,7 +16,7 @@ pub struct StarkProof { #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct StarkUnsentCommitment { - pub traces: cairovm_verifier_air::trace::UnsentCommitment, + pub traces: swiftness_air::trace::UnsentCommitment, #[serde_as(as = "UfeHex")] pub composition: Felt, // n_oods_values elements. The i-th value is the evaluation of the i-th mask item polynomial at @@ -24,29 +24,29 @@ pub struct StarkUnsentCommitment { // corresponding column shifted by the corresponding row_offset. #[serde_as(as = "Vec")] pub oods_values: Vec, - pub fri: cairovm_verifier_fri::types::UnsentCommitment, - pub proof_of_work: cairovm_verifier_pow::pow::UnsentCommitment, + pub fri: swiftness_fri::types::UnsentCommitment, + pub proof_of_work: swiftness_pow::pow::UnsentCommitment, } #[serde_as] #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct StarkCommitment { - pub traces: cairovm_verifier_air::trace::Commitment, - pub composition: cairovm_verifier_commitment::table::types::Commitment, + pub traces: swiftness_air::trace::Commitment, + pub composition: swiftness_commitment::table::types::Commitment, #[serde_as(as = "UfeHex")] pub interaction_after_composition: Felt, #[serde_as(as = "Vec")] pub oods_values: Vec, #[serde_as(as = "Vec")] pub interaction_after_oods: Vec, - pub fri: cairovm_verifier_fri::types::Commitment, + pub fri: swiftness_fri::types::Commitment, } #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct StarkWitness { - pub traces_decommitment: cairovm_verifier_air::trace::Decommitment, - pub traces_witness: cairovm_verifier_air::trace::Witness, - pub composition_decommitment: cairovm_verifier_commitment::table::types::Decommitment, - pub composition_witness: cairovm_verifier_commitment::table::types::Witness, - pub fri_witness: cairovm_verifier_fri::types::Witness, + pub traces_decommitment: swiftness_air::trace::Decommitment, + pub traces_witness: swiftness_air::trace::Witness, + pub composition_decommitment: swiftness_commitment::table::types::Decommitment, + pub composition_witness: swiftness_commitment::table::types::Witness, + pub fri_witness: swiftness_fri::types::Witness, } diff --git a/crates/stark/src/verify.rs b/crates/stark/src/verify.rs index 91b9747..e81b160 100644 --- a/crates/stark/src/verify.rs +++ b/crates/stark/src/verify.rs @@ -1,10 +1,10 @@ -use cairovm_verifier_air::{domains::StarkDomains, layout::LayoutTrait}; -use cairovm_verifier_commitment::table::decommit::table_decommit; -use cairovm_verifier_fri::{ +use starknet_crypto::Felt; +use swiftness_air::{domains::StarkDomains, layout::LayoutTrait}; +use swiftness_commitment::table::decommit::table_decommit; +use swiftness_fri::{ fri::{self, fri_verify}, types, }; -use starknet_crypto::Felt; use crate::{ oods::{eval_oods_boundary_poly_at_points, OodsEvaluationInfo}, @@ -68,8 +68,8 @@ pub enum Error { FriError(#[from] fri::Error), #[error("TraceDecommit Error")] - TraceDecommitError(#[from] cairovm_verifier_air::trace::decommit::Error), + TraceDecommitError(#[from] swiftness_air::trace::decommit::Error), #[error("TableDecommit Error")] - TableDecommitError(#[from] cairovm_verifier_commitment::table::decommit::Error), + TableDecommitError(#[from] swiftness_commitment::table::decommit::Error), } diff --git a/crates/transcript/Cargo.toml b/crates/transcript/Cargo.toml index 44ec0fd..142411f 100644 --- a/crates/transcript/Cargo.toml +++ b/crates/transcript/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_transcript" +name = "swiftness_transcript" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] starknet-crypto.workspace = true \ No newline at end of file diff --git a/crates/transcript/README.md b/crates/transcript/README.md new file mode 100644 index 0000000..afa73bf --- /dev/null +++ b/crates/transcript/README.md @@ -0,0 +1 @@ +# Swiftness Transcript CairoVM Verifier \ No newline at end of file diff --git a/proof-parser/Cargo.toml b/proof-parser/Cargo.toml index e45fbef..e507e7e 100644 --- a/proof-parser/Cargo.toml +++ b/proof-parser/Cargo.toml @@ -1,12 +1,11 @@ [package] -name = "cairovm_verifier_proof_parser" +name = "swiftness_proof_parser" description.workspace = true edition.workspace = true -homepage.workspace = true license-file.workspace = true -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] serde.workspace = true @@ -18,8 +17,8 @@ clap = { version = "4.5.1", features = ["derive"] } regex = "1.10.3" serde_json = "1.0.114" -cairovm_verifier_stark.workspace = true -cairovm_verifier_commitment.workspace = true -cairovm_verifier_fri.workspace = true -cairovm_verifier_air.workspace = true -cairovm_verifier_pow.workspace = true \ No newline at end of file +swiftness_stark.workspace = true +swiftness_commitment.workspace = true +swiftness_fri.workspace = true +swiftness_air.workspace = true +swiftness_pow.workspace = true \ No newline at end of file diff --git a/proof-parser/README.md b/proof-parser/README.md new file mode 100644 index 0000000..7d4e2bc --- /dev/null +++ b/proof-parser/README.md @@ -0,0 +1 @@ +# Swiftness Proof Parser CairoVM Verifier \ No newline at end of file diff --git a/proof-parser/src/conversion.rs b/proof-parser/src/conversion.rs index c403bb1..f9506fd 100644 --- a/proof-parser/src/conversion.rs +++ b/proof-parser/src/conversion.rs @@ -1,4 +1,4 @@ -use cairovm_verifier_air::{ +use swiftness_air::{ public_memory::PublicInput as PublicInputVerifier, trace::{ config::Config as TraceConfigVerifier, Decommitment as TraceDecommitmentVerifier, @@ -6,7 +6,7 @@ use cairovm_verifier_air::{ }, types::{AddrValue, Page, SegmentInfo as SegmentInfoVerifier}, }; -use cairovm_verifier_commitment::{ +use swiftness_commitment::{ table::{ config::Config as TableConfigVerifier, types::{ @@ -17,17 +17,17 @@ use cairovm_verifier_commitment::{ config::Config as VectorConfigVerifier, types::Witness as VectorCommitmentWitnessVerifier, }, }; -use cairovm_verifier_fri::{ +use swiftness_fri::{ config::Config as FriConfigVerifier, types::{ LayerWitness, UnsentCommitment as FriUnsentCommitmentVerifier, Witness as FriWitnessVerifier, }, }; -use cairovm_verifier_pow::{ +use swiftness_pow::{ config::Config as PowConfigVerifier, pow::UnsentCommitment as PowUnsentCommitmentVerifier, }; -use cairovm_verifier_stark::{ +use swiftness_stark::{ config::StarkConfig as StarkConfigVerifier, types::{ StarkProof as StarkProofVerifier, StarkUnsentCommitment as StarkUnsentCommitmentVerifier, diff --git a/proof-parser/src/lib.rs b/proof-parser/src/lib.rs index b820a4b..ea953b8 100644 --- a/proof-parser/src/lib.rs +++ b/proof-parser/src/lib.rs @@ -12,7 +12,7 @@ extern crate clap; extern crate num_bigint; extern crate regex; extern crate serde; -use cairovm_verifier_stark::types::StarkProof as StarkProofFromVerifier; +use swiftness_stark::types::StarkProof as StarkProofFromVerifier; pub fn parse(input: String) -> anyhow::Result { let proof_json = serde_json::from_str::(&input)?; diff --git a/wasm-binding/Cargo.toml b/wasm-binding/Cargo.toml index ebe53aa..4c24945 100644 --- a/wasm-binding/Cargo.toml +++ b/wasm-binding/Cargo.toml @@ -1,20 +1,19 @@ [package] -name = "cairovm_verifier_wasm" -description = "CairoVM verifier - starknet_with_keccak & blake2s" +name = "swiftness_wasm" +description = "Swiftness CairoVM Verifier | swiftness-{layout}-{commitment hash}" edition.workspace = true -homepage.workspace = true license = "Apache-2.0" -readme.workspace = true +readme = "README.md" repository.workspace = true -version.workspace = true +version = "0.0.3" [dependencies] serde_json.workspace = true wasm-bindgen.workspace = true -cairovm_verifier_air = { workspace = true, default-features = false } -cairovm_verifier_stark = { workspace = true, default-features = false } -cairovm_verifier_proof_parser = { workspace = true, default-features = false } +swiftness_air = { workspace = true } +swiftness_stark = { workspace = true } +swiftness_proof_parser = { workspace = true } [lib] crate-type = ["cdylib", "rlib"] @@ -23,7 +22,7 @@ crate-type = ["cdylib", "rlib"] getrandom = { version = "0.2.15", features = ["js"] } [features] -default = ["starknet_with_keccak", "keccak"] +default = ["starknet_with_keccak", "blake2s"] dex = [] recursive = [] recursive_with_poseidon = [] diff --git a/wasm-binding/README.md b/wasm-binding/README.md index 5557fe6..d334fe9 100644 --- a/wasm-binding/README.md +++ b/wasm-binding/README.md @@ -1,17 +1,24 @@ -# Cairo-VM Verifier +# Swiftness CairoVM Verifier ![Version](https://img.shields.io/badge/v0.0.3-green?style=flat-square&logo=git&logoColor=white&label=version) -![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/cairovm-verifier/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration) +![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/swiftness/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration) This is the Rust implementation of the Cairo-VM STARK verifier with layouts. The code is inspired by StarkWare's [Cairo-verifier](https://github.com/starkware-libs/cairo-lang) implementation in Cairo0. -### Install wasm-pack -```sh -cargo install wasm-pack +### Example usage +```js +import init, { verify_proof } from 'swiftness-{layout}-{commitment hash}'; + +async function run(proof_json) { + await init(); // Initialize the Wasm module + try { + const [programHash, programOutput] = JSON.parse( await verify_proof(proof_json) ); + } catch (err) { + console.error(`Verification failed: ${err}`); + } +} ``` -### Build WASM: +## Contributing -```sh -wasm-pack build --target bundler --workspace --features starknet_with_keccak,blake2s --no-default-features -``` \ No newline at end of file +Feel free to open issues or submit pull requests to help improve this project. diff --git a/wasm-binding/pkg/README.md b/wasm-binding/pkg/README.md deleted file mode 100644 index f422517..0000000 --- a/wasm-binding/pkg/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Cairo-VM Verifier - -![Version](https://img.shields.io/badge/v0.0.3-green?style=flat-square&logo=git&logoColor=white&label=version) -![Continuous Integration](https://img.shields.io/github/actions/workflow/status/iosis-tech/cairovm-verifier/ci.yml?style=flat-square&logo=githubactions&logoColor=white&label=Continuous%20Integration) - -This is the Rust implementation of the Cairo-VM STARK verifier with layouts. The code is inspired by StarkWare's [Cairo-verifier](https://github.com/starkware-libs/cairo-lang) implementation in Cairo0. - -### Example usage -```js -import init, { cairovm_verify } from 'cairovm_verifier'; - -async function run(proof_json) { - await init(); // Initialize the Wasm module - try { - const [programHash, programOutput] = JSON.parse( await cairovm_verify(proof_json) ); - } catch (err) { - console.error(`Verification failed: ${err}`); - } -} -``` - -## Contributing - -Feel free to open issues or submit pull requests to help improve this project. diff --git a/wasm-binding/pkg/package.json b/wasm-binding/pkg/package.json deleted file mode 100644 index 3674ad6..0000000 --- a/wasm-binding/pkg/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "cairovm_verifier", - "type": "module", - "keywords": ["stark", "wasm", "verifier", "cairovm"], - "description": "CairoVM verifier - starknet_with_keccak & blake2s", - "version": "0.0.3", - "license": "Apache-2.0", - "repository": { - "type": "git", - "url": "https://github.com/iosis-tech/cairovm-verifier" - }, - "files": [ - "cairovm_verifier_wasm_bg.wasm", - "cairovm_verifier_wasm.js", - "cairovm_verifier_wasm.d.ts" - ], - "main": "cairovm_verifier_wasm.js", - "homepage": "", - "types": "cairovm_verifier_wasm.d.ts", - "sideEffects": [ - "./snippets/*" - ] -} \ No newline at end of file diff --git a/wasm-binding/src/lib.rs b/wasm-binding/src/lib.rs index 5fd8925..608d9fb 100644 --- a/wasm-binding/src/lib.rs +++ b/wasm-binding/src/lib.rs @@ -1,21 +1,21 @@ #[cfg(feature = "dex")] -use cairovm_verifier_air::layout::dex::Layout; +use swiftness_air::layout::dex::Layout; #[cfg(feature = "recursive")] -use cairovm_verifier_air::layout::recursive::Layout; +use swiftness_air::layout::recursive::Layout; #[cfg(feature = "recursive_with_poseidon")] -use cairovm_verifier_air::layout::recursive_with_poseidon::Layout; +use swiftness_air::layout::recursive_with_poseidon::Layout; #[cfg(feature = "small")] -use cairovm_verifier_air::layout::small::Layout; +use swiftness_air::layout::small::Layout; #[cfg(feature = "starknet")] -use cairovm_verifier_air::layout::starknet::Layout; +use swiftness_air::layout::starknet::Layout; #[cfg(feature = "starknet_with_keccak")] -use cairovm_verifier_air::layout::starknet_with_keccak::Layout; +use swiftness_air::layout::starknet_with_keccak::Layout; -use cairovm_verifier_proof_parser::parse; +use swiftness_proof_parser::parse; use wasm_bindgen::prelude::*; #[wasm_bindgen] -pub fn cairovm_verify(proof: JsValue) -> Result { +pub fn verify_proof(proof: JsValue) -> Result { // Deserialize input from JsValue to Rust types let proof_str: String = proof.as_string().ok_or_else(|| JsError::new("Invalid input"))?; @@ -24,9 +24,8 @@ pub fn cairovm_verify(proof: JsValue) -> Result { // Get security bits and verify let security_bits = stark_proof.config.security_bits(); - let (program_hash, output_hash) = stark_proof - .verify::(security_bits) - .map_err(|e| JsError::new(&e.to_string()))?; + let (program_hash, output_hash) = + stark_proof.verify::(security_bits).map_err(|e| JsError::new(&e.to_string()))?; // Serialize result to JsValue let result = serde_json::to_value((program_hash, output_hash))