diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d8bcaaf..edd29fa7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,7 +57,7 @@ jobs: strategy: fail-fast: false matrix: - toolchain: [ nightly, beta, stable, 1.77.0 ] + toolchain: [ nightly, beta, stable, 1.81.0 ] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 3711d7ad..9ba863f5 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -5,12 +5,12 @@ on: branches: - master tags: - - 'v[0-9]+\.*' + - 'v[0-9]+.*' pull_request: branches: - master - develop - - 'v[0-9]+.[0-9]+' + - 'v[0-9]+.?*' env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index edcc11e2..1204bbe9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,4 +26,4 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Test ${{matrix.os}} - run: cargo test --workspace --all-features --no-fail-fast + run: cargo test --workspace --all-features --no-fail-fast -- --include-ignored diff --git a/Cargo.lock b/Cargo.lock index 65f8658c..d685db73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "amplify" -version = "4.7.0" +version = "4.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7147b742325842988dd6c793d55f58df3ae36bccf7d9b6e07db10ab035be343d" +checksum = "3a9d7cb29f1d4c6ec8650abbee35948b8bdefb7f0750a26445ff593eb9bf7fcf" dependencies = [ "amplify_apfloat", "amplify_derive", @@ -82,9 +82,9 @@ dependencies = [ [[package]] name = "ascii-armor" -version = "0.7.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4966ac403dc4a666d8131dfe4df684f45acc68d4c7e768db89c463aa5617910" +checksum = "0269eb842ec952b027df0fc33184b6a0dea5ea473160b36992274eb53758461e" dependencies = [ "amplify", "baid64", @@ -95,20 +95,20 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.101", ] [[package]] name = "baid64" -version = "0.2.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95dabc2759e01e2c382968639868a701f384a18890934f9e75d4feb4d6623794" +checksum = "6cb4a8b2f1afee4ef00a190b260ad871842b93206177b59631fecd325d48d538" dependencies = [ "amplify", "base64", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block-buffer" @@ -148,15 +148,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "cfg-if" @@ -166,7 +160,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "client_side_validation" -version = "0.11.0-beta.9" +version = "0.11.1-alpha.2" dependencies = [ "commit_verify", "serde", @@ -175,7 +169,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" -version = "0.11.0-beta.9" +version = "0.11.1-alpha.2" dependencies = [ "amplify", "amplify_syn", @@ -189,7 +183,7 @@ dependencies = [ [[package]] name = "commit_verify" -version = "0.11.0-beta.9" +version = "0.11.1-alpha.2" dependencies = [ "amplify", "commit_encoding_derive", @@ -204,9 +198,9 @@ dependencies = [ [[package]] name = "compiletest_rs" -version = "0.11.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0f4b0a27f9efcea6a012305682f0f7c5691df7097b9eaf6abb50b75c89a8af" +checksum = "f150fe9105fcd2a57cad53f0c079a24de65195903ef670990f5909f695eac04c" dependencies = [ "diff", "filetime", @@ -221,24 +215,18 @@ dependencies = [ "serde_derive", "serde_json", "tester", - "winapi", + "windows-sys 0.59.0", ] [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -288,9 +276,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "filetime" @@ -325,30 +313,32 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] -name = "half" -version = "2.4.1" +name = "getrandom" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", - "crunchy", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" @@ -364,9 +354,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "indexmap" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown", @@ -374,9 +364,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "lazy_static" @@ -386,9 +376,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libredox" @@ -403,9 +393,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "memchr" @@ -415,11 +405,11 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miow" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ffbca2f655e33c08be35d87278e5b18b89550a37dbd598c20db92f6a471123" +checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -440,9 +430,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "paste" @@ -452,53 +442,58 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ "zerocopy", ] [[package]] name = "proc-macro2" -version = "1.0.87" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" -version = "0.8.5" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ - "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -506,18 +501,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom", + "getrandom 0.3.2", ] [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ "bitflags", ] @@ -528,16 +523,16 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.16", "libredox", "thiserror", ] [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -547,9 +542,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -573,9 +568,9 @@ dependencies = [ [[package]] name = "rustfix" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f5b7fc8060f4f8373f9381a630304b42e1183535d9beb1d3f596b236c9106a" +checksum = "82fa69b198d894d84e23afde8e9ab2af4400b2cba20d6bf2b428a8b01c222c5a" dependencies = [ "serde", "serde_json", @@ -585,41 +580,41 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.101", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -639,9 +634,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -650,7 +645,7 @@ dependencies = [ [[package]] name = "single_use_seals" -version = "0.11.0-beta.9" +version = "0.11.1-alpha.2" dependencies = [ "amplify_derive", "async-trait", @@ -658,21 +653,20 @@ dependencies = [ [[package]] name = "strict_encoding" -version = "2.7.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69b4893cf054e129d5288a565102124520d7b94eb9589d1e78202abc7e2092d" +checksum = "8553c0321466c11aa1e33f082c9190194f380efd8824bf5ce4fa56b64b875be9" dependencies = [ "amplify", - "half", "strict_encoding_derive", "wasm-bindgen", ] [[package]] name = "strict_encoding_derive" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4f9b678862372f8e439bcaafc27df7610ea93b06d2deb6244dec0af4259ce6" +checksum = "34e3bc6e4a2450420b4dbfb6929d9ce005e8c36cf73bf215db99f0d09c9fa79f" dependencies = [ "amplify_syn", "heck", @@ -683,14 +677,13 @@ dependencies = [ [[package]] name = "strict_types" -version = "2.7.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f16e8855a575633815f01482ac927ebaca3d2485aec8e17226c6826de29154e" +checksum = "07dd1bdf4bfce0a1ff3eec041e7d4d20b06d22ca2aaf71338726dd9609e57a5e" dependencies = [ "amplify", "ascii-armor", "baid64", - "half", "indexmap", "sha2", "strict_encoding", @@ -721,9 +714,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -756,29 +749,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.101", ] [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-core", @@ -786,24 +779,24 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-width" @@ -819,9 +812,9 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vesper-lang" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f72ebd3b32f16ee8ace2bd3058c2bfa0f4820992bd4ea86e73ba228bb13dd2b0" +checksum = "cd2b7e3e27aeb0524204e58042f6e4531a720745d1b1a3978d3a084f1885f63d" dependencies = [ "amplify", "strict_encoding", @@ -833,37 +826,46 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.101", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -871,22 +873,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "winapi" @@ -912,17 +917,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 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 0.48.5", ] [[package]] @@ -931,7 +930,22 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -952,9 +966,9 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" @@ -964,9 +978,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" @@ -976,9 +990,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" @@ -994,9 +1008,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" @@ -1006,9 +1020,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" @@ -1018,9 +1032,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" @@ -1030,9 +1044,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" @@ -1040,23 +1054,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.101", ] diff --git a/Cargo.toml b/Cargo.toml index babd2e51..a82a21f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,18 +13,18 @@ default-members = [ ] [workspace.package] -version = "0.11.0-beta.9" +version = "0.11.1-alpha.2" authors = ["Dr Maxim Orlovsky "] homepage = "https://github.com/LNP-BP" repository = "https://github.com/LNP-BP/client_side_validation" -rust-version = "1.77.0" # Due to `rustfix` +rust-version = "1.81.0" edition = "2021" license = "Apache-2.0" [workspace.dependencies] -amplify = "4.7.0" -strict_encoding = "2.7.0" -strict_types = "2.7.0" +amplify = "~4.8.0" +strict_encoding = "~2.8.2" +strict_types = "~2.8.3" [package] name = "client_side_validation" @@ -46,8 +46,8 @@ name = "client_side_validation" path = "src/lib.rs" [dependencies] -commit_verify = { version = "0.11.0-beta.9", path = "./commit_verify", default-features = false } -single_use_seals = { version = "0.11.0-beta.9", path = "./single_use_seals" } +commit_verify = { version = "0.11.1-alpha.2", path = "./commit_verify", default-features = false } +single_use_seals = { version = "0.11.1-alpha.2", path = "./single_use_seals" } serde_crate = { package = "serde", version = "1", features = ["derive"], optional = true } [features] diff --git a/MANIFEST.yml b/MANIFEST.yml index eb94ce12..e90c0a90 100644 --- a/MANIFEST.yml +++ b/MANIFEST.yml @@ -3,7 +3,7 @@ Type: Library Kind: Free software License: Apache-2.0 Language: Rust -Compiler: 1.77 +Compiler: 1.81 Author: Maxim Orlovsky Maintained: UBIDECO Institute, Switzerland Maintainers: diff --git a/codecov.yml b/codecov.yml index 240d7310..453306aa 100644 --- a/codecov.yml +++ b/codecov.yml @@ -8,12 +8,10 @@ coverage: status: project: default: - target: 75% threshold: 1% branches: - master patch: default: - target: 60% threshold: 1% only_pulls: true diff --git a/commit_verify/Cargo.toml b/commit_verify/Cargo.toml index 860d875e..df71eed7 100644 --- a/commit_verify/Cargo.toml +++ b/commit_verify/Cargo.toml @@ -25,15 +25,15 @@ required-features = ["stl"] amplify = { workspace = true, features = ["hex", "apfloat"] } strict_encoding = { workspace = true } strict_types = { workspace = true } -vesper-lang = "0.1.0" -commit_encoding_derive = { version = "0.11.0-beta.8", path = "derive" } +vesper-lang = "0.2.1" +commit_encoding_derive = { version = "0.11.1-alpha.2", path = "derive" } sha2 = "0.10.8" ripemd = "0.1.3" -rand = { version = "0.8.5", optional = true } +rand = { version = "0.9.1", optional = true } serde_crate = { version = "1.0", package = "serde", optional = true } [dev-dependencies] -rand = "0.8.5" +rand = "0.9.1" [features] default = ["derive"] diff --git a/commit_verify/src/lib.rs b/commit_verify/src/lib.rs index 9b509cb3..a7b45940 100644 --- a/commit_verify/src/lib.rs +++ b/commit_verify/src/lib.rs @@ -155,7 +155,7 @@ mod _reserved { #[derive(Default)] pub struct UntaggedUnitVisitor; - impl<'de> Visitor<'de> for UntaggedUnitVisitor { + impl Visitor<'_> for UntaggedUnitVisitor { type Value = (); fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/commit_verify/src/mpc/block.rs b/commit_verify/src/mpc/block.rs index 229d364e..0e5832ff 100644 --- a/commit_verify/src/mpc/block.rs +++ b/commit_verify/src/mpc/block.rs @@ -435,12 +435,12 @@ impl MerkleBlock { message: Message, ) -> Result { let block = MerkleBlock::with(proof, protocol_id, message)?; - self.merge_reveal(block) + self.merge_reveal(&block) } /// Merges two merkle blocks together, joining revealed information from /// each one of them. - pub fn merge_reveal(&mut self, other: MerkleBlock) -> Result { + pub fn merge_reveal(&mut self, other: &MerkleBlock) -> Result { let orig = self.clone(); let base_root = self.commit_id(); let merged_root = other.commit_id(); @@ -789,7 +789,7 @@ mod test { let mut merged_block = MerkleBlock::with(proof, pid, msg).unwrap(); for (proof, (pid, msg)) in iter { let block = MerkleBlock::with(proof, pid, msg).unwrap(); - if let Err(err) = merged_block.merge_reveal(block.clone()) { + if let Err(err) = merged_block.merge_reveal(&block) { eprintln!("Error: {err}"); eprintln!("Source tree: {mpc_tree:#?}"); eprintln!("Source block: {mpc_block:#?}"); diff --git a/commit_verify/src/mpc/tree.rs b/commit_verify/src/mpc/tree.rs index 26c6d267..2184a678 100644 --- a/commit_verify/src/mpc/tree.rs +++ b/commit_verify/src/mpc/tree.rs @@ -120,7 +120,7 @@ mod commit { fn try_commit(source: &MultiSource) -> Result { #[cfg(feature = "rand")] - use rand::{thread_rng, RngCore}; + use rand::{rng, RngCore}; let msg_count = source.messages.len(); @@ -132,9 +132,7 @@ mod commit { } #[cfg(feature = "rand")] - let entropy = source - .static_entropy - .unwrap_or_else(|| thread_rng().next_u64()); + let entropy = source.static_entropy.unwrap_or_else(|| rng().next_u64()); #[cfg(not(feature = "rand"))] let entropy = source.static_entropy.expect( "use must use `rand` feature for crate commit_verify if you do not provide with a \ @@ -293,6 +291,7 @@ mod test { } #[test] + #[ignore = "should be executed alone for performance reasons"] fn tree_huge() { // Tree with 8192 protocol-messages: depth 23, cofactor 103. Serialized length // 1081361 bytes. Takes 71589 msecs to generate @@ -374,6 +373,7 @@ mod test { } #[test] + #[ignore = "should be executed alone for performance reasons"] fn scalability() { let mut depths = vec![]; let mut cofacs = vec![]; diff --git a/commit_verify/src/stl.rs b/commit_verify/src/stl.rs index 4fcd398e..6bfea75e 100644 --- a/commit_verify/src/stl.rs +++ b/commit_verify/src/stl.rs @@ -24,12 +24,12 @@ use strict_types::{CompileError, LibBuilder, TypeLib}; use crate::{mpc, MerkleHash, MerkleNode, ReservedBytes, StrictHash, LIB_NAME_COMMIT_VERIFY}; pub const LIB_ID_COMMIT_VERIFY: &str = - "stl:egMd32l9-y$Kod0o-$FRcNAV-Q4U$O5h-pskW9YM-$irF0yY#miller-pancake-elastic"; + "stl:TGUWcCPX-99GBEi0-tlbMxUg-1SS_~Qh-_IdYDJt-zjJ3uMI#violet-panther-herbert"; fn _commit_verify_stl() -> Result { - LibBuilder::new(libname!(LIB_NAME_COMMIT_VERIFY), tiny_bset! { - strict_types::stl::std_stl().to_dependency() - }) + LibBuilder::with(libname!(LIB_NAME_COMMIT_VERIFY), [ + strict_types::stl::std_stl().to_dependency_types() + ]) .transpile::>() .transpile::>() .transpile::>() diff --git a/single_use_seals/Cargo.toml b/single_use_seals/Cargo.toml index 2839dbfa..934e4f33 100644 --- a/single_use_seals/Cargo.toml +++ b/single_use_seals/Cargo.toml @@ -17,7 +17,7 @@ name = "single_use_seals" path = "src/lib.rs" [dependencies] -amplify_derive = "4.0.1" +amplify_derive = "~4.0.1" async-trait = { version = "0.1.81", optional = true } [features] diff --git a/stl/CommitVerify@0.1.0.sta b/stl/CommitVerify@0.1.0.sta index 5af897f2..bece03da 100644 --- a/stl/CommitVerify@0.1.0.sta +++ b/stl/CommitVerify@0.1.0.sta @@ -1,31 +1,31 @@ -----BEGIN STRICT TYPE LIB----- -Id: stl:egMd32l9-y$Kod0o-$FRcNAV-Q4U$O5h-pskW9YM-$irF0yY#miller-pancake-elastic +Id: stl:TGUWcCPX-99GBEi0-tlbMxUg-1SS_~Qh-_IdYDJt-zjJ3uMI#violet-panther-herbert Name: CommitVerify -Dependencies: Std#ralph-blue-lucky -Check-SHA256: ce5ec3f773efffb6535247e84c9da1bfc1656c1a35c616832abf5eecaa5feb44 +Dependencies: Std#delete-roman-hair +Check-SHA256: f64d9326d6c5c04e7fe205e71e2c2873b220d9b60ededce3bd17324ff5731a66 -3`1{iZE18?WpZg|c>&5S9&dx0-7pM3Z=O*v*GCA9fL-<|HrZsA`NnJlR3`&dbYuYoQ*>kj0A^Tl*p6J$ +3`1{iZE18?WpZg|c>#in>rD>}a8$2!O9kk`*PSB+rd(so&!uOW`TABoF=_)-bYuYoQ*>kj0A^Tl*p6J$ 36SYb7g#;qpQBTpwL(~+!(f@;t~vt?k^)sV5C958Z*6U9bZupBbOiwb2LJ#-AOHkRWnpFn0uTvlZfId* X>?^|00sgGaB^>SZ)0z40Wg(*<{e=)S-S-YV@1=_p5>Oab-~jCR3C`SFec^=zG+gvC|O;Wo~qGZ*X}41_B3VZgg^QaCra#2m^3$a{vGY3r%HmYiwmg -Y;R+01_T9UWpH$80?I5NZ-bfLFbqC#o>4E?M+l67UG^w8*<_XZ#%uyqCuUf1*p6J$36SYb7g#;qpQBTp +Y;R+01_T9UWpH$80)mO_O%DrjRIhYP1?a)oog)LLTw}}6rDvG=`c^zKYGzn)*p6J$36SYb7g#;qpQBTp wL(~+!(f@;t~vt?k_cmOW?^G=Z*l+t0t{nvZ*y}~Wn*+{Z*Bkx0ob*-9G+(AKhLw+s!eDmlO2> &}_PPHjCBJR{;P3000000RR90{{R3000(7mbaHQSc>n|g00eGtZe;)f009JZZ*64&1pxp62oFtVa%*g5 -LvLrD>}a8$2!O9kk`*PSB+rd(so&!uOW`TABoF=}R5aM+Gq(Fu_0Ocz)^ +@GUUoV7w&pu=F9->y0X3z7(9Z)Ra*bZ>G100IhaWpZn5Wm0c%bOAV?Lxv|61vo|G100IbYWpi_3 +000000000W000000000AO=WUxY-Ln(Wn~5h1!QG#bZ7#CiR(=d3vg7gbV~*3!PlK51EySK%g?1}nECov +JTYo!Sa8^mT+s=T=}Z?`J=~w8Q=GLzSfImTncuED0}GM|Wo~qGZ*X}400;G100IbYWpi_3 XJvB$3IQ;ce&!uvG+Da^2;||fJ!&Dp*8BS%F@mRgpt-$m)gMQunKY@^NKR1twFJLRYVe 6X<)?o3YaX0000000030|Nj6000003ZDDW#3IG5E00ja8FqMAh9bq(Cy9Eg3;jcYvA-~r9`yDZYr+MW? bl_I80W~+NQ5DGQh1^p2tAX-yWl;qtQ~GYywm#W>|38j$F|Rkm*bpSUudIqf?xWBLk*fW6RH_XPEi=Ry;9kW>|38j$F|Rkm*bpSUudIqf?x@I6Zgfm#VP*gZ0t#?)Z**^C Z){0q0Wg(*<{e=)S-S-YV@1=_p5>Oab-~j CR3C`SFec^=zG+gvC{ diff --git a/stl/CommitVerify@0.1.0.stl b/stl/CommitVerify@0.1.0.stl index 6f83b362..5913efed 100644 Binary files a/stl/CommitVerify@0.1.0.stl and b/stl/CommitVerify@0.1.0.stl differ diff --git a/stl/CommitVerify@0.1.0.sty b/stl/CommitVerify@0.1.0.sty index ab2f6ba6..e2cd97a6 100644 --- a/stl/CommitVerify@0.1.0.sty +++ b/stl/CommitVerify@0.1.0.sty @@ -1,5 +1,5 @@ {- - Id: stl:egMd32l9-y$Kod0o-$FRcNAV-Q4U$O5h-pskW9YM-$irF0yY#miller-pancake-elastic + Id: stl:TGUWcCPX-99GBEi0-tlbMxUg-1SS_~Qh-_IdYDJt-zjJ3uMI#violet-panther-herbert Name: CommitVerify Version: 0.1.0 Description: Client-side-validation deterministic commitments @@ -11,7 +11,7 @@ @context typelib CommitVerify -import Std#ralph-blue-lucky +import Std#delete-roman-hair use U5#orbit-graph-sonic diff --git a/stl/Merkle.vesper b/stl/Merkle.vesper index c4ee87a0..42a17b6f 100644 --- a/stl/Merkle.vesper +++ b/stl/Merkle.vesper @@ -10,91 +10,91 @@ Merklization vesper lexicon=types+commitments -- General merklization workflows -MerkleHash commitment hasher=SHA256 tagged=urn:ubideco:merkle:node#2024-01-31 - MerkleNode serialized +commitment MerkleHash, hasher SHA256, tagged urn:ubideco:merkle:node#2024-01-31 + serialized MerkleNode -MerkleNode rec - branching enum NodeBranching void=0 single=1 branch=2 - depth is U8 - width is U256 - node1 bytes len=32 aka=MerkleHash - node2 bytes len=32 aka=MerkleHash +rec MerkleNode + enum branching, NodeBranching, void 0, single 1, branch 2 + is depth, U8 + is width, U256 + bytes node1, len 32, aka MerkleHash + bytes node2, len 32, aka MerkleHash -- Multi-protocol commitment workflows -MerkleHash commitment hasher=SHA256 tagged=urn:ubideco:merkle:node#2024-01-31 - Leaf serialized - -Leaf union - inhabited rec tag=0 - protocol bytes len=32 aka=ProtocolId - message bytes len=32 aka=Message - entropy rec tag=1 - entropy is U64 - pos is U32 - -Commitment commitment hasher=SHA256 tagged=urn:ubideco:mpc:commitment#2024-01-31 - MerkleConcealed serialized - -MerkleConcealed rec - depth enum { - U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 - _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 - _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 - _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 +commitment MerkleHash, hasher SHA256, tagged urn:ubideco:merkle:node#2024-01-31 + serialized Leaf + +union Leaf + rec inhabited, tag 0 + bytes protocol, len 32, aka ProtocolId + bytes message, len 32, aka Message + rec entropy, tag 1 + is entropy, U64 + is pos, U32 + +commitment Commitment, hasher SHA256, tagged urn:ubideco:mpc:commitment#2024-01-31 + serialized MerkleConcealed + +rec MerkleConcealed + enum depth { + U5, _0 0, _1 1, _2 2, _3 3, _4 4, _5 5, _6 6, _7 7 + _8 8, _9 9, _10 10, _11 11, _12 12, _13 13, _14 14, _15 15 + _16 16, _17 17, _18 18, _19 19, _20 20, _21 21, _22 22, _23 23 + _24 24, _25 25, _26 26, _27 27, _28 28, _29 29, _30 30, _31 31 } - cofactor is U16 - merkleRoot bytes len=32 aka=MerkleHash - -Commitment commitment hasher=SHA256 tagged=urn:ubideco:mpc:commitment#2024-01-31 - MerkleConcealed concealed concealed=MerkleConcealed - -MerkleBlock rec - depth enum { - U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 - _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 - _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 - _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + is cofactor, U16 + bytes merkleRoot, len 32, aka MerkleHash + +commitment Commitment, hasher SHA256, tagged urn:ubideco:mpc:commitment#2024-01-31 + concealed MerkleConcealed, concealed MerkleConcealed + +rec MerkleBlock + enum depth { + U5, _0 0, _1 1, _2 2, _3 3, _4 4, _5 5, _6 6, _7 7 + _8 8, _9 9, _10 10, _11 11, _12 12, _13 13, _14 14, _15 15 + _16 16, _17 17, _18 18, _19 19, _20 20, _21 21, _22 22, _23 23 + _24 24, _25 25, _26 26, _27 27, _28 28, _29 29, _30 30, _31 31 } - cofactor is U16 - crossSection list len=1..MAX32 - TreeNode union - concealedNode rec tag=0 - depth enum { - U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 - _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 - _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 - _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + is cofactor, U16 + list crossSection, len 1..MAX32 + union TreeNode + rec concealedNode, tag 0 + enum depth { + U5, _0 0, _1 1, _2 2, _3 3, _4 4, _5 5, _6 6, _7 7 + _8 8, _9 9, _10 10, _11 11, _12 12, _13 13, _14 14, _15 15 + _16 16, _17 17, _18 18, _19 19, _20 20, _21 21, _22 22, _23 23 + _24 24, _25 25, _26 26, _27 27, _28 28, _29 29, _30 30, _31 31 } - hash bytes len=32 aka=MerkleHash - commitmentLeaf rec tag=1 - protocolId bytes len=32 aka=ProtocolId - message bytes len=32 aka=Message - some is U64 option wrapped tag=1 - -Commitment commitment hasher=SHA256 tagged=urn:ubideco:mpc:commitment#2024-01-31 - MerkleConcealed concealed concealed=MerkleConcealed - -MerkleTree rec - depth enum { - U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 - _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 - _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 - _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + bytes hash, len 32, aka MerkleHash + rec commitmentLeaf, tag 1 + bytes protocolId, len 32, aka ProtocolId + bytes message, len 32, aka Message + is some, U64, option, wrapped, tag 1 + +commitment Commitment, hasher SHA256, tagged urn:ubideco:mpc:commitment#2024-01-31 + concealed MerkleConcealed, concealed MerkleConcealed + +rec MerkleTree + enum depth { + U5, _0 0, _1 1, _2 2, _3 3, _4 4, _5 5, _6 6, _7 7 + _8 8, _9 9, _10 10, _11 11, _12 12, _13 13, _14 14, _15 15 + _16 16, _17 17, _18 18, _19 19, _20 20, _21 21, _22 22, _23 23 + _24 24, _25 25, _26 26, _27 27, _28 28, _29 29, _30 30, _31 31 } - entropy is U64 - cofactor is U16 - messages map len=0..MAX24 - key bytes len=32 aka=ProtocolId - value bytes len=32 aka=Message - map map len=0..MAX24 - key is U32 - value tuple - _ bytes len=32 aka=ProtocolId - _ bytes len=32 aka=Message + is entropy, U64 + is cofactor, U16 + map messages, len 0..MAX24 + bytes key, len 32, aka ProtocolId + bytes value, len 32, aka Message + map map, len 0..MAX24 + is key, U32 + tuple value + bytes _, len 32, aka ProtocolId + bytes _, len 32, aka Message