diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml index 9db41f29..01f80283 100644 --- a/.github/workflows/clean.yml +++ b/.github/workflows/clean.yml @@ -12,7 +12,7 @@ jobs: uses: actions/checkout@v3 - name: install rust - uses: risc0/risc0/.github/actions/rustup@42266f0b6bd28de208b7c47b50dd4bcf241f76ce + uses: risc0/risc0/.github/actions/rustup@release-0.19 - name: cargo clean run: cargo clean diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ea71fef9..2fd64fea 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: submodules: recursive - name: install rust - uses: risc0/risc0/.github/actions/rustup@42266f0b6bd28de208b7c47b50dd4bcf241f76ce + uses: risc0/risc0/.github/actions/rustup@release-0.19 - name: install cargo-sort uses: risc0/cargo-install@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c25a0d08..2709d9b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,6 +14,9 @@ concurrency: env: RUST_BACKTRACE: "1" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RISC0_VERSION: 0.20.1 + RISC0_TOOLCHAIN_VERSION: test-release-2 jobs: integration: @@ -30,11 +33,22 @@ jobs: submodules: recursive - name: install rust - uses: risc0/risc0/.github/actions/rustup@42266f0b6bd28de208b7c47b50dd4bcf241f76ce + uses: risc0/risc0/.github/actions/rustup@release-0.19 - name: Install Foundry uses: risc0/foundry-toolchain@2fe7e70b520f62368a0e3c464f997df07ede420f + - name: Install cargo-install + uses: risc0/cargo-install@v1 + with: + crate: cargo-binstall + + - name: Cargo binstall cargo-risczero + run: cargo binstall -y --force cargo-risczero@${{ env.RISC0_VERSION }} + + - name: risczero toolchain install + run: cargo risczero install --version $RISC0_TOOLCHAIN_VERSION + - name: build solidity contracts run: forge build @@ -58,11 +72,22 @@ jobs: submodules: recursive - name: install rust - uses: risc0/risc0/.github/actions/rustup@42266f0b6bd28de208b7c47b50dd4bcf241f76ce + uses: risc0/risc0/.github/actions/rustup@release-0.19 - name: Install Foundry uses: risc0/foundry-toolchain@2fe7e70b520f62368a0e3c464f997df07ede420f + - name: Install cargo-install + uses: risc0/cargo-install@v1 + with: + crate: cargo-binstall + + - name: Cargo binstall cargo-risczero + run: cargo binstall -y --force cargo-risczero@${{ env.RISC0_VERSION }} + + - name: risczero toolchain install + run: cargo risczero install --version $RISC0_TOOLCHAIN_VERSION + - name: build solidity contracts run: forge build diff --git a/.gitignore b/.gitignore index c216758b..492cc153 100644 --- a/.gitignore +++ b/.gitignore @@ -8,9 +8,6 @@ out/ /broadcast/*/11155111/ /broadcast/**/dry-run/ -# Docs -docs/ - # Dotenv file .env diff --git a/.gitmodules b/.gitmodules index 222221f7..a7430ba0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,4 +13,4 @@ [submodule "lib/risc0"] path = lib/risc0 url = https://github.com/risc0/risc0 - branch = release-0.17 + branch = "release-0.20" diff --git a/Cargo.lock b/Cargo.lock index 09dd8d6c..48dd7923 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,30 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - [[package]] name = "addr2line" version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "cpp_demangle", - "fallible-iterator", "gimli", - "memmap2", - "object", - "rustc-demangle", - "smallvec 1.11.0", ] [[package]] @@ -57,13 +40,14 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -75,11 +59,31 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloy-primitives" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + [[package]] name = "alloy-rlp" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f938f00332d63a5b0ac687bd6f46d03884638948921d9f8b50c59563d421ae25" +checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef" dependencies = [ "arrayvec", "bytes", @@ -87,16 +91,32 @@ dependencies = [ ] [[package]] -name = "ammonia" -version = "3.3.0" +name = "alloy-sol-macro" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170" +checksum = "8a98ad1696a2e17f010ae8e43e9f2a1e930ed176a8e3ff77acfeff6dfb07b42c" dependencies = [ - "html5ever", - "maplit", - "once_cell", - "tendril", - "url", + "const-hex", + "dunce", + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.48", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-types" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98d7107bed88e8f09f0ddcc3335622d87bfb6821f3e0c7473329fb1cfad5e015" +dependencies = [ + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", ] [[package]] @@ -116,16 +136,15 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] @@ -150,17 +169,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "1.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -170,13 +189,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] -name = "ariadne" -version = "0.2.0" +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-snark", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.7", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367fd0ad87307588d087544707bc5fbf4805ded96c7db922b70d368fa1cb5702" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "unicode-width", - "yansi 0.5.1", + "ark-ff 0.4.2", + "ark-poly", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "zeroize", ] [[package]] @@ -190,7 +245,7 @@ dependencies = [ "ark-serialize 0.3.0", "ark-std 0.3.0", "derivative", - "num-bigint 0.4.3", + "num-bigint", "num-traits", "paste", "rustc_version 0.3.3", @@ -210,7 +265,7 @@ dependencies = [ "derivative", "digest 0.10.7", "itertools", - "num-bigint 0.4.3", + "num-bigint", "num-traits", "paste", "rustc_version 0.4.0", @@ -243,7 +298,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "num-traits", "quote", "syn 1.0.109", @@ -255,13 +310,53 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "num-traits", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff 0.4.2", + "ark-poly", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber 0.2.25", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -278,9 +373,33 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", - "num-bigint 0.4.3", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", ] [[package]] @@ -303,15 +422,6 @@ dependencies = [ "rand", ] -[[package]] -name = "array-init" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23589ecb866b460d3a0f1278834750268c607e8e28a1b982c907219f3178cd72" -dependencies = [ - "nodrop", -] - [[package]] name = "arrayvec" version = "0.7.4" @@ -340,26 +450,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "async-priority-channel" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c21678992e1b21bebfe2bc53ab5f5f68c106eddab31b24e0bb06e9b715a86640" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-recursion" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", -] - [[package]] name = "async-trait" version = "0.1.72" @@ -368,7 +458,7 @@ checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -382,18 +472,6 @@ dependencies = [ "rustc_version 0.4.0", ] -[[package]] -name = "atomic" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" - -[[package]] -name = "atomic-take" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" - [[package]] name = "auto_impl" version = "1.1.0" @@ -412,22 +490,31 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "autotools" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" +dependencies = [ + "cc", +] + [[package]] name = "axum" -version = "0.6.20" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" dependencies = [ "async-trait", "axum-core", "axum-macros", - "bitflags 1.3.2", "bytes", "futures-util", - "headers", - "http", - "http-body", - "hyper", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.1.0", + "hyper-util", "itoa", "matchit", "memchr", @@ -444,35 +531,54 @@ dependencies = [ "tower", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "axum-macros" -version = "0.3.8" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdca6a10ecad987bda04e95606ef85a5417dcaac1a78455242d72e031e2b6b62" +checksum = "00c055ee2d014ae5981ce1016374e8213682aa14d9bf40e48ab48b5f3ef20eaa" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand", + "tokio", ] [[package]] @@ -574,7 +680,6 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium 0.7.0", - "serde", "tap", "wyz", ] @@ -608,50 +713,45 @@ dependencies = [ [[package]] name = "bonsai-ethereum-contracts" -version = "0.1.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500fc613726ab11d784a115217f921633c871513e96b0d1cddd863f2bd377f64" dependencies = [ "anyhow", - "clap", - "ethers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "foundry-cli", + "ethers", ] [[package]] name = "bonsai-ethereum-relay" -version = "0.1.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bbe24ac42f57ec3a9080f01dd675431ea9f66d8aa4480a5e9f2d907092ca91c" dependencies = [ "anyhow", "async-trait", "axum", + "backoff", "bincode", "bonsai-ethereum-contracts", "bonsai-rest-api-mock", "bonsai-sdk", "clap", "displaydoc", - "ethers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers", + "ethers-signers", "futures", "hex", - "hyper", "pin-project", "reqwest", "risc0-zkvm", - "rusoto_core", - "rusoto_kms", - "semver 1.0.18", "serde", "serde_json", - "snafu", "thiserror", "tokio", "tokio-stream", "tower-http", "tracing", - "tracing-subscriber", - "typed-builder", + "tracing-subscriber 0.3.17", "utoipa", "utoipa-swagger-ui", "validator", @@ -661,6 +761,8 @@ dependencies = [ name = "bonsai-ethereum-relay-cli" version = "0.1.0" dependencies = [ + "alloy-primitives", + "alloy-sol-types", "anyhow", "bincode", "bonsai-ethereum-relay", @@ -668,9 +770,10 @@ dependencies = [ "bonsai-starter-methods", "bytemuck", "clap", - "ethers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers", + "ethers-signers", "hex", + "humantime", "risc0-build", "risc0-zkvm", "tokio", @@ -678,32 +781,29 @@ dependencies = [ [[package]] name = "bonsai-rest-api-mock" -version = "0.1.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e326649da91b08b03c4543c40db9603459cd2a206614d4431ff1efde2403e821" dependencies = [ "anyhow", "axum", "bincode", "bonsai-sdk", - "displaydoc", "hex", - "hyper", "risc0-zkvm", - "serde", "serde_json", "thiserror", "tokio", - "tokio-stream", "tower-http", "tracing", - "tracing-subscriber", "uuid 1.4.1", ] [[package]] name = "bonsai-sdk" -version = "0.3.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f0a6b186dce8b2f945bd3ecc5d35a36280400200ed57878c7c3f2aeb01632e" dependencies = [ "reqwest", "serde", @@ -728,32 +828,6 @@ dependencies = [ "sha2 0.9.9", ] -[[package]] -name = "bstr" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" -dependencies = [ - "memchr", - "regex-automata 0.3.6", - "serde", -] - -[[package]] -name = "btoi" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" -dependencies = [ - "num-traits", -] - -[[package]] -name = "build_const" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" - [[package]] name = "bumpalo" version = "3.13.0" @@ -783,7 +857,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -833,9 +907,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" +checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ "serde", ] @@ -868,40 +942,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "cassowary" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" - -[[package]] -name = "cast" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "chrono", - "ethers-contract 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-signers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "evm-disassembler", - "eyre", - "foundry-common", - "foundry-config", - "foundry-evm", - "foundry-utils", - "futures", - "hex", - "num_cpus", - "rayon", - "rusoto_core", - "rusoto_kms", - "rustc-hex", - "serde", - "serde_json", -] - [[package]] name = "cc" version = "1.0.82" @@ -926,11 +966,8 @@ checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ "android-tzdata", "iana-time-zone", - "js-sys", "num-traits", "serde", - "time 0.1.45", - "wasm-bindgen", "winapi", ] @@ -946,60 +983,36 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.21" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" +checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6" dependencies = [ "clap_builder", "clap_derive", - "once_cell", ] [[package]] name = "clap_builder" -version = "4.3.21" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" +checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" dependencies = [ "anstream", "anstyle", "clap_lex", - "once_cell", "strsim", - "terminal_size", - "unicase", - "unicode-width", ] [[package]] -name = "clap_complete" -version = "4.3.2" +name = "clap_derive" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce" -dependencies = [ - "clap", -] - -[[package]] -name = "clap_complete_fig" -version = "4.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fee1d30a51305a6c2ed3fc5709be3c8af626c9c958e04dd9ae94e27bcbce9f" -dependencies = [ - "clap", - "clap_complete", -] - -[[package]] -name = "clap_derive" -version = "4.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -1008,19 +1021,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" -[[package]] -name = "clearscreen" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f3f22f1a586604e62efd23f78218f3ccdecf7a33c4500db2d37d85a24fe994" -dependencies = [ - "nix", - "terminfo", - "thiserror", - "which", - "winapi", -] - [[package]] name = "coins-bip32" version = "0.8.3" @@ -1077,111 +1077,22 @@ dependencies = [ "thiserror", ] -[[package]] -name = "coins-ledger" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863cc93703bfc6f02f4401b42663b767783179f4080d89a0c4876766c7c0fb78" -dependencies = [ - "async-trait", - "byteorder", - "cfg-if", - "futures", - "hex", - "hidapi-rusb", - "js-sys", - "lazy_static", - "libc", - "log", - "matches", - "nix", - "serde", - "tap", - "thiserror", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", -] - -[[package]] -name = "color-eyre" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" -dependencies = [ - "backtrace", - "color-spantrace", - "eyre", - "indenter", - "once_cell", - "owo-colors", - "tracing-error", -] - -[[package]] -name = "color-spantrace" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" -dependencies = [ - "once_cell", - "owo-colors", - "tracing-core", - "tracing-error", -] - [[package]] name = "colorchoice" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" -[[package]] -name = "comfy-table" -version = "6.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" -dependencies = [ - "crossterm 0.26.1", - "strum 0.24.1", - "strum_macros 0.24.3", - "unicode-width", -] - -[[package]] -name = "command-group" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5080df6b0f0ecb76cab30808f00d937ba725cebe266a3da8cd89dff92f2a9916" -dependencies = [ - "async-trait", - "nix", - "tokio", - "winapi", -] - -[[package]] -name = "console" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.45.0", -] - [[package]] name = "const-hex" -version = "1.6.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268f52aae268980d03dd9544c1ea591965b2735b038d6998d6e4ab37c8c24445" +checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" dependencies = [ "cfg-if", "cpufeatures", "hex", + "proptest", "serde", ] @@ -1219,15 +1130,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" -[[package]] -name = "cpp_demangle" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee34052ee3d93d6d8f3e6f81d85c47921f6653a19a7b70e939e3e602d893a674" -dependencies = [ - "cfg-if", -] - [[package]] name = "cpufeatures" version = "0.2.9" @@ -1276,7 +1178,7 @@ dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", + "memoffset", "scopeguard", ] @@ -1289,47 +1191,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossterm" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" -dependencies = [ - "bitflags 1.3.2", - "crossterm_winapi", - "libc", - "mio", - "parking_lot", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" -dependencies = [ - "bitflags 1.3.2", - "crossterm_winapi", - "libc", - "mio", - "parking_lot", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - [[package]] name = "crunchy" version = "0.2.2" @@ -1423,16 +1284,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "dialoguer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" -dependencies = [ - "console", - "shell-words", -] - [[package]] name = "diff" version = "0.1.13" @@ -1460,31 +1311,13 @@ dependencies = [ "subtle", ] -[[package]] -name = "directories" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" -dependencies = [ - "dirs-sys 0.4.1", -] - [[package]] name = "dirs" version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -1508,18 +1341,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -1539,20 +1360,14 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - -[[package]] -name = "dotenvy" -version = "0.15.7" +name = "docker-generate" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" +checksum = "ccf673e0848ef09fa4aeeba78e681cf651c0c7d35f76ee38cec8e55bc32fa111" [[package]] name = "downcast-rs" @@ -1586,18 +1401,6 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" -[[package]] -name = "elasticlunr-rs" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e83863a500656dfa214fee6682de9c5b9f03de6860fec531235ed2ae9f6571" -dependencies = [ - "regex", - "serde", - "serde_derive", - "serde_json", -] - [[package]] name = "elf" version = "0.7.2" @@ -1632,12 +1435,6 @@ dependencies = [ "log", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encoding_rs" version = "0.8.32" @@ -1647,12 +1444,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - [[package]] name = "enr" version = "0.8.1" @@ -1671,64 +1462,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "enr" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0be7b2ac146c1f99fe245c02d16af0696450d8e06c135db75e10eeb9e642c20d" -dependencies = [ - "base64 0.21.2", - "bytes", - "hex", - "k256", - "log", - "rand", - "rlp", - "serde", - "serde-hex", - "sha3", - "zeroize", -] - -[[package]] -name = "enumn" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b893c4eb2dc092c811165f84dc7447fae16fb66521717968c34c509b39b1a5c5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", -] - -[[package]] -name = "env_logger" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -[[package]] -name = "erased-serde" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da96524cc884f6558f1769b6c46686af2fe8e8b4cd253bd5a3cdba8181b8e070" -dependencies = [ - "serde", -] - [[package]] name = "errno" version = "0.3.2" @@ -1737,7 +1476,7 @@ checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1826,29 +1565,14 @@ version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96b4026b97da8281276744741fac7eb385da905f6093c583331fa2953fdd4253" dependencies = [ - "ethers-addressbook 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-contract 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-etherscan 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-middleware 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-solc 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "ethers" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "ethers-addressbook 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-contract 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-middleware 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-signers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-solc 2.0.8 (git+https://github.com/gakonst/ethers-rs)", + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", ] [[package]] @@ -1857,18 +1581,7 @@ version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edcb6ffefc230d8c42874c51b28dc11dbb8de50b27a8fdf92648439d6baa68dc" dependencies = [ - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", + "ethers-core", "once_cell", "serde", "serde_json", @@ -1880,11 +1593,11 @@ version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d4719a44c3d37ab07c6dea99ab174068d8c35e441b60b6c20ce4e48357273e8" dependencies = [ - "ethers-contract-abigen 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-contract-derive 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "ethers-signers", "futures-util", "hex", "once_cell", @@ -1894,25 +1607,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "ethers-contract" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "const-hex", - "ethers-contract-abigen 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-contract-derive 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-signers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "ethers-contract-abigen" version = "2.0.8" @@ -1921,8 +1615,8 @@ checksum = "155ea1b84d169d231317ed86e307af6f2bed6b40dd17e5e94bc84da21cadb21c" dependencies = [ "Inflector", "dunce", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-etherscan 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core", + "ethers-etherscan", "eyre", "hex", "prettyplease", @@ -1932,31 +1626,8 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.28", - "toml 0.7.6", - "walkdir", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest", - "serde", - "serde_json", - "syn 2.0.28", - "toml 0.7.6", + "syn 2.0.48", + "toml", "walkdir", ] @@ -1967,35 +1638,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8567ff196c4a37c1a8c90ec73bda0ad2062e191e4f0a6dc4d943e2ec4830fc88" dependencies = [ "Inflector", - "ethers-contract-abigen 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-contract-abigen", + "ethers-core", "hex", "proc-macro2", "quote", "serde_json", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] -name = "ethers-contract-derive" +name = "ethers-core" version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.28", -] - -[[package]] -name = "ethers-core" -version = "2.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60ca2514feb98918a0a31de7e1983c29f2267ebf61b2dc5d4294f91e5b866623" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60ca2514feb98918a0a31de7e1983c29f2267ebf61b2dc5d4294f91e5b866623" dependencies = [ "arrayvec", "bytes", @@ -2013,37 +1669,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum 0.25.0", - "syn 2.0.28", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-core" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata 0.17.0", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum 0.25.0", - "syn 2.0.28", + "strum", + "syn 2.0.48", "tempfile", "thiserror", "tiny-keccak", @@ -2056,23 +1683,8 @@ version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22b3a8269d3df0ed6364bc05b4735b95f4bf830ce3aef87d5e760fb0e93e5b91" dependencies = [ - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-solc 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest", - "semver 1.0.18", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-solc 2.0.8 (git+https://github.com/gakonst/ethers-rs)", + "ethers-core", + "ethers-solc", "reqwest", "semver 1.0.18", "serde", @@ -2089,37 +1701,11 @@ checksum = "e0c339aad74ae5c451d27e0e49c7a3c7d22620b119b4f9291d7aa21f72d7f366" dependencies = [ "async-trait", "auto_impl", - "ethers-contract 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-etherscan 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-signers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", "futures-channel", "futures-locks", "futures-util", @@ -2144,52 +1730,16 @@ dependencies = [ "auto_impl", "base64 0.21.2", "bytes", - "enr 0.8.1", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "enr", + "ethers-core", "futures-channel", "futures-core", "futures-timer", "futures-util", "hashers", "hex", - "http", - "instant", - "once_cell", - "pin-project", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite 0.19.0", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-providers" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.2", - "bytes", - "const-hex", - "enr 0.9.0", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http", + "http 0.2.9", "instant", - "jsonwebtoken", "once_cell", "pin-project", "reqwest", @@ -2197,7 +1747,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tokio-tungstenite 0.19.0", + "tokio-tungstenite", "tracing", "tracing-futures", "url", @@ -2218,7 +1768,7 @@ dependencies = [ "coins-bip39", "elliptic-curve", "eth-keystore", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core", "hex", "rand", "rusoto_core", @@ -2229,33 +1779,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "ethers-signers" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "coins-ledger", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "futures-executor", - "futures-util", - "home", - "rand", - "rusoto_core", - "rusoto_kms", - "semver 1.0.18", - "sha2 0.10.7", - "spki", - "thiserror", - "tracing", - "trezor-client", -] - [[package]] name = "ethers-solc" version = "2.0.8" @@ -2264,7 +1787,7 @@ checksum = "7a6c2b9625a2c639d46625f88acc2092a3cb35786c37f7c2128b3ca20f639b3c" dependencies = [ "cfg-if", "dunce", - "ethers-core 2.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core", "glob", "hex", "home", @@ -2278,63 +1801,13 @@ dependencies = [ "serde", "serde_json", "solang-parser", - "svm-rs 0.2.23", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi 0.5.1", -] - -[[package]] -name = "ethers-solc" -version = "2.0.8" -source = "git+https://github.com/gakonst/ethers-rs#5b2fdadb8f12b96893fe984f4ac9bc1855924177" -dependencies = [ - "cfg-if", - "const-hex", - "dirs 5.0.1", - "dunce", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "futures-util", - "glob", - "home", - "md-5 0.10.5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.18", - "serde", - "serde_json", - "sha2 0.10.7", - "solang-parser", - "svm-rs 0.3.0", - "svm-rs-builds", + "svm-rs", "thiserror", "tiny-keccak", "tokio", "tracing", "walkdir", - "yansi 0.5.1", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "evm-disassembler" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "584e7334177d2dc76c4d618967e5ef102be68c35f454ac363d88b72b854db4a9" -dependencies = [ - "eyre", - "hex", + "yansi", ] [[package]] @@ -2347,12 +1820,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - [[package]] name = "fastrand" version = "2.0.0" @@ -2376,55 +1843,10 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "bitvec 1.0.1", - "byteorder", - "ff_derive", "rand_core", "subtle", ] -[[package]] -name = "ff_derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" -dependencies = [ - "addchain", - "cfg-if", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "figment" -version = "0.10.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4547e226f4c9ab860571e070a9034192b3175580ecea38da34fcdb53a018c9a5" -dependencies = [ - "atomic", - "pear", - "serde", - "toml 0.7.6", - "uncased", - "version_check", -] - -[[package]] -name = "filetime" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", -] - [[package]] name = "fixed-hash" version = "0.8.0" @@ -2460,370 +1882,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "foreign-types" -version = "0.3.2" +name = "form_urlencoded" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "foreign-types-shared", + "percent-encoding", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "fs2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "forge" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "comfy-table", - "ethers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "foundry-common", - "foundry-config", - "foundry-evm", - "foundry-utils", - "glob", - "hex", - "once_cell", - "parking_lot", - "proptest", - "rayon", - "regex", - "rlp", - "semver 1.0.18", - "serde", - "serde_json", - "tokio", - "tracing", - "tracing-subscriber", - "yansi 0.5.1", + "libc", + "winapi", ] [[package]] -name = "forge-doc" -version = "0.1.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ - "auto_impl", - "clap", - "derive_more", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-solc 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "forge-fmt", - "foundry-common", - "foundry-config", - "foundry-utils", - "futures-util", - "itertools", - "mdbook", - "once_cell", - "rayon", - "serde", - "serde_json", - "solang-parser", - "thiserror", - "tokio", - "toml 0.7.6", - "tracing", - "warp", -] - -[[package]] -name = "forge-fmt" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "ariadne", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "foundry-config", - "itertools", - "semver 1.0.18", - "solang-parser", - "thiserror", - "tracing", -] - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "foundry-abi" -version = "0.1.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "ethers-contract 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-contract-abigen 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "foundry-macros", - "syn 2.0.28", -] - -[[package]] -name = "foundry-cli" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "async-trait", - "bytes", - "cast", - "clap", - "clap_complete", - "clap_complete_fig", - "color-eyre", - "comfy-table", - "console", - "dialoguer", - "dotenvy", - "dunce", - "ethers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "forge", - "forge-doc", - "forge-fmt", - "foundry-common", - "foundry-config", - "foundry-evm", - "foundry-utils", - "futures", - "hex", - "indicatif", - "is-terminal", - "itertools", - "once_cell", - "parking_lot", - "path-slash", - "proptest", - "rayon", - "regex", - "reqwest", - "rpassword", - "rustc-hex", - "semver 1.0.18", - "serde", - "serde_json", - "similar", - "solang-parser", - "strsim", - "strum 0.25.0", - "tempfile", - "thiserror", - "tokio", - "tracing", - "tracing-error", - "tracing-subscriber", - "ui", - "vergen", - "walkdir", - "watchexec", - "yansi 0.5.1", -] - -[[package]] -name = "foundry-common" -version = "0.1.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "auto_impl", - "clap", - "comfy-table", - "dunce", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-middleware 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-solc 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "foundry-config", - "foundry-macros", - "globset", - "is-terminal", - "once_cell", - "regex", - "reqwest", - "semver 1.0.18", - "serde", - "serde_json", - "tempfile", - "thiserror", - "tracing", - "walkdir", - "yansi 0.5.1", -] - -[[package]] -name = "foundry-config" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "Inflector", - "dirs-next", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-solc 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "figment", - "globset", - "number_prefix", - "once_cell", - "open-fastrlp", - "path-slash", - "regex", - "reqwest", - "semver 1.0.18", - "serde", - "serde_json", - "serde_regex", - "thiserror", - "toml 0.7.6", - "toml_edit", - "tracing", - "walkdir", -] - -[[package]] -name = "foundry-evm" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "auto_impl", - "bytes", - "ethers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "foundry-abi", - "foundry-common", - "foundry-config", - "foundry-macros", - "foundry-utils", - "futures", - "hashbrown 0.13.2", - "hex", - "itertools", - "jsonpath_lib", - "once_cell", - "ordered-float", - "parking_lot", - "proptest", - "revm", - "semver 1.0.18", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "url", - "walkdir", - "yansi 0.5.1", -] - -[[package]] -name = "foundry-macros" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "foundry-macros-impl", - "serde", - "serde_json", -] - -[[package]] -name = "foundry-macros-impl" -version = "0.0.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", -] - -[[package]] -name = "foundry-utils" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "dunce", - "ethers-addressbook 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-contract 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-core 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-etherscan 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-providers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "ethers-solc 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "forge-fmt", - "futures", - "glob", - "hex", - "once_cell", - "rand", - "reqwest", - "rlp", - "rustc-hex", - "serde", - "serde_json", - "tokio", - "tracing", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "fsevent-sys" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" -dependencies = [ - "libc", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", "futures-util", ] @@ -2878,7 +1972,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -2943,256 +2037,22 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" -dependencies = [ - "fallible-iterator", - "stable_deref_trait", -] - -[[package]] -name = "git2" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044" -dependencies = [ - "bitflags 1.3.2", - "libc", - "libgit2-sys", - "log", - "url", -] - -[[package]] -name = "gix-actor" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848efa0f1210cea8638f95691c82a46f98a74b9e3524f01d4955ebc25a8f84f3" -dependencies = [ - "bstr", - "btoi", - "gix-date", - "itoa", - "nom", - "thiserror", -] - -[[package]] -name = "gix-config" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d252a0eddb6df74600d3d8872dc9fe98835a7da43110411d705b682f49d4ac1" -dependencies = [ - "bstr", - "gix-config-value", - "gix-features", - "gix-glob", - "gix-path", - "gix-ref", - "gix-sec", - "log", - "memchr", - "nom", - "once_cell", - "smallvec 1.11.0", - "thiserror", - "unicode-bom", -] - -[[package]] -name = "gix-config-value" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e874f41437441c02991dcea76990b9058fadfc54b02ab4dd06ab2218af43897" -dependencies = [ - "bitflags 2.4.0", - "bstr", - "gix-path", - "libc", - "thiserror", -] - -[[package]] -name = "gix-date" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc164145670e9130a60a21670d9b6f0f4f8de04e5dd256c51fa5a0340c625902" -dependencies = [ - "bstr", - "itoa", - "thiserror", - "time 0.3.25", -] - -[[package]] -name = "gix-features" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf69b0f5c701cc3ae22d3204b671907668f6437ca88862d355eaf9bc47a4f897" -dependencies = [ - "gix-hash", - "libc", - "sha1_smol", - "walkdir", -] - -[[package]] -name = "gix-fs" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b37a1832f691fdc09910bd267f9a2e413737c1f9ec68c6e31f9e802616278a9" -dependencies = [ - "gix-features", -] - -[[package]] -name = "gix-glob" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07c98204529ac3f24b34754540a852593d2a4c7349008df389240266627a72a" -dependencies = [ - "bitflags 2.4.0", - "bstr", - "gix-features", - "gix-path", -] - -[[package]] -name = "gix-hash" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b422ff2ad9a0628baaad6da468cf05385bf3f5ab495ad5a33cce99b9f41092f" -dependencies = [ - "hex", - "thiserror", -] - -[[package]] -name = "gix-lock" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c693d7f05730fa74a7c467150adc7cea393518410c65f0672f80226b8111555" -dependencies = [ - "gix-tempfile", - "gix-utils", - "thiserror", -] - -[[package]] -name = "gix-object" -version = "0.29.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d96bd620fd08accdd37f70b2183cfa0b001b4f1c6ade8b7f6e15cb3d9e261ce" -dependencies = [ - "bstr", - "btoi", - "gix-actor", - "gix-features", - "gix-hash", - "gix-validate", - "hex", - "itoa", - "nom", - "smallvec 1.11.0", - "thiserror", -] - -[[package]] -name = "gix-path" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18609c8cbec8508ea97c64938c33cd305b75dfc04a78d0c3b78b8b3fd618a77c" -dependencies = [ - "bstr", - "gix-trace", - "home", - "once_cell", - "thiserror", -] - -[[package]] -name = "gix-ref" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e03989e9d49954368e1b526578230fc7189d1634acdfbe79e9ba1de717e15d5" -dependencies = [ - "gix-actor", - "gix-features", - "gix-fs", - "gix-hash", - "gix-lock", - "gix-object", - "gix-path", - "gix-tempfile", - "gix-validate", - "memmap2", - "nom", - "thiserror", -] - -[[package]] -name = "gix-sec" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9615cbd6b456898aeb942cd75e5810c382fbfc48dbbff2fa23ebd2d33dcbe9c7" -dependencies = [ - "bitflags 2.4.0", - "gix-path", - "libc", - "windows", -] - -[[package]] -name = "gix-tempfile" -version = "5.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71a0d32f34e71e86586124225caefd78dabc605d0486de580d717653addf182" -dependencies = [ - "gix-fs", - "libc", - "once_cell", - "parking_lot", - "tempfile", -] - -[[package]] -name = "gix-trace" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836" - -[[package]] -name = "gix-utils" -version = "0.1.5" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ - "fastrand", + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", ] [[package]] -name = "gix-validate" -version = "0.7.7" +name = "gimli" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba9b3737b2cef3dcd014633485f0034b0f1a931ee54aeb7d8f87f177f3c89040" -dependencies = [ - "bstr", - "thiserror", -] +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "glob" @@ -3200,19 +2060,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "globset" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" -dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", -] - [[package]] name = "gloo-timers" version = "0.2.6" @@ -3247,7 +2094,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.9", "indexmap 1.9.3", "slab", "tokio", @@ -3256,17 +2103,22 @@ dependencies = [ ] [[package]] -name = "handlebars" -version = "4.3.7" +name = "h2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" +checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943" dependencies = [ - "log", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 1.0.0", + "indexmap 2.0.0", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] @@ -3282,7 +2134,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ "ahash", - "serde", ] [[package]] @@ -3300,31 +2151,6 @@ dependencies = [ "fxhash", ] -[[package]] -name = "headers" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" -dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", - "bytes", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http", -] - [[package]] name = "heck" version = "0.4.1" @@ -3342,9 +2168,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-literal" @@ -3352,18 +2175,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" -[[package]] -name = "hidapi-rusb" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee9fc48be9eab25c28b413742b38b57b85c10b5efd2d47ef013f82335cbecc8e" -dependencies = [ - "cc", - "libc", - "pkg-config", - "rusb", -] - [[package]] name = "hmac" version = "0.11.0" @@ -3389,28 +2200,25 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] [[package]] -name = "html5ever" -version = "0.26.0" +name = "http" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 1.0.109", + "bytes", + "fnv", + "itoa", ] [[package]] name = "http" -version = "0.2.9" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" dependencies = [ "bytes", "fnv", @@ -3424,15 +2232,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.9", "pin-project-lite", ] [[package]] -name = "http-range-header" -version = "0.3.1" +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.0.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +dependencies = [ + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "pin-project-lite", +] [[package]] name = "httparse" @@ -3462,9 +2287,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.20", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", @@ -3476,14 +2301,33 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.2", + "http 1.0.0", + "http-body 1.0.0", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "tokio", +] + [[package]] name = "hyper-rustls" version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ - "http", - "hyper", + "http 0.2.9", + "hyper 0.14.27", "log", "rustls 0.20.8", "rustls-native-certs", @@ -3498,24 +2342,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" dependencies = [ "futures-util", - "http", - "hyper", + "http 0.2.9", + "hyper 0.14.27", "rustls 0.21.6", "tokio", "tokio-rustls 0.24.1", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67" dependencies = [ "bytes", - "hyper", - "native-tls", + "futures-channel", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "hyper 1.1.0", + "pin-project-lite", + "socket2 0.5.3", "tokio", - "tokio-native-tls", + "tracing", ] [[package]] @@ -3557,41 +2406,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" -[[package]] -name = "ignore" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" -dependencies = [ - "globset", - "lazy_static", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", -] - -[[package]] -name = "ignore-files" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a4d73056a8d335492938cabeef794f38968ef43e6db9bc946638cfd6281003b" -dependencies = [ - "dunce", - "futures", - "gix-config", - "ignore", - "miette", - "project-origins", - "radix_trie", - "thiserror", - "tokio", - "tracing", -] - [[package]] name = "impl-codec" version = "0.6.0" @@ -3657,45 +2471,6 @@ dependencies = [ "serde", ] -[[package]] -name = "indicatif" -version = "0.17.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -] - -[[package]] -name = "inlinable_string" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" - -[[package]] -name = "inotify" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" -dependencies = [ - "bitflags 1.3.2", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", -] - [[package]] name = "inout" version = "0.1.3" @@ -3714,23 +2489,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "inventory" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53088c87cf71c9d4f3372a2cb9eea1e7b8a0b1bf8b7f7d23fe5b76dbb07e63b" - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "ipnet" version = "2.8.0" @@ -3744,8 +2502,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.8", - "windows-sys 0.48.0", + "rustix", + "windows-sys", ] [[package]] @@ -3781,31 +2539,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonpath_lib" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f" -dependencies = [ - "log", - "serde", - "serde_json", -] - -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.2", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "k256" version = "0.13.1" @@ -3829,26 +2562,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "kqueue" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" -dependencies = [ - "kqueue-sys", - "libc", -] - -[[package]] -name = "kqueue-sys" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" -dependencies = [ - "bitflags 1.3.2", - "libc", -] - [[package]] name = "lalrpop" version = "0.20.0" @@ -3877,91 +2590,23 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" -[[package]] -name = "lazy-regex" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff63c423c68ea6814b7da9e88ce585f793c87ddd9e78f646970891769c8235d4" -dependencies = [ - "lazy-regex-proc_macros", - "once_cell", - "regex", -] - -[[package]] -name = "lazy-regex-proc_macros" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "syn 1.0.109", -] - [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "libgit2-sys" -version = "0.15.2+1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa" -dependencies = [ - "cc", - "libc", - "libz-sys", - "pkg-config", -] - -[[package]] -name = "libm" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" - -[[package]] -name = "libusb1-sys" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d0e2afce4245f2c9a418511e5af8718bcaf2fa408aefb259504d1a9cb25f27" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] -name = "libz-sys" -version = "1.1.12" +name = "libc" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] -name = "linux-raw-sys" -version = "0.3.8" +name = "libm" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "linux-raw-sys" @@ -3985,32 +2630,6 @@ version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "markup5ever" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" -dependencies = [ - "log", - "phf 0.10.1", - "phf_codegen 0.10.0", - "string_cache", - "string_cache_codegen", - "tendril", -] - [[package]] name = "matchers" version = "0.1.0" @@ -4020,34 +2639,12 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "matchit" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef" -[[package]] -name = "matrixmultiply" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" -dependencies = [ - "autocfg", - "rawpointer", -] - -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "md-5" version = "0.9.1" @@ -4068,58 +2665,12 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "mdbook" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55eb7c4dad20cc5bc15181c2aaf43d5689d5c3e0b80b50cc4cf0b7fe72a26d9" -dependencies = [ - "ammonia", - "anyhow", - "chrono", - "clap", - "clap_complete", - "elasticlunr-rs", - "env_logger", - "handlebars", - "log", - "memchr", - "once_cell", - "opener", - "pulldown-cmark", - "regex", - "serde", - "serde_json", - "shlex", - "tempfile", - "toml 0.5.11", - "topological-sort", -] - [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.0" @@ -4129,29 +2680,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "miette" -version = "5.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" -dependencies = [ - "miette-derive", - "once_cell", - "thiserror", - "unicode-width", -] - -[[package]] -name = "miette-derive" -version = "5.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", -] - [[package]] name = "mime" version = "0.3.17" @@ -4168,12 +2696,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -4190,42 +2712,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "wasi", + "windows-sys", ] [[package]] -name = "ndarray" -version = "0.15.6" +name = "multimap" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" -dependencies = [ - "matrixmultiply", - "num-complex", - "num-integer", - "num-traits", - "rawpointer", - "rayon", -] +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "new_debug_unreachable" @@ -4233,78 +2728,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec 1.11.0", -] - -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.7.1", - "pin-utils", - "static_assertions", -] - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "normalize-path" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5438dd2b2ff4c6df6e1ce22d825ed2fa93ee2922235cc45186991717f0a892d" - -[[package]] -name = "normpath" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "notify" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" -dependencies = [ - "bitflags 1.3.2", - "crossbeam-channel", - "filetime", - "fsevent-sys", - "inotify", - "kqueue", - "libc", - "mio", - "walkdir", - "windows-sys 0.45.0", -] - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -4315,51 +2738,17 @@ dependencies = [ "winapi", ] -[[package]] -name = "num" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" -dependencies = [ - "num-bigint 0.4.3", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" -dependencies = [ - "num-traits", -] - [[package]] name = "num-derive" version = "0.4.0" @@ -4368,7 +2757,7 @@ checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -4381,29 +2770,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-bigint 0.4.3", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -4442,33 +2808,16 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.28", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", + "syn 2.0.48", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" dependencies = [ - "flate2", "memchr", - "ruzstd", ] [[package]] @@ -4509,74 +2858,10 @@ dependencies = [ ] [[package]] -name = "opener" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c62dcb6174f9cb326eac248f07e955d5d559c272730b6c03e396b443b562788" -dependencies = [ - "bstr", - "normpath", - "winapi", -] - -[[package]] -name = "openssl" -version = "0.10.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-float" -version = "3.7.0" +name = "openssl-probe" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213" -dependencies = [ - "num-traits", -] +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "overload" @@ -4584,12 +2869,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "owo-colors" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" - [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -4635,8 +2914,8 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", - "smallvec 1.11.0", - "windows-targets 0.48.1", + "smallvec", + "windows-targets", ] [[package]] @@ -4684,38 +2963,6 @@ dependencies = [ "hmac 0.12.1", ] -[[package]] -name = "pear" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a386cd715229d399604b50d1361683fe687066f42d56f54be995bc6868f71c" -dependencies = [ - "inlinable_string", - "pear_codegen", - "yansi 1.0.0-rc", -] - -[[package]] -name = "pear_codegen" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f0f13dac8069c139e8300a6510e3f4143ecf5259c60b116a9b271b4ca0d54" -dependencies = [ - "proc-macro2", - "proc-macro2-diagnostics", - "quote", - "syn 2.0.28", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "percent-encoding" version = "2.3.0" @@ -4724,48 +2971,15 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.2" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] -[[package]] -name = "pest_derive" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.28", -] - -[[package]] -name = "pest_meta" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" -dependencies = [ - "once_cell", - "pest", - "sha2 0.10.7", -] - [[package]] name = "petgraph" version = "0.6.3" @@ -4786,15 +3000,6 @@ dependencies = [ "rustc_version 0.4.0", ] -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_shared 0.10.0", -] - [[package]] name = "phf" version = "0.11.2" @@ -4805,36 +3010,6 @@ dependencies = [ "phf_shared 0.11.2", ] -[[package]] -name = "phf_codegen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", -] - -[[package]] -name = "phf_codegen" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" -dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand", -] - [[package]] name = "phf_generator" version = "0.11.2" @@ -4851,11 +3026,11 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator 0.11.2", + "phf_generator", "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -4893,7 +3068,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -4924,12 +3099,6 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" -[[package]] -name = "portable-atomic" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e" - [[package]] name = "ppv-lite86" version = "0.2.17" @@ -4949,7 +3118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ "proc-macro2", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -5002,86 +3171,94 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] -[[package]] -name = "proc-macro2-diagnostics" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", - "version_check", - "yansi 1.0.0-rc", -] - -[[package]] -name = "project-origins" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629e0d57f265ca8238345cb616eea8847b8ecb86b5d97d155be2c8963a314379" -dependencies = [ - "futures", - "tokio", - "tokio-stream", -] - [[package]] name = "proptest" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65" +checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" dependencies = [ "bit-set", - "bitflags 1.3.2", - "byteorder", + "bit-vec", + "bitflags 2.4.0", "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.6.29", + "regex-syntax 0.7.4", "rusty-fork", "tempfile", "unarray", ] [[package]] -name = "protobuf" -version = "3.2.0" +name = "prost" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8473a65b88506c106c28ae905ca4a2b83a2993640467a41bb3080627ddfd2c" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55bad9126f378a853655831eb7363b7b01b81d19f8cb1218861086ca4a1a61e" +checksum = "30d3e647e9eb04ddfef78dfee2d5b3fefdf94821c84b710a3d8ebc89ede8b164" dependencies = [ + "bytes", + "heck", + "itertools", + "log", + "multimap", "once_cell", - "protobuf-support", - "thiserror", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.48", + "tempfile", + "which", ] [[package]] -name = "protobuf-support" -version = "3.2.0" +name = "prost-derive" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d4d7b8601c814cfb36bcebb79f0e61e45e1e93640cf778837833bbed05c372" +checksum = "56075c27b20ae524d00f247b8a4dc333e5784f889fe63099f8e626bc8d73486c" dependencies = [ - "thiserror", + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 2.0.48", ] [[package]] -name = "pulldown-cmark" -version = "0.9.3" +name = "prost-types" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "cebe0a918c97f86c217b0f76fd754e966f8b9f41595095cf7d74cb4e59d730f6" dependencies = [ - "bitflags 1.3.2", - "memchr", - "unicase", + "prost", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", ] [[package]] @@ -5092,9 +3269,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -5111,16 +3288,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - [[package]] name = "rand" version = "0.8.5" @@ -5160,12 +3327,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - [[package]] name = "rayon" version = "1.7.0" @@ -5273,28 +3434,24 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.3.20", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.27", "hyper-rustls 0.24.1", - "hyper-tls", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "rustls 0.21.6", - "rustls-native-certs", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", - "tokio-native-tls", "tokio-rustls 0.24.1", "tokio-util", "tower-service", @@ -5307,71 +3464,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "revm" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f293f351c4c203d321744e54ed7eed3d2b6eef4c140228910dde3ac9a5ea8031" -dependencies = [ - "auto_impl", - "revm-interpreter", - "revm-precompile", - "serde", - "serde_json", -] - -[[package]] -name = "revm-interpreter" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53980a26f9b5a66d13511c35074d4b53631e157850a1d7cf1af4efc2c2b72c9" -dependencies = [ - "derive_more", - "enumn", - "revm-primitives", - "serde", - "sha3", -] - -[[package]] -name = "revm-precompile" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41320af3bd6a65153d38eb1d3638ba89104cc9513c7feedb2d8510e8307dab29" -dependencies = [ - "k256", - "num", - "once_cell", - "revm-primitives", - "ripemd", - "secp256k1", - "sha2 0.10.7", - "sha3", - "substrate-bn", -] - -[[package]] -name = "revm-primitives" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304d998f466ffef72d76c7f20b05bf08a96801736a6fb1fdef47d49a292618df" -dependencies = [ - "auto_impl", - "bitvec 1.0.1", - "bytes", - "derive_more", - "enumn", - "fixed-hash", - "hashbrown 0.13.2", - "hex", - "hex-literal", - "primitive-types", - "rlp", - "ruint", - "serde", - "sha3", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -5408,111 +3500,87 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d263c6370d7714d2a634b6d88deb3871d0fad1f9486a9da6d48139c1ac85b26" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", ] [[package]] name = "risc0-build" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a636849a58335ebece68161006a53d5590a6698092c3ca8e8a40a7c0aa8a20fb" dependencies = [ + "anyhow", + "cargo-platform", "cargo_metadata 0.17.0", + "docker-generate", "risc0-binfmt", "risc0-zkp", "risc0-zkvm-platform", "serde", "serde_json", + "tempfile", ] [[package]] -name = "risc0-build-kernel" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +name = "risc0-circuit-recursion" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9835069929a0e7b6b4b34e6a83f08aaa9d34b30023b9ccaf96ddbe20404eba" dependencies = [ - "cc", - "directories", - "glob", + "anyhow", + "bytemuck", "hex", - "sha2 0.10.7", - "tempfile", + "risc0-core", + "risc0-zkp", + "tracing", ] [[package]] name = "risc0-circuit-rv32im" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb1caa759ab74d08779e062fcf98f5bd34397dfde572516a52369f0ec46db650" dependencies = [ "anyhow", - "log", - "rand", - "rayon", - "risc0-circuit-rv32im-sys", "risc0-core", - "risc0-sys", "risc0-zkp", "risc0-zkvm-platform", "tracing", ] -[[package]] -name = "risc0-circuit-rv32im-sys" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" -dependencies = [ - "glob", - "risc0-build-kernel", - "risc0-core", - "risc0-sys", -] - [[package]] name = "risc0-core" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be79c89bcd18886b376073e3da22f8b7963247a42dce7b49cf3d09853f51641e" dependencies = [ "bytemuck", "rand_core", ] -[[package]] -name = "risc0-sys" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" -dependencies = [ - "cc", - "glob", - "risc0-build-kernel", - "risc0-core", -] - [[package]] name = "risc0-zkp" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e20a57e04840a5afadebb5d232546245f4fd8bd0e774bd69bf4bf25f8ab90c04" dependencies = [ "anyhow", "blake2", "bytemuck", "digest 0.10.7", - "ff", "hex", - "lazy_static", - "log", - "ndarray", "paste", - "rand", "rand_core", - "rayon", "risc0-core", - "risc0-sys", "risc0-zkvm-platform", "serde", "sha2 0.10.7", @@ -5521,43 +3589,50 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "922588cb4b884b3951316a65581ccdfd1174af93c54093190878366812073329" dependencies = [ - "addr2line", "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize 0.4.2", "bincode", "bonsai-sdk", "bytemuck", + "bytes", "cfg-if", - "crypto-bigint", - "generic-array", "getrandom", "hex", - "lazy-regex", - "libm", - "log", + "num-bigint", "num-derive", "num-traits", - "rand", - "rayon", + "prost", + "prost-build", + "protobuf-src", "risc0-binfmt", + "risc0-circuit-recursion", "risc0-circuit-rv32im", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", "rrs-lib", + "semver 1.0.18", "serde", "sha2 0.10.7", - "thiserror", "tracing", - "typetag", ] [[package]] name = "risc0-zkvm-platform" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?branch=release-0.17#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5819c0c3bfd8f20b1226c9d4ca1f342eb3d8385e71211a9383a879643d1dde" +dependencies = [ + "bytemuck", + "getrandom", + "libm", +] [[package]] name = "rlp" @@ -5581,17 +3656,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "rpassword" -version = "7.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" -dependencies = [ - "libc", - "rtoolbox", - "winapi", -] - [[package]] name = "rrs-lib" version = "0.1.0" @@ -5602,28 +3666,19 @@ dependencies = [ "paste", ] -[[package]] -name = "rtoolbox" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "ruint" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95294d6e3a6192f3aabf91c38f56505a625aa495533442744185a36d75a790c4" +checksum = "724fd11728a3804e9944b14cab63825024c40bf42f8af87c8b5d97c4bbacf426" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", "fastrlp", - "num-bigint 0.4.3", + "num-bigint", + "num-traits", "parity-scale-codec", "primitive-types", "proptest", @@ -5641,16 +3696,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" -[[package]] -name = "rusb" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44a8c36914f9b1a3be712c1dfa48c9b397131f9a75707e570a391735f785c5d1" -dependencies = [ - "libc", - "libusb1-sys", -] - [[package]] name = "rusoto_core" version = "0.48.0" @@ -5662,8 +3707,8 @@ dependencies = [ "bytes", "crc32fast", "futures", - "http", - "hyper", + "http 0.2.9", + "hyper 0.14.27", "hyper-rustls 0.23.2", "lazy_static", "log", @@ -5686,7 +3731,7 @@ dependencies = [ "chrono", "dirs-next", "futures", - "hyper", + "hyper 0.14.27", "serde", "serde_json", "shlex", @@ -5721,8 +3766,8 @@ dependencies = [ "futures", "hex", "hmac 0.11.0", - "http", - "hyper", + "http 0.2.9", + "hyper 0.14.27", "log", "md-5 0.9.1", "percent-encoding", @@ -5736,9 +3781,9 @@ dependencies = [ [[package]] name = "rust-embed" -version = "6.8.1" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661" +checksum = "a82c0bbc10308ed323529fd3c1dce8badda635aa319a5ff0e6466f33b8101e3f" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -5747,23 +3792,23 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "6.8.1" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac" +checksum = "6227c01b1783cdfee1bcf844eb44594cd16ec71c35305bf1c9fb5aade2735e16" dependencies = [ "proc-macro2", "quote", "rust-embed-utils", "shellexpand", - "syn 2.0.28", + "syn 2.0.48", "walkdir", ] [[package]] name = "rust-embed-utils" -version = "7.8.1" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74" +checksum = "8cb0a25bfbb2d4b4402179c2cf030387d9990857ce08a32592c6238db9fa8665" dependencies = [ "sha2 0.10.7", "walkdir", @@ -5799,20 +3844,6 @@ dependencies = [ "semver 1.0.18", ] -[[package]] -name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - [[package]] name = "rustix" version = "0.38.8" @@ -5822,8 +3853,8 @@ dependencies = [ "bitflags 2.4.0", "errno", "libc", - "linux-raw-sys 0.4.5", - "windows-sys 0.48.0", + "linux-raw-sys", + "windows-sys", ] [[package]] @@ -5909,17 +3940,6 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "ruzstd" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a15e661f0f9dac21f3494fe5d23a6338c0ac116a2d22c2b63010acd89467ffe" -dependencies = [ - "byteorder", - "thiserror", - "twox-hash", -] - [[package]] name = "ryu" version = "1.0.15" @@ -5974,15 +3994,9 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -6025,24 +4039,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "secp256k1-sys", -] - -[[package]] -name = "secp256k1-sys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" -dependencies = [ - "cc", -] - [[package]] name = "security-framework" version = "2.9.2" @@ -6107,33 +4103,22 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.183" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" dependencies = [ "serde_derive", ] -[[package]] -name = "serde-hex" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca37e3e4d1b39afd7ff11ee4e947efae85adfddf4841787bfa47c470e96dc26d" -dependencies = [ - "array-init", - "serde", - "smallvec 0.6.14", -] - [[package]] name = "serde_derive" -version = "1.0.183" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -6142,7 +4127,6 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ - "indexmap 2.0.0", "itoa", "ryu", "serde", @@ -6158,16 +4142,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_regex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf" -dependencies = [ - "regex", - "serde", -] - [[package]] name = "serde_spanned" version = "0.6.3" @@ -6200,12 +4174,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "sha2" version = "0.9.9" @@ -6249,19 +4217,13 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - [[package]] name = "shellexpand" -version = "2.1.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" dependencies = [ - "dirs 4.0.0", + "dirs", ] [[package]] @@ -6270,27 +4232,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" -dependencies = [ - "libc", - "mio", - "signal-hook", -] - [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -6310,24 +4251,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "similar" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint 0.4.3", - "num-traits", - "thiserror", - "time 0.3.25", -] - [[package]] name = "siphasher" version = "0.3.10" @@ -6343,15 +4266,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "smallvec" -version = "0.6.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" -dependencies = [ - "maybe-uninit", -] - [[package]] name = "smallvec" version = "1.11.0" @@ -6367,28 +4281,6 @@ dependencies = [ "serde", ] -[[package]] -name = "snafu" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" -dependencies = [ - "doc-comment", - "snafu-derive", -] - -[[package]] -name = "snafu-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "socket2" version = "0.4.9" @@ -6406,7 +4298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -6418,7 +4310,7 @@ dependencies = [ "itertools", "lalrpop", "lalrpop-util", - "phf 0.11.2", + "phf", "thiserror", "unicode-xid", ] @@ -6439,12 +4331,6 @@ dependencies = [ "der", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" @@ -6462,19 +4348,6 @@ dependencies = [ "parking_lot", "phf_shared 0.10.0", "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", ] [[package]] @@ -6483,32 +4356,13 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - [[package]] name = "strum" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ - "strum_macros 0.25.2", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", + "strum_macros", ] [[package]] @@ -6521,20 +4375,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.28", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand", - "rustc-hex", + "syn 2.0.48", ] [[package]] @@ -6564,43 +4405,21 @@ dependencies = [ ] [[package]] -name = "svm-rs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597e3a746727984cb7ea2487b6a40726cad0dbe86628e7d429aa6b8c4c153db4" -dependencies = [ - "dirs 5.0.1", - "fs2", - "hex", - "once_cell", - "reqwest", - "semver 1.0.18", - "serde", - "serde_json", - "sha2 0.10.7", - "thiserror", - "url", - "zip", -] - -[[package]] -name = "svm-rs-builds" -version = "0.2.0" +name = "syn" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2271abd7d01895a3e5bfa4b578e32f09155002ce1ec239532e297f82aafad06b" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "build_const", - "hex", - "semver 1.0.18", - "serde_json", - "svm-rs 0.3.0", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] name = "syn" -version = "1.0.109" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -6608,14 +4427,15 @@ dependencies = [ ] [[package]] -name = "syn" -version = "2.0.28" +name = "syn-solidity" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047" dependencies = [ + "paste", "proc-macro2", "quote", - "unicode-ident", + "syn 2.0.48", ] [[package]] @@ -6639,19 +4459,8 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.38.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", + "rustix", + "windows-sys", ] [[package]] @@ -6665,38 +4474,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal_size" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" -dependencies = [ - "rustix 0.37.23", - "windows-sys 0.48.0", -] - -[[package]] -name = "terminfo" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f" -dependencies = [ - "dirs 4.0.0", - "fnv", - "nom", - "phf 0.11.2", - "phf_codegen 0.11.2", -] - [[package]] name = "thiserror" version = "1.0.44" @@ -6714,7 +4491,7 @@ checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -6727,17 +4504,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "time" version = "0.3.25" @@ -6745,12 +4511,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" dependencies = [ "deranged", - "itoa", - "libc", - "num_threads", "serde", "time-core", - "time-macros", ] [[package]] @@ -6759,15 +4521,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" -[[package]] -name = "time-macros" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" -dependencies = [ - "time-core", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -6808,7 +4561,7 @@ dependencies = [ "signal-hook-registry", "socket2 0.5.3", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -6819,17 +4572,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", + "syn 2.0.48", ] [[package]] @@ -6864,18 +4607,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.18.0", -] - [[package]] name = "tokio-tungstenite" version = "0.19.0" @@ -6887,7 +4618,7 @@ dependencies = [ "rustls 0.21.6", "tokio", "tokio-rustls 0.24.1", - "tungstenite 0.19.0", + "tungstenite", "webpki-roots 0.23.1", ] @@ -6905,22 +4636,12 @@ dependencies = [ "tracing", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" dependencies = [ - "indexmap 2.0.0", "serde", "serde_spanned", "toml_datetime", @@ -6949,12 +4670,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "topological-sort" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" - [[package]] name = "tower" version = "0.4.13" @@ -6973,17 +4688,15 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82" +checksum = "0da193277a4e2c33e59e09b5861580c33dd0a637c3883d0fa74ba40c0374af2e" dependencies = [ "bitflags 2.4.0", "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "pin-project-lite", "tower-layer", "tower-service", @@ -7023,7 +4736,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -7036,16 +4749,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-error" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" -dependencies = [ - "tracing", - "tracing-subscriber", -] - [[package]] name = "tracing-futures" version = "0.2.5" @@ -7077,6 +4780,15 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.17" @@ -7090,7 +4802,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.11.0", + "smallvec", "thread_local", "tracing", "tracing-core", @@ -7098,59 +4810,12 @@ dependencies = [ "tracing-serde", ] -[[package]] -name = "trezor-client" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cddb76a030b141d9639470eca2a236f3057a651bba78227cfa77830037a8286" -dependencies = [ - "byteorder", - "hex", - "primitive-types", - "protobuf", - "rusb", - "thiserror", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" -[[package]] -name = "tui" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" -dependencies = [ - "bitflags 1.3.2", - "cassowary", - "crossterm 0.25.0", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "tungstenite" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" -dependencies = [ - "base64 0.13.1", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "rand", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "tungstenite" version = "0.19.0" @@ -7160,7 +4825,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 0.2.9", "httparse", "log", "rand", @@ -7172,78 +4837,18 @@ dependencies = [ "webpki", ] -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] - -[[package]] -name = "typed-builder" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6179333b981641242a768f30f371c9baccbfcc03749627000c500ab88bf4528b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "typenum" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -[[package]] -name = "typetag" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aec6850cc671cd0cfb3ab285465e48a3b927d9de155051c35797446b32f9169f" -dependencies = [ - "erased-serde", - "inventory", - "once_cell", - "serde", - "typetag-impl", -] - -[[package]] -name = "typetag-impl" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c49a6815b4f8379c36f06618bc1b80ca77aaf8a3fd4d8549dca6fdb016000f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.28", -] - [[package]] name = "ucd-trie" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" -[[package]] -name = "ui" -version = "0.2.0" -source = "git+https://github.com/foundry-rs/foundry.git?rev=8e365beee278975720ecd3eb529b5dd6d17cac3b#8e365beee278975720ecd3eb529b5dd6d17cac3b" -dependencies = [ - "crossterm 0.26.1", - "ethers 2.0.8 (git+https://github.com/gakonst/ethers-rs)", - "eyre", - "forge", - "foundry-common", - "hex", - "revm", - "tui", -] - [[package]] name = "uint" version = "0.9.5" @@ -7262,15 +4867,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "uncased" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68" -dependencies = [ - "version_check", -] - [[package]] name = "unicase" version = "2.6.0" @@ -7286,12 +4882,6 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" -[[package]] -name = "unicode-bom" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552" - [[package]] name = "unicode-ident" version = "1.0.11" @@ -7307,18 +4897,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - [[package]] name = "unicode-xid" version = "0.2.4" @@ -7356,9 +4934,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "utoipa" -version = "3.4.4" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de634b7f8178c9c246c88ea251f3a0215c9a4d80778db2d7bd4423a78b5170ec" +checksum = "272ebdfbc99111033031d2f10e018836056e4d2c8e2acda76450ec7974269fa7" dependencies = [ "indexmap 2.0.0", "serde", @@ -7368,23 +4946,23 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "3.4.5" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcba79cb3e5020d9bcc8313cd5aadaf51d6d54a6b3fd08c3d0360ae6b3c83d0" +checksum = "d3c9f4d08338c1bfa70dde39412a040a884c6f318b3d09aaaf3437a1e52027fc" dependencies = [ "proc-macro-error", "proc-macro2", "quote", "regex", - "syn 2.0.28", + "syn 2.0.48", "uuid 1.4.1", ] [[package]] name = "utoipa-swagger-ui" -version = "3.1.5" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84614caa239fb25b2bb373a52859ffd94605ceb256eeb1d63436325cf81e3653" +checksum = "f839caa8e09dddc3ff1c3112a91ef7da0601075ba5025d9f33ae99c4cb9b6e51" dependencies = [ "axum", "mime_guess", @@ -7464,24 +5042,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vergen" -version = "8.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbc5ad0d9d26b2c49a5ab7da76c3e79d3ee37e7821799f8223fcb8f2f391a2e7" -dependencies = [ - "anyhow", - "git2", - "rustversion", - "time 0.3.25", -] - [[package]] name = "version_check" version = "0.9.4" @@ -7516,42 +5076,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "warp" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "headers", - "http", - "hyper", - "log", - "mime", - "mime_guess", - "percent-encoding", - "pin-project", - "rustls-pemfile", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-stream", - "tokio-tungstenite 0.18.0", - "tokio-util", - "tower-service", - "tracing", -] - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -7579,7 +5103,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", "wasm-bindgen-shared", ] @@ -7613,7 +5137,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7637,54 +5161,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "watchexec" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b97d05a9305a9aa6a7bedef64cd012ebc9b6f1f5ed0368fb48f0fe58f96988" -dependencies = [ - "async-priority-channel", - "async-recursion", - "atomic-take", - "clearscreen", - "command-group", - "futures", - "ignore-files", - "miette", - "nix", - "normalize-path", - "notify", - "once_cell", - "project-origins", - "thiserror", - "tokio", - "tracing", - "watchexec-events", - "watchexec-signals", -] - -[[package]] -name = "watchexec-events" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01603bbe02fd75918f010dadad456d47eda14fb8fdcab276b0b4b8362f142ae3" -dependencies = [ - "nix", - "notify", - "watchexec-signals", -] - -[[package]] -name = "watchexec-signals" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2a5df96c388901c94ca04055fcd51d4196ca3e971c5e805bd4a4b61dd6a7e5" -dependencies = [ - "miette", - "nix", - "thiserror", -] - [[package]] name = "web-sys" version = "0.3.64" @@ -7771,16 +5247,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.1", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", + "windows-targets", ] [[package]] @@ -7789,22 +5256,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] @@ -7813,93 +5265,51 @@ version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.0" @@ -7965,10 +5375,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] -name = "yansi" -version = "1.0.0-rc" +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee746ad3851dd3bc40e4a028ab3b00b99278d929e48957bcb2d111874a7e43e" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] [[package]] name = "zeroize" @@ -7987,7 +5411,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -8006,7 +5430,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1", - "time 0.3.25", + "time", "zstd", ] diff --git a/Cargo.toml b/Cargo.toml index b2f261cc..53dd7077 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,13 @@ [workspace] members = ["methods", "relay"] +resolver = "2" [workspace.dependencies] -risc0-build = { git = "https://github.com/risc0/risc0", branch = "release-0.17" } -risc0-zkvm = { git = "https://github.com/risc0/risc0", branch = "release-0.17", default-features = false } -bonsai-sdk = { git = "https://github.com/risc0/risc0", branch = "release-0.17" } -bonsai-ethereum-relay = { git = "https://github.com/risc0/risc0", branch = "release-0.17" } +bonsai-ethereum-relay = { version = "0.6.1" } +bonsai-sdk = { version = "0.6.1" } methods = { path = "./methods", package = "bonsai-starter-methods" } +risc0-build = { version = "0.20" } +risc0-zkvm = { version = "0.20", default-features = false } # Always optimize; building and running the guest takes much longer without optimization. [profile.dev] diff --git a/README.md b/README.md index edfb9b1f..1bc11be3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Bonsai Foundry Template +> **Note: This software is not production ready. Do not use in production.** + Starter template for writing an application using [Bonsai]. This repository implements an application on Ethereum utilizing Bonsai as a [coprocessor] to the smart contract application. @@ -7,26 +9,37 @@ It provides a starting point for building powerful new applications on Ethereum *For a 60 second overview of how this template and off-chain computation with Bonsai work, [check out the video here](https://www.youtube.com/watch?v=WDS8X8H9mIk).* -## Quick Start -First, [install Rust] and [Foundry], and then restart your terminal. Next, you will need to install the `cargo risczero tool`: +## Overview -```bash -cargo install cargo-risczero -``` +The picture below shows a simplified overview of how users can integrate Bonsai into their Ethereum smart contracts: + +![Bonsai Relay Diagram](images/BonsaiRelay.png) -For the above commands to build successfully you will need to have installed the required dependencies. On a Ubuntu system you can install them with: +1. Users can delegate their smart contract's logic to Bonsai. The [Bonsai Relay Contract](lib/risc0/bonsai/ethereum/contracts/relay/BonsaiRelay.sol) provides a `Request Callback` interface. This interface, accessible both *off-chain* (through HTTP REST API) and *on-chain*, emits an event detected by the `Ethereum Bonsai Relayer`. +2. The `Ethereum Bonsai Relayer` sends the proof request to Bonsai. +3. Bonsai generates a Snark proof and its result, encapsulated in a journal. +4. The `Ethereum Bonsai Relayer` submits this proof and journal on-chain to the `Bonsai Relay Contract` for validation. +5. If validated, the journal is dispatched to the user's smart contract via the specified callback. + +## Dependencies +First, [install Rust] and [Foundry], and then restart your terminal. Next, you will need to install the `cargo risczero` tool. +We'll use `cargo binstall` to get `cargo-risczero` installed. See [cargo-binstall] for more details. ```bash -sudo apt install curl build-essential libssl-dev pkgconf +cargo install cargo-binstall +cargo binstall cargo-risczero ``` Next we'll need to install the `risc0` toolchain with: -```bash +``` cargo risczero install ``` -Now, you can initialize a new Bonsai project at a location of your choosing: +## Quick Start +First, install the RISC Zero toolchain using the instructions above. + +Now, you can initialize a new Bonsai project at a location of your choosing: ```bash forge init -t risc0/bonsai-foundry-template ./my-project @@ -34,124 +47,22 @@ forge init -t risc0/bonsai-foundry-template ./my-project Congratulations! You've just built your first Bonsai project. Your new project consists of: - a [`zkVM program`] (written in Rust), which specifies a computation that will be proven -- a [`contract`] (written in Solidity), which requests a proof and receives the response +- a [`contract`] (written in Solidity), which receives the response + +Requesting a proof can be done via both *off-chain* or *on-chain* requests. [install Rust]: https://doc.rust-lang.org/cargo/getting-started/installation.html [Foundry]: https://getfoundry.sh/ +[cargo-binstall]: https://github.com/cargo-bins/cargo-binstall#cargo-binaryinstall [`zkVM program`]: https://github.com/risc0/bonsai-foundry-template/tree/main/methods/guest/src/bin [`contract`]: https://github.com/risc0/bonsai-foundry-template/tree/main/contracts ### Test Your Project - Use `cargo build` to test compilation of your zkVM program. -- Use `cargo test` to run the tests in your zkVM program. +- Use `cargo test` to run the tests in your zkVM program. - Use `forge test` to test your Solidity contracts and their interaction with your zkVM program. -### Deploy your project on a local network - -You can deploy your contracts and run an end-to-end test or demo as follows: - -1. Start a local testnet with `anvil` by running: - - ```bash - anvil - ``` - - Once anvil is started, keep it running in the terminal, and switch to a new terminal. - -2. Deploy an `IBonsaiRelay` contract by running: - - ```bash - RISC0_DEV_MODE=true forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --broadcast - ``` - -3. Check the logs for the address of the deployed `BonsaiTestRelay` contract and your application contract. - Save them to a couple of environment variables to reference later. - - ```bash - export BONSAI_RELAY_ADDRESS="#copy relay address from the deploy logs#" - export APP_ADDRESS="#copy app address from the deploy logs#" - ``` - -4. Start the Bonsai Ethereum Relay by running: - - ```bash - RISC0_DEV_MODE=true cargo run --bin bonsai-ethereum-relay-cli -- run --relay-address "$BONSAI_RELAY_ADDRESS" - ``` - - The relay will keep monitoring the chain for callback requests, generated when your contract calls `bonsaiRelay.requestCallback(...)`, and relay their result back to your contract after computing them. - Keep the relay running and switch to a new terminal. - - Setting `RISC0_DEV_MODE=true` deploys the `BonsaiTestRelay`, for use in local development and testing, instead of the fully verifying `BonsaiRelay` contract. - See the section below on using the fully-verifying relay for more information on this setting and testnet deployment. - -**Interact with your deployment:** - -You now have a locally running testnet and relay deployment that you can interact with using `cast`, a wallet, or any application you write. - -1. Send a transaction to the starter contract: - - ```bash - cast send --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --gas-limit 100000 "$APP_ADDRESS" 'calculateFibonacci(uint256)' 5 - ``` - -2. Check the relayed result: - - ```bash - cast call "$APP_ADDRESS" 'fibonacci(uint256)' 5 - ``` - -**Deploy a new version of your application:** - -When you want to deploy a new version of the application contract, run the following command with the relay contract address noted earlier. -Set `DEPLOY_UPLOAD_IMAGES=true` if you modified your guest and need to upload a new version to Bonsai. - -```bash -RISC0_DEV_MODE=true DEPLOY_RELAY_ADDRESS="$APP_ADDRESS" DEPLOY_UPLOAD_IMAGES=true forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --broadcast -``` - -This will deploy only your application address and upload any updated images. -By setting `DEPLOY_RELAY_ADDRESS`, the existing running relay contract and the already running relay will continue to be used. - -**Use the fully verifying relay:** - -In each of the commands above, the environment variable `RISC0_DEV_MODE=true` is added. -With this environment variable set, the `BonsaiTestRelay` contract is used, which does not check callbacks for authentication. -This provides fast development, allowing you to iterate on your application. - -When it's time to deploy you application to a live chain, such as the Sepolia testnet, you should remove this environment or set `RISC0_DEV_MODE=false`. -When unset, or set to `false`, the fully-verifying `BonsaiRelay` contract will be used and all callbacks will require a [Groth16 SNARK proof] for authentication. -This is what provides the security guarantees of Bonsai, that only legitimate outputs from your guest program can be sent to your application contract. - -Producing SNARK receipts that are verifiable on-chain requires the Bonsai proving service. -See the [Configuring Bonsai](#Configuring Bonsai) section below for more information about using the Bonsai proving service. - -You can also deploy on a testnet by following the instructions described in [Deploy your project on a testnet](#deploy-your-project-on-a-testnet). -If you want to know more about the relay, you can follow this [link](https://github.com/risc0/risc0/tree/main/bonsai/ethereum-relay). - -### Off-chain Callback Request - -The Relay exposes an HTTP REST API interface that can be used to directly send *off-chain* callback requests to it, as an alternative to the on-chain requests. -It also provides an SDK in Rust that can be used to interact with it. You can check out this [example](relay/examples/callback_request.rs). - -Assuming that Anvil and the Relay are running and both an `IBonsaiRelay` and the `BonsaiStarter` app contract are deployed (first 4 steps of the previous section), you can send a callback request directly to the Relay by running: - -```bash -cargo run --example callback_request "$APP_ADDRESS" 10 -``` - -This example's arguments are the `BonsaiStarter` contract address and the number, N, to compute the Nth Fibonacci number. -You may need to change these values accordingly. - -Just as with on-chain callback requests, you can check the relayed result - -```bash -cast call "$APP_ADDRESS" 'fibonacci(uint256)' 10 -``` - -The Relay source code with its SDK can be found in the [risc0/risc0] github repo. - ### Configuring Bonsai - ***Note:*** *The Bonsai proving service is still in early Alpha. To request an API key [complete the form here](https://bonsai.xyz/apply).* With the Bonsai proving service, you can produce a [Groth16 SNARK proof] that is verifiable on-chain. @@ -168,57 +79,12 @@ Now if you run `forge test` with `RISC0_DEV_MODE=false`, the test will run as be RISC0_DEV_MODE=false forge test ``` -### Deploy your project on a testnet - -You can deploy your contracts on a testnet such as `Sepolia` and run an end-to-end test or demo as follows: - -1. Get access to Bonsai and an Ethereum node running on a given testnet, e.g., Sepolia (in this example, we will be using [alchemy](https://www.alchemy.com/) as our Ethereum node provider) and export the following environment variables: - - ```bash - export BONSAI_API_KEY="YOUR_API_KEY" # see form linked in the previous section - export BONSAI_API_URL="BONSAI_URL" # provided with your api key - export ALCHEMY_API_KEY="YOUR_ALCHEMY_API_KEY" # the API_KEY provided with an alchemy account - export DEPLOYER_PRIVATE_KEY="YOUR_WALLET_PRIVATE_KEY" # the private key of your Ethereum testnet wallet e.g., Sepolia - ``` +## Next Steps +To build your application, you'll need to make changes in two folders: +- write the code you want proven in the [methods] folder +- write the on-chain part of your project in the [contracts] folder -2. Deploy an `IBonsaiRelay` contract by running: - - ```bash - RISC0_DEV_MODE=false forge script script/Deploy.s.sol --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY --broadcast - ``` - -3. Check the logs for the address of the deployed `BonsaiRelay` contract and your application contract. - Save them to a couple of environment variables to reference later. - - ```bash - export BONSAI_RELAY_ADDRESS="#copy relay address from the deploy logs#" - export APP_ADDRESS="#copy app address from the deploy logs#" - ``` - -4. Start the Bonsai Ethereum Relay by running: - - ```bash - RISC0_DEV_MODE=false cargo run --bin bonsai-ethereum-relay-cli -- run --relay-address "$BONSAI_RELAY_ADDRESS" --eth-node wss://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY --eth-chain-id 11155111 --private-key "$DEPLOYER_PRIVATE_KEY" - ``` - - The relay will keep monitoring the chain for callback requests, generated when your contract calls `bonsaiRelay.requestCallback(...)`, and relay their result back to your contract after computing them. - Keep the relay running and switch to a new terminal. - -**Interact with your deployment:** - -You now have a deployment on a testnet that you can interact with using `cast`, a wallet, or any application you write. - -1. Send a transaction to the starter contract: - - ```bash - cast send --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY --private-key "$DEPLOYER_PRIVATE_KEY" --gas-limit 100000 "$APP_ADDRESS" 'calculateFibonacci(uint256)' 5 - ``` - -2. Check the relayed result: - - ```bash - cast call --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY "$APP_ADDRESS" 'fibonacci(uint256)' 5 - ``` +Then, you're ready to [deploy your project].
## Project Structure @@ -248,27 +114,10 @@ Below are the primary files in the project directory └── lib.rs // Built RISC Zero guest programs are compiled into here ``` -### Contracts - -Ethereum contracts should be written in the `contracts` directory, where the two primary starter template contracts live. -The Solidity libraries for Bonsai can be found at [github.com/risc0/risc0](https://github.com/risc0/risc0/tree/main/bonsai/ethereum) - -Contracts are built and tested with [forge], which is part of the [Foundry] toolkit. -Tests are defined in the `tests` directory. - -### Methods - -[RISC Zero] guest programs are defined in the `methods` directory. -This is where you will define one or more guest programs to act as a coprocessor to your on-chain logic. -More example of what you can do in the guest can be found in the [RISC Zero examples]. - -Code in the `methods/guest` directory will be compiled into one or more [RISC-V] binaries. -Each will have a corresponding image ID, which is a hash identifying the program. -When deploying your application, you will upload your binary to Bonsai where the guest will run when requested. -The image ID will be included in the deployment of the smart contracts to reference your guest program living in Bonsai. - -Build configuration for the methods is included in `methods/build.rs`. +[methods]: /methods +[contracts]: /contracts +[deploy your project]: /deployment-guide.md [coprocessor]: https://twitter.com/RiscZero/status/1677316664772132864 [Bonsai]: https://dev.bonsai.xyz/ [Foundry]: https://getfoundry.sh/ diff --git a/contracts/BonsaiStarter.sol b/contracts/BonsaiStarter.sol index 8a4d1d38..7188993b 100644 --- a/contracts/BonsaiStarter.sol +++ b/contracts/BonsaiStarter.sol @@ -16,8 +16,8 @@ pragma solidity ^0.8.17; -import {IBonsaiRelay} from "bonsai/IBonsaiRelay.sol"; -import {BonsaiCallbackReceiver} from "bonsai/BonsaiCallbackReceiver.sol"; +import {IBonsaiRelay} from "bonsai/relay/IBonsaiRelay.sol"; +import {BonsaiCallbackReceiver} from "bonsai/relay/BonsaiCallbackReceiver.sol"; /// @title A starter application using Bonsai through the on-chain relay. /// @dev This contract demonstrates one pattern for offloading the computation of an expensive diff --git a/contracts/BonsaiStarterLowLevel.sol b/contracts/BonsaiStarterLowLevel.sol index 96648b88..6961c797 100644 --- a/contracts/BonsaiStarterLowLevel.sol +++ b/contracts/BonsaiStarterLowLevel.sol @@ -16,8 +16,8 @@ pragma solidity ^0.8.17; -import {IBonsaiRelay} from "bonsai/IBonsaiRelay.sol"; -import {BonsaiLowLevelCallbackReceiver} from "bonsai/BonsaiLowLevelCallbackReceiver.sol"; +import {IBonsaiRelay} from "bonsai/relay/IBonsaiRelay.sol"; +import {BonsaiLowLevelCallbackReceiver} from "bonsai/relay/BonsaiLowLevelCallbackReceiver.sol"; /// @title A starter application using Bonsai through the on-chain relay. /// @dev This contract demonstrates one pattern for offloading the computation of an expensive diff --git a/contracts/README.md b/contracts/README.md index 2e413c98..fc3f63a2 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -1,9 +1,15 @@ # Bonsai Solidity Contracts -This folder contains the Solidity contract for deploying a [Bonsai] application through the Ethereum relay. +This directory contains the Solidity contract for deploying a [Bonsai] application through the Ethereum relay. +There are two primary starter template contracts included. -The contract demonstrates one pattern for offloading the computation of an expensive or difficult to implement function to a [RISC Zero] [guest] running on Bonsai. +The Solidity libraries for Bonsai can be found at [github.com/risc0/risc0](https://github.com/risc0/risc0/tree/main/bonsai/ethereum). +Contracts are built and tested with [forge], which is part of the [Foundry] toolkit. +Tests are defined in the `tests` directory in the root of this template. + +[Foundry]: https://getfoundry.sh/ +[forge]: https://github.com/foundry-rs/foundry#forge [Bonsai]: https://dev.bonsai.xyz [offloading the computation]: https://twitter.com/RiscZero/status/1677316664772132864 [RISC Zero]: https://risczero.com diff --git a/deployment-guide.md b/deployment-guide.md new file mode 100644 index 00000000..80cfab46 --- /dev/null +++ b/deployment-guide.md @@ -0,0 +1,186 @@ +# Bonsai Deployment Guide +> **Note: This software is not production ready. Do not use in production.** + +Welcome to the [Bonsai] Deployment guide! + +Once you've written your [contracts] and your [methods], and [tested] your program, you're ready to deploy your contract. You can either: +- Deploy your project to a local network +- Deploy to a testnet + +## Deploy your project on a local network + +You can deploy your contracts and run an end-to-end test or demo as follows: + +1. Start a local testnet with `anvil` by running: + + ```bash + anvil + ``` + + Once anvil is started, keep it running in the terminal, and switch to a new terminal. + +2. Deploy an `IBonsaiRelay` contract by running: + + ```bash + RISC0_DEV_MODE=true forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --broadcast + ``` + +3. Check the logs for the address of the deployed `BonsaiTestRelay` contract and your application contract. + Save them to a couple of environment variables to reference later. + + ```bash + export BONSAI_RELAY_ADDRESS="#copy relay address from the deploy logs#" + export APP_ADDRESS="#copy app address from the deploy logs#" + ``` + +4. Start the Bonsai Ethereum Relay by running: + + ```bash + RISC0_DEV_MODE=true cargo run --bin bonsai-ethereum-relay-cli -- run --relay-address "$BONSAI_RELAY_ADDRESS" + ``` + + The relay will keep monitoring the chain for callback requests, generated when your contract calls `bonsaiRelay.requestCallback(...)`, and relay their result back to your contract after computing them. + Keep the relay running and switch to a new terminal. + + Setting `RISC0_DEV_MODE=true` deploys the `BonsaiTestRelay`, for use in local development and testing, instead of the fully verifying `BonsaiRelay` contract. + See the section below on using the fully-verifying relay for more information on this setting and testnet deployment. + +### Interact with your deployment: + +#### Off-chain callback request + +The Relay exposes an HTTP REST API interface that can be used to directly send *off-chain* callback requests to it. +It also provides an SDK in Rust that can be used to interact with it. You can check out this [example](relay/examples/offchain_request.rs). + +1. Send a callback request directly to the Relay by running: + + ```bash + BONSAI_API_KEY="YOUR_API_KEY_OR_EMPTY_IF_DEV_MODE" cargo run --example offchain_request "$APP_ADDRESS" 10 + ``` + +2. Check the relayed result: + + ```bash + cast call "$APP_ADDRESS" 'fibonacci(uint256)' 10 + ``` + +This example's arguments are the `BonsaiStarter` contract address and the number, N, to compute the Nth Fibonacci number. +You may need to change these values accordingly. + +The Relay source code with its SDK can be found in the [risc0/risc0] github repo. + +#### On-chain callback request + +1. Send a transaction to the starter contract: + + ```bash + cast send --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --gas-limit 100000 "$APP_ADDRESS" 'calculateFibonacci(uint256)' 5 + ``` + +2. Check the relayed result: + + ```bash + cast call "$APP_ADDRESS" 'fibonacci(uint256)' 5 + ``` + +### Deploy a new version of your application: + +When you want to deploy a new version of the application contract, run the following command with the relay contract address noted earlier. +Set `DEPLOY_UPLOAD_IMAGES=true` if you modified your guest and need to upload a new version to Bonsai. + +```bash +RISC0_DEV_MODE=true DEPLOY_RELAY_ADDRESS="$APP_ADDRESS" DEPLOY_UPLOAD_IMAGES=true forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --broadcast +``` + +This will deploy only your application address and upload any updated images. +By setting `DEPLOY_RELAY_ADDRESS`, the existing running relay contract and the already running relay will continue to be used. + +## Use the fully verifying relay: + +In each of the commands above, the environment variable `RISC0_DEV_MODE=true` is added. +With this environment variable set, the `BonsaiTestRelay` contract is used, which does not check callbacks for authentication. +This provides fast development, allowing you to iterate on your application. + +When it's time to deploy you application to a live chain, such as the Sepolia testnet, you should remove this environment or set `RISC0_DEV_MODE=false`. +When unset, or set to `false`, the fully-verifying `BonsaiRelay` contract will be used and all callbacks will require a [Groth16 SNARK proof] for authentication. +This is what provides the security guarantees of Bonsai, that only legitimate outputs from your guest program can be sent to your application contract. + +Producing SNARK receipts that are verifiable on-chain requires the Bonsai proving service. +See the [Configuring Bonsai](/README.md#configuring-bonsai) section on the main README for more information about using the Bonsai proving service. + +You can also deploy on a testnet by following the instructions described in [Deploy your project on a testnet](#deploy-your-project-on-a-testnet). +If you want to know more about the relay, you can follow this [link](https://github.com/risc0/risc0/tree/main/bonsai/ethereum-relay). + +## Deploy your project on a testnet + +You can deploy your contracts on a testnet such as `Sepolia` and run an end-to-end test or demo as follows: + +1. Get access to Bonsai and an Ethereum node running on a given testnet, e.g., Sepolia (in this example, we will be using [alchemy](https://www.alchemy.com/) as our Ethereum node provider) and export the following environment variables: + + ```bash + export BONSAI_API_KEY="YOUR_API_KEY" # see form linked in the previous section + export BONSAI_API_URL="BONSAI_URL" # provided with your api key + export ALCHEMY_API_KEY="YOUR_ALCHEMY_API_KEY" # the API_KEY provided with an alchemy account + export DEPLOYER_PRIVATE_KEY="YOUR_WALLET_PRIVATE_KEY" # the private key of your Ethereum testnet wallet e.g., Sepolia + ``` + +2. Deploy an `IBonsaiRelay` contract by running: + + ```bash + RISC0_DEV_MODE=false forge script script/Deploy.s.sol --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY --broadcast + ``` + +3. Check the logs for the address of the deployed `BonsaiRelay` contract and your application contract. + Save them to a couple of environment variables to reference later. + + ```bash + export BONSAI_RELAY_ADDRESS="#copy relay address from the deploy logs#" + export APP_ADDRESS="#copy app address from the deploy logs#" + ``` + +4. Start the Bonsai Ethereum Relay by running: + + ```bash + RISC0_DEV_MODE=false cargo run --bin bonsai-ethereum-relay-cli -- run --relay-address "$BONSAI_RELAY_ADDRESS" --eth-node wss://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY --eth-chain-id 11155111 --private-key "$DEPLOYER_PRIVATE_KEY" + ``` + + The relay will keep monitoring the chain for callback requests, generated when your contract calls `bonsaiRelay.requestCallback(...)`, and relay their result back to your contract after computing them. + Keep the relay running and switch to a new terminal. + +## Interact with your deployment: + +You now have a deployment on a testnet that you can interact with sending either off-chain or on-chain callback requests. + +### Off-chain callback request + +1. Send a callback request directly to the Relay by running: + + ```bash + BONSAI_API_KEY="YOUR_API_KEY_OR_EMPTY_IF_DEV_MODE" cargo run --example offchain_request "$APP_ADDRESS" 10 + ``` + +2. Check the relayed result: + + ```bash + cast call --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY "$APP_ADDRESS" 'fibonacci(uint256)' 10 + ``` + +### On-chain callback request + +1. Send a transaction to the starter contract: + + ```bash + cast send --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY --private-key "$DEPLOYER_PRIVATE_KEY" --gas-limit 100000 "$APP_ADDRESS" 'calculateFibonacci(uint256)' 5 + ``` + +2. Check the relayed result: + + ```bash + cast call --rpc-url https://eth-sepolia.g.alchemy.com/v2/$ALCHEMY_API_KEY "$APP_ADDRESS" 'fibonacci(uint256)' 5 + ``` + +[Bonsai]: https://risczero.com/bonsai +[contracts]: https://github.com/risc0/bonsai-foundry-template/tree/main/contracts +[methods]: https://github.com/risc0/bonsai-foundry-template/tree/main/methods +[tested]: https://github.com/risc0/bonsai-foundry-template/tree/main#test-your-project +[Groth16 SNARK proof]: https://www.risczero.com/news/on-chain-verification diff --git a/images/BonsaiRelay.png b/images/BonsaiRelay.png new file mode 100644 index 00000000..731d480a Binary files /dev/null and b/images/BonsaiRelay.png differ diff --git a/lib/risc0 b/lib/risc0 index 7e58b97c..e37f5be4 160000 --- a/lib/risc0 +++ b/lib/risc0 @@ -1 +1 @@ -Subproject commit 7e58b97cb1c531fe55e09da7a5a53dcb2ea9470f +Subproject commit e37f5be4e95ca05c85e3c32f5c5a50943ac0abb5 diff --git a/methods/README.md b/methods/README.md index bd227d4e..ade0a761 100644 --- a/methods/README.md +++ b/methods/README.md @@ -1,12 +1,34 @@ ## zkVM Methods -This folder contains the [zkVM] portion of your [Bonsai] application. -In typical use cases, you will only need to edit the code inside [`guest/src/bin`] which is where you write the source code for your [guest program]. +This directory contains the [zkVM] portion of your [Bonsai] application. +This is where you will define one or more [guest programs] to act as a coprocessor to your [on-chain logic]. -To learn more about the architecture of Bonsai apps and zkVM apps, check out the [developer documentation]. Note that the Bonsai Ethereum Relay acts as the zkVM host and so you do not need to write zkVM host code yourself. +> In typical use cases, the only code in this directory that you will need to edit is inside [`guest/src/bin`]. +### Writing Guest Code +To learn to write code for the zkVM, we recommend [Guest Code 101]. +Note that you don't need to write host code because the Bonsai Ethereum Relay acts as the zkVM host. + +Examples of what you can do in the guest can be found in the [RISC Zero examples]. + +### From Guest Code to Binary File + +Code in the `methods/guest` directory will be compiled into one or more [RISC-V] binaries. +Build configuration for the methods is included in `methods/build.rs`. + +Each will have a corresponding image ID, which is a hash identifying the program. + +### Uploading Binary to Bonsai +When [deploying] your application, you will upload your binary to Bonsai where the guest will run when requested. +The image ID will be included in the deployment of the smart contracts to reference your guest program living in Bonsai. + +[deploying]: ../deployment-guide +[RISC Zero examples]: https://github.com/risc0/tree/v0.18.0/examples +[Guest Code 101]: https://dev.risczero.com/zkvm/developer-guide/guest-code-101 +[on-chain logic]: ../contracts/readme [`guest/src/bin`]: ./guest/src/bin/ [guest program]: https://dev.risczero.com/terminology#guest-program +[guest programs]: https://dev.risczero.com/terminology#guest-program [developer documentation]: https://dev.risczero.com [zkVM]: https://dev.risczero.com/zkvm [Bonsai]: https://dev.risczero.com/bonsai/ diff --git a/methods/guest/Cargo.lock b/methods/guest/Cargo.lock index 8d6d9b4f..6c5d925b 100644 --- a/methods/guest/Cargo.lock +++ b/methods/guest/Cargo.lock @@ -2,12 +2,198 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "ahash" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest", + "sha2", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown", + "itertools", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest", + "itertools", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -58,7 +244,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", ] [[package]] @@ -104,6 +290,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "digest" version = "0.10.7" @@ -116,6 +313,18 @@ dependencies = [ "subtle", ] +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + [[package]] name = "elf" version = "0.7.2" @@ -176,12 +385,30 @@ dependencies = [ "wasi", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "keccak" version = "0.1.4" @@ -209,6 +436,17 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-derive" version = "0.4.0" @@ -217,7 +455,17 @@ checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", ] [[package]] @@ -229,6 +477,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + [[package]] name = "paste" version = "1.0.14" @@ -241,6 +495,12 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "primitive-types" version = "0.12.1" @@ -253,18 +513,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -274,6 +534,26 @@ name = "radium" version = "0.7.1" source = "git+https://github.com/bitvecto-rs/radium?rev=723bed5abd75994ee4b7221b8b12c9f4e77ce408#723bed5abd75994ee4b7221b8b12c9f4e77ce408" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + [[package]] name = "rand_core" version = "0.6.4" @@ -282,24 +562,39 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] name = "risc0-binfmt" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?rev=da5bc39089c6dba8b03510837f1c7363ed3cc8b7#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d263c6370d7714d2a634b6d88deb3871d0fad1f9486a9da6d48139c1ac85b26" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", +] + +[[package]] +name = "risc0-circuit-recursion" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9835069929a0e7b6b4b34e6a83f08aaa9d34b30023b9ccaf96ddbe20404eba" +dependencies = [ + "anyhow", + "bytemuck", + "hex", + "risc0-core", + "risc0-zkp", + "tracing", ] [[package]] name = "risc0-circuit-rv32im" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?rev=da5bc39089c6dba8b03510837f1c7363ed3cc8b7#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb1caa759ab74d08779e062fcf98f5bd34397dfde572516a52369f0ec46db650" dependencies = [ "anyhow", - "log", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", @@ -308,8 +603,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?rev=da5bc39089c6dba8b03510837f1c7363ed3cc8b7#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be79c89bcd18886b376073e3da22f8b7963247a42dce7b49cf3d09853f51641e" dependencies = [ "bytemuck", "rand_core", @@ -317,15 +613,15 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?rev=da5bc39089c6dba8b03510837f1c7363ed3cc8b7#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e20a57e04840a5afadebb5d232546245f4fd8bd0e774bd69bf4bf25f8ab90c04" dependencies = [ "anyhow", "blake2", "bytemuck", "digest", "hex", - "log", "paste", "rand_core", "risc0-core", @@ -337,31 +633,54 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?rev=da5bc39089c6dba8b03510837f1c7363ed3cc8b7#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "922588cb4b884b3951316a65581ccdfd1174af93c54093190878366812073329" dependencies = [ "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize", "bytemuck", "cfg-if", "getrandom", "hex", - "libm", - "log", + "num-bigint", "num-derive", "num-traits", "risc0-binfmt", + "risc0-circuit-recursion", "risc0-circuit-rv32im", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", + "rrs-lib", + "semver", "serde", + "sha2", "tracing", ] [[package]] name = "risc0-zkvm-platform" -version = "0.17.0" -source = "git+https://github.com/risc0/risc0?rev=da5bc39089c6dba8b03510837f1c7363ed3cc8b7#da5bc39089c6dba8b03510837f1c7363ed3cc8b7" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5819c0c3bfd8f20b1226c9d4ca1f342eb3d8385e71211a9383a879643d1dde" +dependencies = [ + "bytemuck", + "getrandom", + "libm", +] + +[[package]] +name = "rrs-lib" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" +dependencies = [ + "downcast-rs", + "paste", +] [[package]] name = "rustc-hex" @@ -369,6 +688,21 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + [[package]] name = "serde" version = "1.0.183" @@ -386,7 +720,7 @@ checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", ] [[package]] @@ -424,9 +758,20 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.28" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -440,6 +785,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -453,7 +799,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", ] [[package]] @@ -461,6 +807,19 @@ name = "tracing-core" version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] [[package]] name = "typenum" @@ -486,6 +845,12 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "version_check" version = "0.9.4" @@ -497,3 +862,43 @@ name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] diff --git a/methods/guest/Cargo.toml b/methods/guest/Cargo.toml index f82c462c..37679f01 100644 --- a/methods/guest/Cargo.toml +++ b/methods/guest/Cargo.toml @@ -11,7 +11,7 @@ path = "src/bin/fibonacci.rs" ethabi = { version = "18.0", default-features = false } # Directly import radium to silence warning about unused patch. See https://github.com/risc0/risc0/issues/549 radium = "=0.7.1" -risc0-zkvm = { git = "https://github.com/risc0/risc0", rev = "da5bc39089c6dba8b03510837f1c7363ed3cc8b7", default-features = false, features = ["std"] } +risc0-zkvm = { version = "0.20", default-features = false, features = ["std"] } [patch.crates-io] radium = { git = "https://github.com/bitvecto-rs/radium", rev = "723bed5abd75994ee4b7221b8b12c9f4e77ce408" } diff --git a/relay/Cargo.toml b/relay/Cargo.toml index 50ac2a33..932c9fec 100644 --- a/relay/Cargo.toml +++ b/relay/Cargo.toml @@ -2,20 +2,21 @@ name = "bonsai-ethereum-relay-cli" version = "0.1.0" edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] - +alloy-primitives = "0.4" +alloy-sol-types = "0.4" anyhow = "1.0" bincode = "1.3" bonsai-ethereum-relay = { workspace = true } bonsai-sdk = { workspace = true, features = ["async"] } bytemuck = "1.13.1" -clap = { version = "4.3", features = ["derive", "env"] } +clap = { version = "4.4", features = ["derive", "env"] } ethers = { version = "2.0", features = ["rustls", "ws"] } ethers-signers = { version = "2.0", features = ["aws"] } hex = "0.4.3" +humantime = "2.1.0" methods = { workspace = true } risc0-build = { workspace = true, features = ["guest-list"] } -risc0-zkvm = { workspace = true, default-features = false, features = ["prove"] } +risc0-zkvm = { workspace = true, default-features = false } tokio = { version = "1.19", features = ["full", "sync"] } diff --git a/relay/examples/callback_request.rs b/relay/examples/offchain_request.rs similarity index 65% rename from relay/examples/callback_request.rs rename to relay/examples/offchain_request.rs index cd5e04a2..f5ef6773 100644 --- a/relay/examples/callback_request.rs +++ b/relay/examples/offchain_request.rs @@ -12,10 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +use std::env; + +use alloy_primitives::U256; +use alloy_sol_types::SolValue; use anyhow::Context; use bonsai_ethereum_relay::sdk::client::{CallbackRequest, Client}; use clap::Parser; -use ethers::{abi::ethabi, types::Address}; +use ethers::{types::Address, utils::id}; use methods::FIBONACCI_ID; use risc0_zkvm::sha::Digest; @@ -29,38 +33,49 @@ struct Args { address: Address, /// Input N for calculating the Nth Fibonacci number. - number: u64, + number: u32, /// Bonsai Relay API URL. #[arg(long, env, default_value = "http://localhost:8080")] bonsai_relay_api_url: String, /// Bonsai API key. Used by the relay to send requests to the Bonsai proving - /// service. Defaults to empty, providing no authentication. - #[arg(long, env, default_value = "")] - bonsai_api_key: String, + /// service. Can be set to an empty string when DEV_MODE is enabled. + #[arg(long, env)] + bonsai_api_key: Option, } #[tokio::main] async fn main() -> anyhow::Result<()> { let args = Args::parse(); + // check for bonsai_api_key + if args.bonsai_api_key.is_none() && env::var("BONSAI_API_KEY").is_err() { + eprintln!( + "Error: the following required arguments were not provided: \ + \n'BONSAI_API_KEY' must be set either as an argument or as an environment variable. \ + \nIf `DEV_MODE` is enabled, you can use an empty string." + ); + std::process::exit(1); + } // initialize a relay client let relay_client = Client::from_parts( - args.bonsai_relay_api_url.clone(), // Set BONSAI_API_URL or replace this line. - args.bonsai_api_key.clone(), // Set BONSAI_API_KEY or replace this line. + args.bonsai_relay_api_url.clone(), + args.bonsai_api_key.unwrap(), ) .context("Failed to initialize the relay client")?; // Initialize the input for the FIBONACCI guest. - let input = ethabi::encode(&[ethers::abi::Token::Uint(args.number.into())]); + let input = U256::from(args.number).abi_encode(); + + // Set the function selector of the callback function. + let function_signature = "storeResult(uint256,uint256)"; + let function_selector = id(function_signature); // Create a CallbackRequest for your contract // example: (contracts/BonsaiStarter.sol). let request = CallbackRequest { - callback_contract: args.address, - // you can use the command `solc --hashes contracts/BonsaiStarter.sol` - // to get the value for your actual contract (9f2275c0: storeResult(uint256,uint256)) - function_selector: [0x9f, 0x22, 0x75, 0xc0], + callback_contract: args.address.into(), + function_selector, gas_limit: 3000000, image_id: Digest::from(FIBONACCI_ID).into(), input, diff --git a/relay/src/lib.rs b/relay/src/lib.rs index 58579405..677eb6db 100644 --- a/relay/src/lib.rs +++ b/relay/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2023 RISC Zero, Inc. +// Copyright 2024 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,72 +15,54 @@ use std::time::Duration; use anyhow::{anyhow, bail, Context, Result}; -use bonsai_sdk::alpha::{responses::SnarkProof, Client, SdkErr}; +use bonsai_sdk::alpha::{responses::SnarkReceipt, Client}; use risc0_build::GuestListEntry; -use risc0_zkvm::{ - Executor, ExecutorEnv, MemoryImage, Program, Receipt, ReceiptMetadata, MEM_SIZE, PAGE_SIZE, -}; +use risc0_zkvm::{compute_image_id, default_executor, ExecutorEnv, Receipt}; + +pub const POLL_INTERVAL_SEC: u64 = 4; /// Result of executing a guest image, possibly containing a proof. pub enum Output { - Execution { - journal: Vec, - }, - Bonsai { - journal: Vec, - receipt_metadata: ReceiptMetadata, - snark_proof: SnarkProof, - }, + Execution { journal: Vec }, + Bonsai { snark_receipt: SnarkReceipt }, } -/// Execute and prove the guest locally, on this machine, as opposed to sending -/// the proof request to the Bonsai service. +/// Execute the guest locally, as opposed to sending the proof request to the +/// Bonsai service. pub fn execute_locally(elf: &[u8], input: Vec) -> Result { - // Execute the guest program, generating the session trace needed to prove the - // computation. let env = ExecutorEnv::builder() - .add_input(&input) + .write_slice(&input) .build() - .context("Failed to build exec env")?; - let mut exec = Executor::from_elf(env, elf).context("Failed to instantiate executor")?; - let session = exec - .run() - .context(format!("Failed to run executor {:?}", &input))?; - + .context("Failed to build ExecutorEnv")?; + let exec = default_executor(); + let session_info = exec.execute(env, elf).context("Execution failed")?; Ok(Output::Execution { - journal: session.journal, + journal: session_info.journal.bytes, }) } -pub const POLL_INTERVAL_SEC: u64 = 4; - fn get_digest(elf: &[u8]) -> Result { - let program = Program::load_elf(elf, MEM_SIZE as u32)?; - let image = MemoryImage::new(&program, PAGE_SIZE as u32)?; - Ok(hex::encode(image.compute_id())) + Ok(hex::encode(compute_image_id(elf)?)) } pub fn prove_alpha(elf: &[u8], input: Vec) -> Result { - let client = Client::from_env().context("Failed to create client from env var")?; + let client = + Client::from_env(risc0_zkvm::VERSION).context("Failed to create client from env var")?; let img_id = get_digest(elf).context("Failed to generate elf memory image")?; - match client.upload_img(&img_id, elf.to_vec()) { - Ok(()) => (), - Err(SdkErr::ImageIdExists) => (), - Err(err) => return Err(err.into()), - } + client.upload_img(&img_id, elf.to_vec())?; let input_id = client .upload_input(input) .context("Failed to upload input data")?; let session = client - .create_session(img_id, input_id) + .create_session(img_id, input_id, vec![]) .context("Failed to create remote proving session")?; // Poll and await the result of the STARK rollup proving session. - let receipt: Receipt = (|| { + let _receipt: Receipt = (|| { loop { let res = match session.status(&client) { Ok(res) => res, @@ -102,7 +84,7 @@ pub fn prove_alpha(elf: &[u8], input: Vec) -> Result { ) .context("Failed to download receipt")?; let receipt: Receipt = bincode::deserialize(&receipt_buf) - .context("Failed to deserialize SessionReceipt")?; + .context("Failed to deserialize Receipt")?; // eprintln!("Completed STARK proof on bonsai alpha backend!"); return Ok(receipt); } @@ -115,10 +97,9 @@ pub fn prove_alpha(elf: &[u8], input: Vec) -> Result { } } })()?; - let metadata = receipt.get_metadata()?; let snark_session = client.create_snark(session.uuid)?; - let snark_proof: SnarkProof = (|| loop { + let snark_receipt: SnarkReceipt = (|| loop { let res = snark_session.status(&client)?; match res.status.as_str() { "RUNNING" => { @@ -139,11 +120,7 @@ pub fn prove_alpha(elf: &[u8], input: Vec) -> Result { } })()?; - Ok(Output::Bonsai { - journal: receipt.journal, - receipt_metadata: metadata, - snark_proof, - }) + Ok(Output::Bonsai { snark_receipt }) } pub fn resolve_guest_entry<'a>( diff --git a/relay/src/main.rs b/relay/src/main.rs index 670d99ab..9ec39c43 100644 --- a/relay/src/main.rs +++ b/relay/src/main.rs @@ -1,4 +1,4 @@ -// Copyright 2023 RISC Zero, Inc. +// Copyright 2024 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,23 +15,25 @@ use std::io::Write; use anyhow::Context; -use bonsai_ethereum_relay::{EthersClientConfig, Relayer}; +use bonsai_ethereum_relay::{tokenize_snark_receipt, EthersClientConfig, Relayer}; use bonsai_ethereum_relay_cli::{resolve_guest_entry, resolve_image_output, Output}; -use bonsai_sdk::{ - alpha::{responses::SnarkProof, SdkErr}, - alpha_async::{get_client_from_parts, put_image}, -}; +use bonsai_sdk::alpha_async::{get_client_from_parts, upload_img}; use clap::{Args, Parser, Subcommand}; use ethers::{ abi::{Hash, Token, Tokenizable}, - types::{Address, U256}, + types::Address, }; use methods::GUEST_LIST; use risc0_zkvm::sha::Digest; /// Index 0 private key generated by default in Anvil. -const ANVIL_DEFAULT_KEY: &'static str = - "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"; +const ANVIL_DEFAULT_KEY: &str = "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"; + +/// Interval between connection attempts in case of connection loss. +const CONNECTION_RETRY_INTERVAL: std::time::Duration = std::time::Duration::from_secs(5); + +/// Number of connection attempts. +const CONNECTION_RETRY_ATTEMPTS: u64 = 60; #[derive(Subcommand)] enum Command { @@ -73,6 +75,14 @@ enum Command { default_value = ANVIL_DEFAULT_KEY )] private_key: String, + + /// Number of connection attempts. + #[arg(short = 'a', long, env, default_value_t = CONNECTION_RETRY_ATTEMPTS)] + connection_retry_attempts: u64, + + /// Interval between connection attempts. + #[arg(short = 'i', long, env, default_value_t = CONNECTION_RETRY_INTERVAL.into(), value_parser = humantime::parse_duration)] + connection_retry_interval: humantime::Duration, }, } @@ -103,35 +113,6 @@ pub struct App { command: Command, } -/// Parse a slice of strings as a fixed array of uint256 tokens. -fn parse_to_tokens(slice: &[String]) -> anyhow::Result { - Ok(Token::FixedArray( - slice - .iter() - .map(|s| -> anyhow::Result<_> { Ok(U256::from_str_radix(s, 16)?.into_token()) }) - .collect::, _>>()?, - )) -} - -fn tokenize_snark_proof(proof: &SnarkProof) -> anyhow::Result { - if proof.b.len() != 2 { - anyhow::bail!("hex-strings encoded proof is not well formed"); - } - for pair in [&proof.a, &proof.c].into_iter().chain(proof.b.iter()) { - if pair.len() != 2 { - anyhow::bail!("hex-strings encoded proof is not well formed"); - } - } - Ok(Token::FixedArray(vec![ - parse_to_tokens(&proof.a)?, - Token::FixedArray(vec![ - parse_to_tokens(&proof.b[0])?, - parse_to_tokens(&proof.b[1])?, - ]), - parse_to_tokens(&proof.c)?, - ])) -} - #[tokio::main] async fn main() -> anyhow::Result<()> { let args = App::parse(); @@ -157,20 +138,12 @@ async fn main() -> anyhow::Result<()> { (true, Output::Execution { journal }) => { vec![Token::Bytes(journal)] } - ( - false, - Output::Bonsai { - journal, - receipt_metadata, - snark_proof, - }, - ) => { + (false, Output::Bonsai { snark_receipt }) => { vec![ - Token::Bytes(journal), - Hash::from(<[u8; 32]>::from(receipt_metadata.post.digest())) - .into_token(), - Token::Bytes(ethers::abi::encode(&[tokenize_snark_proof( - &snark_proof, + Token::Bytes(snark_receipt.journal), + Token::FixedBytes(snark_receipt.post_state_digest), + Token::Bytes(ethers::abi::encode(&[tokenize_snark_receipt( + &snark_receipt.snark, )?])), ] } @@ -217,17 +190,24 @@ async fn main() -> anyhow::Result<()> { eth_node, eth_chain_id, private_key, + connection_retry_attempts, + connection_retry_interval, } => { let relayer = Relayer { rest_api: true, - dev_mode: dev_mode, + dev_mode, rest_api_port: "8080".to_string(), bonsai_api_url: args.global_opts.bonsai_api_url.clone(), bonsai_api_key: args.global_opts.bonsai_api_key.clone(), relay_contract_address: relay_address, }; - let client_config = - EthersClientConfig::new(eth_node, eth_chain_id, private_key.try_into()?); + let client_config = EthersClientConfig::new( + eth_node, + eth_chain_id, + private_key.try_into()?, + connection_retry_attempts, + connection_retry_interval.into(), + ); let server_handle = tokio::spawn(relayer.run(client_config)); // HACK: Wait 1 second to give local Bonsai a chance to start. @@ -270,20 +250,20 @@ async fn upload_images( ))); // upload binary to Bonsai - let bonsai_client = - get_client_from_parts(bonsai_api_url.to_string(), bonsai_api_key.to_string()).await?; + let bonsai_client = get_client_from_parts( + bonsai_api_url.to_string(), + bonsai_api_key.to_string(), + risc0_zkvm::VERSION, + ) + .await?; let img_id = image_id.clone(); - match put_image( + upload_img( bonsai_client.clone(), img_id.clone(), guest_entry.elf.to_vec(), ) - .await - { - Ok(()) | Err(SdkErr::ImageIdExists) => Ok::<_, anyhow::Error>(()), - Err(err) => Err(err.into()), - }?; + .await?; image_ids.push(guest_entry.image_id.into()); } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index bcfc7fa3..6c18dfcd 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2023-03-06" -components = [ "rustfmt", "rust-src" ] -profile = "minimal" +channel = "stable" +components = ["rustfmt", "rust-src"] +profile = "minimal" \ No newline at end of file diff --git a/script/BonsaiDeploy.sol b/script/BonsaiDeploy.sol index 658fffc9..1c7f9c71 100644 --- a/script/BonsaiDeploy.sol +++ b/script/BonsaiDeploy.sol @@ -18,10 +18,11 @@ pragma solidity ^0.8.17; import {Script} from "forge-std/Script.sol"; import {console2} from "forge-std/console2.sol"; -import {IBonsaiRelay} from "bonsai/IBonsaiRelay.sol"; -import {BonsaiRelay} from "bonsai/BonsaiRelay.sol"; +import {IBonsaiRelay} from "bonsai/relay/IBonsaiRelay.sol"; +import {BonsaiRelay} from "bonsai/relay/BonsaiRelay.sol"; import {BonsaiCheats} from "bonsai/BonsaiCheats.sol"; -import {BonsaiTestRelay} from "bonsai/BonsaiTestRelay.sol"; +import {BonsaiTestRelay} from "bonsai/relay/BonsaiTestRelay.sol"; +import {ControlID} from "bonsai/groth16/ControlID.sol"; import {RiscZeroGroth16Verifier} from "bonsai/groth16/RiscZeroGroth16Verifier.sol"; import {IRiscZeroVerifier} from "bonsai/IRiscZeroVerifier.sol"; @@ -80,7 +81,7 @@ contract BonsaiDeploy is Script, BonsaiCheats { console2.log("Using IRiscZeroVerifier at ", address(verifierAddr)); verifier = IRiscZeroVerifier(verifierAddr); } else { - verifier = new RiscZeroGroth16Verifier(); + verifier = new RiscZeroGroth16Verifier(ControlID.CONTROL_ID_0, ControlID.CONTROL_ID_1); console2.log("Deployed RiscZeroGroth16Verifier to ", address(verifier)); } diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index a7c5c237..a9bd3d58 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.17; import {Script} from "forge-std/Script.sol"; import {console2} from "forge-std/console2.sol"; -import {IBonsaiRelay} from "bonsai/IBonsaiRelay.sol"; +import {IBonsaiRelay} from "bonsai/relay/IBonsaiRelay.sol"; import {BonsaiCheats} from "bonsai/BonsaiCheats.sol"; import {BonsaiDeploy} from "./BonsaiDeploy.sol"; diff --git a/tests/BonsaiStarter.t.sol b/tests/BonsaiStarter.t.sol index c19752ab..1697d378 100644 --- a/tests/BonsaiStarter.t.sol +++ b/tests/BonsaiStarter.t.sol @@ -17,21 +17,39 @@ pragma solidity ^0.8.17; import {BonsaiTest} from "bonsai/BonsaiTest.sol"; -import {IBonsaiRelay} from "bonsai/IBonsaiRelay.sol"; +import {IBonsaiRelay} from "bonsai/relay/IBonsaiRelay.sol"; import {BonsaiStarter} from "contracts/BonsaiStarter.sol"; contract BonsaiStarterTest is BonsaiTest { function setUp() public withRelay {} - function testMockCall() public { + // Test the BonsaiStarter contract by mocking an off-chain callback request + function testOffChainMock() public { + bytes32 imageId = queryImageId("FIBONACCI"); // Deploy a new starter instance - BonsaiStarter starter = new BonsaiStarter( - IBonsaiRelay(bonsaiRelay), - queryImageId('FIBONACCI')); + BonsaiStarter starter = new BonsaiStarter(IBonsaiRelay(bonsaiRelay), imageId); - // Anticipate a callback request to the relay + // Anticipate a callback invocation on the starter contract + vm.expectCall(address(starter), abi.encodeWithSelector(BonsaiStarter.storeResult.selector)); + // Relay the solution as a callback + uint64 BONSAI_CALLBACK_GAS_LIMIT = 100000; + runCallbackRequest( + imageId, abi.encode(128), address(starter), starter.storeResult.selector, BONSAI_CALLBACK_GAS_LIMIT + ); + + // Validate the Fibonacci solution value + uint256 result = starter.fibonacci(128); + assertEq(result, uint256(407305795904080553832073954)); + } + + // Test the BonsaiStarter contract by mocking an on-chain callback request + function testOnChainMock() public { + // Deploy a new starter instance + BonsaiStarter starter = new BonsaiStarter(IBonsaiRelay(bonsaiRelay), queryImageId("FIBONACCI")); + + // Anticipate an on-chain callback request to the relay vm.expectCall(address(bonsaiRelay), abi.encodeWithSelector(IBonsaiRelay.requestCallback.selector)); - // Request the callback + // Request the on-chain callback starter.calculateFibonacci(128); // Anticipate a callback invocation on the starter contract diff --git a/tests/BonsaiStarterLowLevel.t.sol b/tests/BonsaiStarterLowLevel.t.sol index c7f21075..0ce1b702 100644 --- a/tests/BonsaiStarterLowLevel.t.sol +++ b/tests/BonsaiStarterLowLevel.t.sol @@ -17,7 +17,7 @@ pragma solidity ^0.8.17; import {BonsaiTest} from "bonsai/BonsaiTest.sol"; -import {IBonsaiRelay} from "bonsai/IBonsaiRelay.sol"; +import {IBonsaiRelay} from "bonsai/relay/IBonsaiRelay.sol"; import {BonsaiStarterLowLevel} from "../contracts/BonsaiStarterLowLevel.sol"; contract BonsaiStarterLowLevelTest is BonsaiTest { @@ -25,9 +25,7 @@ contract BonsaiStarterLowLevelTest is BonsaiTest { function testMockLowLevelCall() public { // Deploy a new starter instance - BonsaiStarterLowLevel starter = new BonsaiStarterLowLevel( - IBonsaiRelay(bonsaiRelay), - queryImageId('FIBONACCI')); + BonsaiStarterLowLevel starter = new BonsaiStarterLowLevel(IBonsaiRelay(bonsaiRelay), queryImageId("FIBONACCI")); // Anticipate a callback request to the relay vm.expectCall(address(bonsaiRelay), abi.encodeWithSelector(IBonsaiRelay.requestCallback.selector));