From 4d39039bac1fac4ad7d179c5d6af798eab595a84 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 13:48:53 -0500 Subject: [PATCH 1/9] chore(ci): replace deprecated/paid macOS runners with free equivalents - Replace removed macos-13-large and macos-14-large (Intel paid) with macos-15-intel (free) in ci.yml and release.yml - Replace removed macos-13-xlarge and macos-14-xlarge (arm64 paid) with macos-14 and macos-15 (free) in ci.yml - Replace macos-14-large with macos-15 (arm64 free) in e2e.yml Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 6 ++---- .github/workflows/e2e.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c9b4d09..94b176fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,11 +14,9 @@ jobs: family: ubuntu - name: ubuntu-24.04 family: ubuntu - - name: macos-13-large + - name: macos-15-intel family: darwin - - name: macos-14-large - family: darwin - - name: macos-14-xlarge + - name: macos-14 family: darwin-arm64 - name: macos-15 family: darwin-arm64 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 72703b0a..d3637ef9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -18,9 +18,9 @@ jobs: - os: ubuntu-22.04 binary_path: target/release build_deps: scripts/workflows/provision-linux-build.sh - - os: macos-14-large + - os: macos-15 binary_path: target/release - build_deps: scripts/workflows/provision-darwin-build.sh + build_deps: scripts/workflows/provision-darwin-arm64-build.sh steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41874f25..47eeb6fb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,12 +28,12 @@ jobs: target_file: target/release/quill.exe asset_name: quill-windows-x86_64.exe build_deps: scripts/workflows/provision-windows-build.ps1 - - os: macos-13-large + - os: macos-15-intel name: macos target_file: target/release/quill asset_name: quill-macos-x86_64 build_deps: scripts/workflows/provision-darwin-build.sh - - os: macos-13-xlarge + - os: macos-15 name: macos-arm64 target_file: target/release/quill asset_name: quill-macos-arm64 From a627d0036cdcc9ad3ce37ba489cae6da47d282d3 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 14:04:51 -0500 Subject: [PATCH 2/9] cargo update --- Cargo.lock | 2279 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 1370 insertions(+), 909 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ddf2a7ba..5537d4f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,26 +2,11 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli 0.28.1", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "adler32" @@ -46,16 +31,16 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom", + "getrandom 0.2.17", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "once_cell", @@ -65,24 +50,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "android-tzdata" -version = "0.1.1" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android_system_properties" @@ -95,9 +74,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -110,55 +89,65 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", - "windows-sys", + "once_cell_polyfill", + "windows-sys 0.61.2", ] [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "ar_archive_writer" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "7eb93bbb63b9c227414f6eb3a0adfddca591a8ce1e9b60661bb08969b87e340b" +dependencies = [ + "object", +] [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -168,9 +157,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "ascii-canvas" @@ -209,7 +198,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -239,7 +228,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 1.0.63", + "thiserror 1.0.69", "time", ] @@ -251,7 +240,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", "synstructure", ] @@ -263,14 +252,14 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ "event-listener", "event-listener-strategy", @@ -279,20 +268,26 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" -version = "1.3.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backoff" @@ -300,24 +295,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom", + "getrandom 0.2.17", "instant", - "rand", -] - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.7.3", - "object", - "rustc-demangle", + "rand 0.8.5", ] [[package]] @@ -362,15 +342,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "basic-toml" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" dependencies = [ "serde", ] @@ -383,9 +363,9 @@ checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" [[package]] name = "bech32" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" [[package]] name = "beef" @@ -395,9 +375,9 @@ checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" [[package]] name = "bigdecimal" -version = "0.4.5" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d712318a27c7150326677b321a5fa91b55f6d9034ffd67f20319e147d40cee" +checksum = "4d6867f1565b3aad85681f1015055b087fcfd840d6aeee6eee7f2da317603695" dependencies = [ "autocfg", "libm", @@ -440,17 +420,18 @@ dependencies = [ [[package]] name = "bip32" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" +checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" dependencies = [ "bs58", "hmac", "k256", "once_cell", "pbkdf2 0.12.2", - "rand_core", + "rand_core 0.6.4", "ripemd", + "secp256k1 0.27.0", "sha2 0.10.9", "subtle", "zeroize", @@ -473,19 +454,19 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitcoin" -version = "0.32.5" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6bc65742dea50536e35ad42492b234c27904a27f0abdcbce605015cb4ea026" +checksum = "1e499f9fc0407f50fe98af744ab44fa67d409f76b6772e1689ec8485eb0c0f66" dependencies = [ "base58ck", - "bech32 0.11.0", + "bech32 0.11.1", "bitcoin-internals", "bitcoin-io", "bitcoin-units", "bitcoin_hashes", "hex-conservative", "hex_lit", - "secp256k1", + "secp256k1 0.29.1", "serde", ] @@ -500,9 +481,9 @@ dependencies = [ [[package]] name = "bitcoin-io" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" [[package]] name = "bitcoin-units" @@ -516,9 +497,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ "bitcoin-io", "hex-conservative", @@ -527,9 +508,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.5.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bitvec" @@ -572,9 +553,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe5b10e214954177fb1dc9fbd20a1a2608fe99e6c832033bdc7cea287a20d77" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ "borsh-derive", "cfg_aliases", @@ -582,23 +563,22 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a8646f94ab393e43e8b35a2558b1624bed28b97ee09c5d15456e3c9463f46d" +checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", - "syn_derive", + "syn 2.0.117", ] [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "sha2 0.10.9", "tinyvec", @@ -665,9 +645,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "by_address" @@ -715,9 +695,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cached" @@ -728,7 +708,7 @@ dependencies = [ "hashbrown 0.14.5", "instant", "once_cell", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -737,27 +717,27 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8466736fe5dbcaf8b8ee24f9bbefe43c884dc3e9ff7178da70f55bffca1133c" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "hashbrown 0.14.5", "instant", "once_cell", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "camino" -version = "1.1.7" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "candid" -version = "0.10.14" +version = "0.10.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d90f5a1426d0489283a0bd5da9ed406fb3e69597e0d823dcb88a1965bb58d2" +checksum = "1569bddc0a586e44b10c8218d7db2770d5de9826aa4dc223f3dac56cd3b48697" dependencies = [ "anyhow", "binread", @@ -773,19 +753,19 @@ dependencies = [ "serde", "serde_bytes", "stacker", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "candid_derive" -version = "0.6.6" +version = "0.10.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3de398570c386726e7a59d9887b68763c481477f9a043fb998a2e09d428df1a9" +checksum = "d674e2817268343f9f67fcd33b10279d2ccbd7d62ac660d53c1fd60a93568aa3" dependencies = [ "lazy_static", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -804,14 +784,14 @@ dependencies = [ "logos", "num-bigint 0.4.6", "pretty", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -840,38 +820,38 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.17" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ + "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-link", ] [[package]] @@ -898,7 +878,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", - "half 2.4.1", + "half 2.7.1", ] [[package]] @@ -913,9 +893,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -923,9 +903,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -935,21 +915,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "codespan-reporting" @@ -958,20 +938,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ "termcolor", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "comparable" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb513ee8037bf08c5270ecefa48da249f4c58e57a71ccfce0a5b0877d2a20eb2" +checksum = "838d2d21a142bc619c262bb2145d1af0a2e3dccfcb1360bbc47ae4c6686e1ec6" dependencies = [ "comparable_derive", "comparable_helper", @@ -981,9 +961,9 @@ dependencies = [ [[package]] name = "comparable_derive" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a54b9c40054eb8999c5d1d36fdc90e4e5f7ff0d1d9621706f360b3cbc8beb828" +checksum = "8fef8fab462495e2956b0666a4fb50c6c5058bdbd2c2bc91c5894a03f916177f" dependencies = [ "convert_case 0.4.0", "proc-macro2", @@ -993,9 +973,9 @@ dependencies = [ [[package]] name = "comparable_helper" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5437e327e861081c91270becff184859f706e3e50f5301a9d4dc8eb50752c3" +checksum = "be7a1af3ce1ccc3c9a6edfc769672c5d7512959e292882beca663843a660eb9e" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -1014,15 +994,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", - "lazy_static", "libc", - "unicode-width", - "windows-sys", + "once_cell", + "unicode-width 0.2.2", + "windows-sys 0.59.0", ] [[package]] @@ -1048,9 +1028,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1063,33 +1043,33 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -1098,16 +1078,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -1115,21 +1095,21 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" dependencies = [ "csv-core", "itoa", "ryu", - "serde", + "serde_core", ] [[package]] name = "csv-core" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" dependencies = [ "memchr", ] @@ -1146,7 +1126,7 @@ dependencies = [ "digest 0.10.7", "fiat-crypto", "group", - "rand_core", + "rand_core 0.6.4", "rustc_version", "subtle", "zeroize", @@ -1160,7 +1140,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -1171,7 +1151,7 @@ checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" dependencies = [ "byteorder", "digest 0.9.0", - "rand_core", + "rand_core 0.6.4", "subtle-ng", "zeroize", ] @@ -1211,11 +1191,11 @@ dependencies = [ "lazy_static", "on_wire", "prost", - "rand", + "rand 0.8.5", "serde", "serde_cbor", "sha2 0.10.9", - "yansi", + "yansi 0.5.1", ] [[package]] @@ -1255,9 +1235,9 @@ dependencies = [ [[package]] name = "dary_heap" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" +checksum = "06d2e3287df1c007e74221c49ca10a95d557349e54b3a75dc2fb14712c751f04" [[package]] name = "dashmap" @@ -1274,15 +1254,35 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" + +[[package]] +name = "datasize" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e65c07d59e45d77a8bda53458c24a828893a99ac6cdd9c84111e09176ab739a2" +dependencies = [ + "datasize_derive", +] + +[[package]] +name = "datasize_derive" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "613e4ee15899913285b7612004bbd490abd605be7b11d35afada5902fb6b91d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "der" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", "pem-rfc7468", @@ -1305,9 +1305,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -1325,15 +1325,15 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -1401,7 +1401,7 @@ dependencies = [ "console", "shell-words", "tempfile", - "thiserror 1.0.63", + "thiserror 1.0.69", "zeroize", ] @@ -1455,20 +1455,20 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "doc-comment" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +checksum = "780955b8b195a21ab8e4ac6b60dd1dbdcec1dc6c51c0617964b08c81785e12c9" [[package]] name = "downcast" @@ -1478,9 +1478,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" @@ -1514,23 +1514,23 @@ checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" dependencies = [ "curve25519-dalek-ng", "hex", - "rand_core", + "rand_core 0.6.4", "serde", "sha2 0.9.9", - "thiserror 1.0.63", + "thiserror 1.0.69", "zeroize", ] [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", "merlin", - "rand_core", + "rand_core 0.6.4", "serde", "sha2 0.10.9", "signature", @@ -1540,9 +1540,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -1558,7 +1558,7 @@ dependencies = [ "group", "pem-rfc7468", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -1566,24 +1566,24 @@ dependencies = [ [[package]] name = "ena" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +checksum = "eabffdaee24bd1bf95c5ef7cec31260444317e72ea56c4c91750e8b7ee58d5f1" dependencies = [ "log", ] [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[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 = "erased-serde" @@ -1596,19 +1596,19 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.10" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1617,9 +1617,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ "event-listener", "pin-project-lite", @@ -1652,11 +1652,11 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1666,20 +1666,32 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "fixedbitset" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -1688,20 +1700,32 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] [[package]] name = "fragile" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "funty" @@ -1711,9 +1735,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -1726,9 +1750,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -1736,15 +1760,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -1753,38 +1777,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -1794,7 +1818,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -1811,9 +1834,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", @@ -1822,6 +1845,33 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + [[package]] name = "gimli" version = "0.26.2" @@ -1833,17 +1883,11 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - [[package]] name = "glob" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "group" @@ -1852,7 +1896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1864,12 +1908,13 @@ checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "half" -version = "2.4.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "zerocopy", ] [[package]] @@ -1887,11 +1932,31 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "allocator-api2", "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + [[package]] name = "heck" version = "0.3.3" @@ -1924,11 +1989,11 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", ] [[package]] @@ -1975,12 +2040,11 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -1996,12 +2060,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -2009,9 +2073,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "humansize" @@ -2024,18 +2088,20 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "http", "http-body", "httparse", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2043,11 +2109,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http", "hyper", "hyper-util", @@ -2061,16 +2126,20 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -2080,14 +2149,15 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", "windows-core", ] @@ -2121,13 +2191,13 @@ dependencies = [ "k256", "leb128", "p256", - "pem 3.0.4", + "pem 3.0.6", "pkcs8", - "rand", + "rand 0.8.5", "rangemap", "reqwest", "ring", - "rustls-webpki", + "rustls-webpki 0.102.8", "sec1", "serde", "serde_bytes", @@ -2135,7 +2205,7 @@ dependencies = [ "serde_repr", "sha2 0.10.9", "simple_asn1", - "thiserror 1.0.63", + "thiserror 1.0.69", "time", "tokio", "url", @@ -2188,11 +2258,12 @@ dependencies = [ [[package]] name = "ic-btc-interface" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0152e14e697b0e988dbfdcb3f7e352d1c76a65b7d2d75c5d76bad22c3aca10d" +checksum = "eb974b1626d8a45dad7d1e2383829c6b08c5fd53b42d9f0938a51f2f0e057c7e" dependencies = [ "candid", + "datasize", "serde", "serde_bytes", ] @@ -2219,8 +2290,8 @@ dependencies = [ "ic-ed25519", "ic-secp256k1", "ic-types", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", ] [[package]] @@ -2271,14 +2342,14 @@ dependencies = [ "quote", "serde", "serde_tokenstream", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "ic-cdk-timers" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb8fd812a9e26f6aa00594546f8fbf4d4853f39c3ba794c8ff11ecf86fd3c9e4" +checksum = "292b84c5b8e57e12bf26306be81ec145ab9641ab12317a6f88e5c22af55e7acd" dependencies = [ "futures", "ic-cdk", @@ -2302,9 +2373,9 @@ dependencies = [ [[package]] name = "ic-certification" -version = "3.0.3" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb40d73f9f8273dc6569a68859003bbd467c9dc6d53c6fd7d174742f857209d" +checksum = "7c11273a40f8d67926ee423b0bd21381ae8419db809b42f33c5cb3319549b40f" dependencies = [ "hex", "serde", @@ -2389,8 +2460,8 @@ dependencies = [ "ic-ed25519", "ic-protobuf", "ic-types", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "simple_asn1", "zeroize", @@ -2407,8 +2478,8 @@ dependencies = [ "lazy_static", "pairing", "paste", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "sha2 0.10.9", "subtle", "zeroize", @@ -2435,8 +2506,8 @@ dependencies = [ "ic-crypto-sha2", "ic-protobuf", "ic-types", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "zeroize", ] @@ -2448,8 +2519,8 @@ source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0 dependencies = [ "hex", "ic-crypto-sha2", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "zeroize", ] @@ -2478,8 +2549,8 @@ dependencies = [ "ic-types", "lazy_static", "parking_lot", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "serde_bytes", "serde_cbor", @@ -2508,7 +2579,7 @@ dependencies = [ "lazy_static", "p256", "paste", - "rand", + "rand 0.8.5", "serde", "serde_bytes", "serde_cbor", @@ -2523,7 +2594,7 @@ name = "ic-crypto-internal-types" version = "0.9.0" source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "hex", "ic-protobuf", "phantom_newtype", @@ -2531,7 +2602,7 @@ dependencies = [ "serde_cbor", "strum", "strum_macros", - "thiserror 2.0.6", + "thiserror 2.0.18", "zeroize", ] @@ -2593,7 +2664,7 @@ dependencies = [ "ic-protobuf", "serde", "serde_bytes", - "thiserror 2.0.6", + "thiserror 2.0.18", ] [[package]] @@ -2621,7 +2692,7 @@ name = "ic-dummy-getrandom-for-wasm" version = "0.1.0" source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" dependencies = [ - "getrandom", + "getrandom 0.2.17", ] [[package]] @@ -2633,8 +2704,8 @@ dependencies = [ "ed25519-dalek", "hkdf", "pem 1.1.1", - "rand", - "thiserror 2.0.6", + "rand 0.8.5", + "thiserror 2.0.18", "zeroize", ] @@ -2677,7 +2748,7 @@ dependencies = [ "num-traits", "serde", "serde_bytes", - "thiserror 2.0.6", + "thiserror 2.0.18", ] [[package]] @@ -2720,7 +2791,7 @@ dependencies = [ "ic-canister-log", "ic-cdk", "ic-cdk-timers", - "ic-certification 3.0.3", + "ic-certification 3.1.0", "ic-crypto-tree-hash", "ic-http-types", "ic-icrc1", @@ -2761,7 +2832,7 @@ dependencies = [ "pkcs11", "sha2 0.10.9", "simple_asn1", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -2814,9 +2885,9 @@ source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0 [[package]] name = "ic-management-canister-types" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f3af3543f6d0cbdecd2dcdfd4737ada2bd42d935cc787eec22090c96492c76" +checksum = "ea7e5b8a0f7c3b320d9450ac950547db4f24a31601b5d398f9680b64427455d2" dependencies = [ "candid", "serde", @@ -2959,8 +3030,8 @@ dependencies = [ "ic-canister-client-sender", "ic-types", "lazy_static", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", ] [[package]] @@ -3235,8 +3306,8 @@ dependencies = [ "pretty_assertions", "prometheus-parse", "prost", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "registry-canister", "rust_decimal", "rust_decimal_macros", @@ -3289,8 +3360,8 @@ dependencies = [ "ic-nns-common", "ic-nns-governance-api", "icp-ledger", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", ] [[package]] @@ -3349,7 +3420,7 @@ dependencies = [ "ic-registry-transport", "ic-utils", "serde", - "thiserror 2.0.6", + "thiserror 2.0.18", ] [[package]] @@ -3446,8 +3517,8 @@ dependencies = [ "lazy_static", "num-bigint 0.4.6", "pem 1.1.1", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "sha2 0.10.9", "simple_asn1", "zeroize", @@ -3507,8 +3578,8 @@ dependencies = [ "num-traits", "prost", "prost-build", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rust_decimal", "rust_decimal_macros", "serde", @@ -3517,7 +3588,7 @@ dependencies = [ "sns-treasury-manager", "strum", "strum_macros", - "thiserror 2.0.6", + "thiserror 2.0.18", ] [[package]] @@ -3735,9 +3806,9 @@ dependencies = [ [[package]] name = "ic-stable-structures" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f5684f577e0146738cd11afed789109c4f51ba963c75823c48c1501dc53278" +checksum = "4d30d4cf17aff1024e13133897048bcba580e063c9000571ab766ca37e2996f4" dependencies = [ "ic_principal", ] @@ -3755,7 +3826,7 @@ dependencies = [ "serde_bytes", "serde_repr", "sha2 0.10.9", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -3784,7 +3855,7 @@ dependencies = [ "once_cell", "phantom_newtype", "prost", - "rand", + "rand 0.8.5", "serde", "serde_bytes", "serde_cbor", @@ -3792,7 +3863,7 @@ dependencies = [ "serde_with", "strum", "strum_macros", - "thiserror 2.0.6", + "thiserror 2.0.18", "thousands", ] @@ -3840,7 +3911,7 @@ dependencies = [ "ic_bls12_381", "lazy_static", "pairing", - "rand", + "rand 0.8.5", "sha2 0.10.9", ] @@ -3857,7 +3928,7 @@ dependencies = [ "rustc-demangle", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 1.0.69", "walrus", ] @@ -3893,23 +3964,23 @@ dependencies = [ "ff", "group", "pairing", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] [[package]] name = "ic_principal" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1762deb6f7c8d8c2bdee4b6c5a47b60195b74e9b5280faa5ba29692f8e17429c" +checksum = "8b2b6c5941dfd659e77b262342fa58ad49489367ad026255cda8c43682d0c534" dependencies = [ "arbitrary", "crc32fast", "data-encoding", "serde", "sha2 0.10.9", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -4000,21 +4071,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -4023,104 +4095,66 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", + "icu_locale_core", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "id-arena" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "ident_case" @@ -4130,9 +4164,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4141,9 +4175,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -4161,33 +4195,34 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "serde", + "serde_core", ] [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.2", + "web-time", ] [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "block-padding", "generic-array", @@ -4213,15 +4248,25 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "isocountry" @@ -4230,7 +4275,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ea1dc4bf0fb4904ba83ffdb98af3d9c325274e92e6e295e4151e86c96363e04" dependencies = [ "serde", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -4260,18 +4305,28 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "f4eacb0641a310445a4c513f2a5e23e19952e269c6a38887254d5f837a305506" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -4302,9 +4357,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -4320,10 +4375,10 @@ dependencies = [ "ena", "itertools 0.11.0", "lalrpop-util", - "petgraph", + "petgraph 0.6.5", "pico-args", "regex", - "regex-syntax 0.8.5", + "regex-syntax 0.8.10", "string_cache", "term", "tiny-keccak", @@ -4342,9 +4397,9 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ "spin", ] @@ -4355,6 +4410,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "ledger-apdu" version = "0.10.0" @@ -4426,20 +4487,20 @@ dependencies = [ "ledger-transport", "libc", "log", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "libc" -version = "0.2.168" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libflate" -version = "2.1.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" +checksum = "e3248b8d211bd23a104a42d81b4fa8bb8ac4a3b75e7a43d85d2c9ccb6179cd74" dependencies = [ "adler32", "core2", @@ -4450,12 +4511,12 @@ dependencies = [ [[package]] name = "libflate_lz77" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" +checksum = "a599cb10a9cd92b1300debcef28da8f70b935ec937f44fcd1b70a7c986a11c5c" dependencies = [ "core2", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "rle-decode-fast", ] @@ -4471,15 +4532,15 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags", "libc", @@ -4487,31 +4548,30 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.21" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "logos" @@ -4533,7 +4593,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.6.29", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -4545,6 +4605,12 @@ dependencies = [ "logos-codegen", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lzma-sys" version = "0.1.20" @@ -4564,9 +4630,9 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "memchr" -version = "2.7.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "merlin" @@ -4576,7 +4642,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core", + "rand_core 0.6.4", "zeroize", ] @@ -4588,9 +4654,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ "mime", "unicase", @@ -4624,31 +4690,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "wasi", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -4674,14 +4732,14 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "new_debug_unreachable" @@ -4729,26 +4787,25 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "serde", "smallvec", ] [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-integer" @@ -4788,18 +4845,18 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.32.2" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] [[package]] name = "oid-registry" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ "asn1-rs", ] @@ -4811,9 +4868,15 @@ source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0 [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "opaque-debug" @@ -4844,15 +4907,15 @@ dependencies = [ [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -4860,15 +4923,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-link", ] [[package]] @@ -4917,12 +4980,12 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ "base64 0.22.1", - "serde", + "serde_core", ] [[package]] @@ -4936,26 +4999,25 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.7.10" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", - "thiserror 1.0.63", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.10" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" dependencies = [ "pest", "pest_generator", @@ -4963,24 +5025,23 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.10" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "pest_meta" -version = "2.7.10" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ - "once_cell", "pest", "sha2 0.10.9", ] @@ -4991,8 +5052,18 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "fixedbitset", - "indexmap 2.2.6", + "fixedbitset 0.4.2", + "indexmap 2.13.0", +] + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset 0.5.7", + "indexmap 2.13.0", ] [[package]] @@ -5008,9 +5079,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ "siphasher", ] @@ -5023,9 +5094,9 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[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 = "pin-utils" @@ -5066,21 +5137,30 @@ checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ "der", "pkcs5", - "rand_core", + "rand_core 0.6.4", "spki", ] [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" + +[[package]] +name = "potential_utf" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] [[package]] name = "powerfmt" @@ -5090,9 +5170,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -5102,9 +5185,9 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "predicates" -version = "3.1.2" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" +checksum = "ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe" dependencies = [ "anstyle", "predicates-core", @@ -5112,15 +5195,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" dependencies = [ "predicates-core", "termtree", @@ -5128,33 +5211,33 @@ dependencies = [ [[package]] name = "pretty" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55c4d17d994b637e2f4daf6e5dc5d660d209d5642377d675d7a1c3ab69fa579" +checksum = "0d22152487193190344590e4f30e219cf3fe140d9e7a3fdb683d82aa2c5f4156" dependencies = [ "arrayvec 0.5.2", "typed-arena", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", - "yansi", + "yansi 1.0.1", ] [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -5178,9 +5261,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ "toml_edit", ] @@ -5217,9 +5300,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -5238,9 +5321,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", "prost-derive", @@ -5248,52 +5331,53 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.4.1", - "itertools 0.10.5", + "heck 0.5.0", + "itertools 0.14.0", "log", "multimap", "once_cell", - "petgraph", + "petgraph 0.7.1", "prettyplease", "prost", "prost-types", "regex", - "syn 2.0.90", + "syn 2.0.117", "tempfile", ] [[package]] name = "prost-derive" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "prost-types" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ "prost", ] [[package]] name = "psm" -version = "0.1.21" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "3852766467df634d74f0b2d7819bf8dc483a0eb2e3b0f50f756f9cfe8b0d18d8" dependencies = [ + "ar_archive_writer", "cc", ] @@ -5368,7 +5452,7 @@ dependencies = [ "pkcs8", "pretty_assertions", "qrcodegen", - "rand", + "rand 0.8.5", "ring", "rpassword", "scopeguard", @@ -5388,37 +5472,40 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.6" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "rustls", "socket2", - "thiserror 2.0.6", + "thiserror 2.0.18", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.9" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom", - "rand", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", "ring", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.6", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -5426,26 +5513,33 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", "tracing", - "windows-sys", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -5459,8 +5553,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", ] [[package]] @@ -5470,7 +5574,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", ] [[package]] @@ -5479,56 +5593,65 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", ] [[package]] name = "rangemap" -version = "1.5.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.17", "libredox", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.5", + "regex-syntax 0.8.10", ] [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax 0.8.10", ] [[package]] @@ -5539,9 +5662,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "registry-canister" @@ -5555,7 +5678,7 @@ dependencies = [ "dfn_core", "dfn_http_metrics", "futures", - "getrandom", + "getrandom 0.2.17", "hex", "ic-base-types", "ic-cdk", @@ -5595,8 +5718,8 @@ dependencies = [ "maplit", "on_wire", "prost", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "url", ] @@ -5612,9 +5735,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", @@ -5627,16 +5750,12 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", "rustls", - "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -5645,6 +5764,8 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-util", + "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", @@ -5652,7 +5773,6 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots", - "windows-registry", ] [[package]] @@ -5673,10 +5793,10 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.17", "libc", "untrusted", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -5690,9 +5810,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.44" +version = "0.7.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" dependencies = [ "bitvec", "bytecheck", @@ -5708,9 +5828,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.44" +version = "0.7.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" dependencies = [ "proc-macro2", "quote", @@ -5737,15 +5857,15 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.36.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" +checksum = "61f703d19852dbf87cbc513643fa81428361eb6940f1ac14fd58155d295a3eb0" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "borsh", "bytes", "num-traits", - "rand", + "rand 0.8.5", "rkyv", "serde", "serde_json", @@ -5753,19 +5873,19 @@ dependencies = [ [[package]] name = "rust_decimal_macros" -version = "1.36.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da991f231869f34268415a49724c6578e740ad697ba0999199d6f22b3949332c" +checksum = "74a5a6f027e892c7a035c6fddb50435a1fbf5a734ffc0c2a9fed4d0221440519" dependencies = [ "quote", - "rust_decimal", + "syn 2.0.117", ] [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" @@ -5775,15 +5895,15 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] @@ -5799,55 +5919,57 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.42" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.103.9", "subtle", "zeroize", ] [[package]] -name = "rustls-pemfile" -version = "2.1.3" +name = "rustls-pki-types" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ - "base64 0.22.1", - "rustls-pki-types", + "web-time", + "zeroize", ] [[package]] -name = "rustls-pki-types" -version = "1.10.0" +name = "rustls-webpki" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "web-time", + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "ring", "rustls-pki-types", @@ -5856,15 +5978,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "salsa20" @@ -5927,6 +6049,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "secp256k1-sys 0.8.2", +] + [[package]] name = "secp256k1" version = "0.29.1" @@ -5934,11 +6065,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "bitcoin_hashes", - "rand", - "secp256k1-sys", + "rand 0.8.5", + "secp256k1-sys 0.10.1", "serde", ] +[[package]] +name = "secp256k1-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" +dependencies = [ + "cc", +] + [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -5950,29 +6090,32 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde" -version = "1.0.207" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.15" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -5985,49 +6128,60 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.207" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", - "ryu", + "memchr", "serde", + "serde_core", + "zmij", ] [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "serde_tokenstream" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64060d864397305347a78851c51588fd283767e7e7589829e8121d65512340f1" +checksum = "d7c49585c52c01f13c5c2ebb333f14f6885d76daa768d8a037d28017ec538c69" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -6070,7 +6224,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.13.0", "itoa", "ryu", "serde", @@ -6099,7 +6253,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -6138,9 +6292,9 @@ dependencies = [ [[package]] name = "shell-words" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" [[package]] name = "shellwords" @@ -6160,10 +6314,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -6174,65 +6329,71 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core", + "rand_core 0.6.4", ] +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" -version = "0.6.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" dependencies = [ "num-bigint 0.4.6", "num-traits", - "thiserror 1.0.63", + "thiserror 2.0.18", "time", ] [[package]] name = "siphasher" -version = "0.3.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "slog" -version = "2.7.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" +checksum = "9b3b8565691b22d2bdfc066426ed48f837fc0c5f2c8cad8d9718f7f99d6995c1" dependencies = [ + "anyhow", "erased-serde", + "rustversion", + "serde_core", ] [[package]] name = "slotmap" -version = "1.0.7" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" dependencies = [ "version_check", ] [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "snafu" @@ -6268,19 +6429,19 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.60.2", ] [[package]] name = "spin" -version = "0.5.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" @@ -6294,31 +6455,30 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.15" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +checksum = "08d74a23609d509411d10e2176dc2a4346e3b4aea2e7b1869f19fdedbc71c013" dependencies = [ "cc", "cfg-if", "libc", "psm", - "winapi", + "windows-sys 0.59.0", ] [[package]] name = "string_cache" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" dependencies = [ "new_debug_unreachable", - "once_cell", "parking_lot", "phf_shared", "precomputed-hash", @@ -6355,7 +6515,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -6383,45 +6543,33 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -6432,15 +6580,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.14.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ - "cfg-if", "fastrand", + "getrandom 0.4.1", "once_cell", "rustix", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -6465,48 +6613,48 @@ dependencies = [ [[package]] name = "termtree" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.63", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "2.0.6" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.6", + "thiserror-impl 2.0.18", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.6" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] @@ -6517,30 +6665,30 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "time" -version = "0.3.36" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -6556,10 +6704,10 @@ dependencies = [ "hmac", "once_cell", "pbkdf2 0.11.0", - "rand", + "rand 0.8.5", "rustc-hash 1.1.0", "sha2 0.10.9", - "thiserror 1.0.63", + "thiserror 1.0.69", "unicode-normalization", "wasm-bindgen", "zeroize", @@ -6576,9 +6724,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -6586,9 +6734,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -6601,11 +6749,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.42.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ - "backtrace", "bytes", "libc", "mio", @@ -6614,36 +6761,35 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -6654,21 +6800,73 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.13.0", "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.9+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +dependencies = [ "winnow", ] +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" version = "0.3.3" @@ -6677,9 +6875,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-core", @@ -6687,9 +6885,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", ] @@ -6708,57 +6906,60 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typenum" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicase" -version = "2.7.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unsafe-libyaml" @@ -6774,27 +6975,22 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", + "serde_derive", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8-width" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +checksum = "1292c0d970b54115d14f2492fe0170adf21d68a1de108eebc51c1df4f346a091" [[package]] name = "utf8_iter" @@ -6804,21 +7000,25 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.11.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -6837,13 +7037,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "501ace8ec3492754a9b3c4b59eac7159ceff8414f9e43a05029fe8ef43b9218f" dependencies = [ "anyhow", - "gimli 0.26.2", + "gimli", "id-arena", "leb128", "log", "walrus-macro", - "wasm-encoder", - "wasmparser", + "wasm-encoder 0.212.0", + "wasmparser 0.212.0", ] [[package]] @@ -6869,52 +7069,60 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasm-bindgen" -version = "0.2.92" +name = "wasip2" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "bumpalo", - "log", + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.112" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d7d0fce354c88b7982aec4400b3e7fcf723c32737cef571bd165f7613557ee" +dependencies = [ + "cfg-if", "once_cell", - "proc-macro2", - "quote", - "syn 2.0.90", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "ee85afca410ac4abba5b584b12e77ea225db6ee5471d0aebaae0861166f9378a" dependencies = [ "cfg-if", + "futures-util", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "55839b71ba921e4f75b674cb16f843f4b1f3b26ddfcb3454de1cf65cc021ec0f" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6922,22 +7130,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "caf2e969c2d60ff52e7e98b7392ff1588bffdd1ccd4769eba27222fd3d621571" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.90", - "wasm-bindgen-backend", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "0861f0dcdf46ea819407495634953cdcc8a8c7215ab799a7a7ce366be71c7b30" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-encoder" @@ -6948,11 +7159,33 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -6967,19 +7200,31 @@ version = "0.212.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d28bc49ba1e5c5b61ffa7a2eace10820443c4b7d1c0b144109261d14570fdf8" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "bitflags", "hashbrown 0.14.5", - "indexmap 2.2.6", + "indexmap 2.13.0", "semver", "serde", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "10053fbf9a374174094915bbce141e87a6bf32ecd9a002980db4b638405e8962" dependencies = [ "js-sys", "wasm-bindgen", @@ -6997,9 +7242,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.3" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -7022,11 +7267,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -7037,41 +7282,61 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.52.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-targets", + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] -name = "windows-registry" -version = "0.2.0" +name = "windows-implement" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ - "windows-result", - "windows-strings", - "windows-targets", + "proc-macro2", + "quote", + "syn 2.0.117", ] +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-result" -version = "0.2.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-targets", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-result", - "windows-targets", + "windows-link", ] [[package]] @@ -7080,7 +7345,34 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", ] [[package]] @@ -7089,14 +7381,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -7105,68 +7414,198 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" -version = "0.5.40" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] [[package]] -name = "write16" -version = "1.0.0" +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata", + "wasmparser 0.244.0", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -7190,7 +7629,7 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror 1.0.63", + "thiserror 1.0.69", "time", ] @@ -7209,13 +7648,18 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yoke" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -7223,82 +7667,93 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -7307,11 +7762,17 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.117", ] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" From 99711476cc0cb72e8ccfc7306dabd5752a362830 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 15:33:40 -0500 Subject: [PATCH 3/9] update did path in script --- candid/governance.did | 223 +++++++++++++++++++++++--- scripts/point-to-ic-repo-commit-id.sh | 17 +- 2 files changed, 210 insertions(+), 30 deletions(-) diff --git a/candid/governance.did b/candid/governance.did index b1968584..ed3554ce 100644 --- a/candid/governance.did +++ b/candid/governance.did @@ -4,7 +4,8 @@ type AccountIdentifier = record { type Action = variant { RegisterKnownNeuron : KnownNeuron; - ManageNeuron : ManageNeuron; + DeregisterKnownNeuron : DeregisterKnownNeuron; + ManageNeuron : ManageNeuronProposal; UpdateCanisterSettings : UpdateCanisterSettings; InstallCode : InstallCode; StopOrStartCanister : StopOrStartCanister; @@ -20,6 +21,9 @@ type Action = variant { AddOrRemoveNodeProvider : AddOrRemoveNodeProvider; Motion : Motion; FulfillSubnetRentalRequest : FulfillSubnetRentalRequest; + BlessAlternativeGuestOsVersion : BlessAlternativeGuestOsVersion; + TakeCanisterSnapshot : TakeCanisterSnapshot; + LoadCanisterSnapshot : LoadCanisterSnapshot; }; type AddHotKey = record { @@ -152,7 +156,7 @@ type SetFollowingResponse = record { }; // KEEP THIS IN SYNC WITH ManageNeuronCommandRequest! -type Command = variant { +type ManageNeuronProposalCommand = variant { Spawn : Spawn; Split : Split; Follow : Follow; @@ -311,7 +315,6 @@ type GlobalTimeOfDay = record { type Governance = record { default_followees : vec record { int32; Followees }; - making_sns_proposal : opt MakingSnsProposal; most_recent_monthly_node_provider_rewards : opt MonthlyNodeProviderRewards; maturity_modulation_last_updated_at_timestamp_seconds : opt nat64; wait_for_quiet_threshold_seconds : nat64; @@ -400,6 +403,7 @@ type GovernanceParameters = record { proposal_initial_voting_period : opt Duration; proposal_rejection_fee : opt Tokens; voting_reward_parameters : opt VotingRewardParameters; + custom_proposal_criticality : opt CustomProposalCriticality; }; type IdealMatchedParticipationFunction = record { @@ -441,9 +445,20 @@ type KnownNeuron = record { known_neuron_data : opt KnownNeuronData; }; +type DeregisterKnownNeuron = record { + id : opt NeuronId; +}; + type KnownNeuronData = record { name : text; description : opt text; + // Links related to the known neuron. Can be links to social URLs (OpenChat, X, etc.), or a homepage. + links : opt vec text; + // Topics that the known neuron is committed to always vote on. + // Note regarding the type: the first `opt` makes it so that the field can be renamed/deprecated + // in the future, and the second `opt` makes it so that an older client not recognizing a new + // variant can still get the rest of the `vec`. + committed_topics : opt vec opt TopicToFollow; }; type LedgerParameters = record { @@ -457,6 +472,11 @@ type ListKnownNeuronsResponse = record { known_neurons : vec KnownNeuron; }; +type LoadCanisterSnapshot = record { + canister_id : opt principal; + snapshot_id : opt blob; +}; + // Parameters of the list_neurons method. type ListNeurons = record { // These fields select neurons to be in the result set. @@ -508,7 +528,7 @@ type ListNodeProvidersResponse = record { node_providers : vec NodeProvider; }; -type ListProposalInfo = record { +type ListProposalInfoRequest = record { include_reward_status : vec int32; omit_large_fields : opt bool; before_proposal : opt ProposalId; @@ -516,6 +536,7 @@ type ListProposalInfo = record { exclude_topic : vec int32; include_all_manage_neuron_proposals : opt bool; include_status : vec int32; + return_self_describing_action : opt bool; }; type ListProposalInfoResponse = record { @@ -534,17 +555,11 @@ type MakeProposalResponse = record { proposal_id : opt ProposalId; }; -type MakingSnsProposal = record { - proposal : opt Proposal; - caller : opt principal; - proposer_id : opt NeuronId; -}; - -// Not to be confused with ManageNeuronRequest. (Yes, this is very structurally -// similar to that, but not actually exactly equivalent.) -type ManageNeuron = record { +// Not to be confused with ManageNeuronRequest. This is only used to represent a manage neuron proposal. +// (Yes, this is very structurally similar to that, but not actually exactly equivalent) +type ManageNeuronProposal = record { id : opt NeuronId; - command : opt Command; + command : opt ManageNeuronProposalCommand; neuron_id_or_subaccount : opt NeuronIdOrSubaccount; }; @@ -608,11 +623,20 @@ type MergeResponse = record { source_neuron_info : opt NeuronInfo; }; +type DateUtc = record { + year : nat32; + month : nat32; + day : nat32; +}; + type MonthlyNodeProviderRewards = record { minimum_xdr_permyriad_per_icp : opt nat64; registry_version : opt nat64; + algorithm_version : opt nat32; node_providers : vec NodeProvider; timestamp : nat64; + start_date : opt DateUtc; + end_date : opt DateUtc; rewards : vec RewardNodeProvider; xdr_conversion_rate : opt XdrConversionRate; maximum_node_provider_rewards_e8s : opt nat64; @@ -792,6 +816,20 @@ type NeuronInFlightCommand = record { timestamp : nat64; }; +type GetNeuronIndexRequest = record { + exclusive_start_neuron_id: opt NeuronId; + page_size: opt nat32; +}; + +type NeuronIndexData = record { + neurons: vec NeuronInfo; +}; + +type GetNeuronIndexResult = variant { + Ok : NeuronIndexData; + Err : GovernanceError; +}; + // A limit view of Neuron that allows some aspects of all neurons to be read by // anyone (i.e. without having to be the neuron's controller nor one of its // hotkeys). @@ -799,6 +837,7 @@ type NeuronInFlightCommand = record { // As such, the meaning of each field in this type is generally the same as the // one of the same (or at least similar) name in Neuron. type NeuronInfo = record { + id: opt NeuronId; dissolve_delay_seconds : nat64; recent_ballots : vec BallotInfo; neuron_type : opt int32; @@ -980,10 +1019,12 @@ type Proposal = record { title : opt text; action : opt Action; summary : text; + self_describing_action : opt SelfDescribingProposalAction; }; type ProposalActionRequest = variant { RegisterKnownNeuron : KnownNeuron; + DeregisterKnownNeuron : DeregisterKnownNeuron; ManageNeuron : ManageNeuronRequest; UpdateCanisterSettings : UpdateCanisterSettings; InstallCode : InstallCodeRequest; @@ -997,6 +1038,9 @@ type ProposalActionRequest = variant { AddOrRemoveNodeProvider : AddOrRemoveNodeProvider; Motion : Motion; FulfillSubnetRentalRequest : FulfillSubnetRentalRequest; + BlessAlternativeGuestOsVersion : BlessAlternativeGuestOsVersion; + TakeCanisterSnapshot : TakeCanisterSnapshot; + LoadCanisterSnapshot : LoadCanisterSnapshot; }; // Creates a rented subnet from a rental request (in the Subnet Rental @@ -1015,11 +1059,61 @@ type FulfillSubnetRentalRequest = record { // // This must be approved by a prior proposal to bless an IC OS version. // - // This is a full git commit ID in the ic repo. (Therefore, it must be a 40 - // character hexidecimal string.) + // This is a FULL git commit ID in the ic repo. (Therefore, it must be a 40 + // character hexidecimal string, not an abbreviated git commit ID.) + // + // One way to find a suitable value is with the following command: + // + // ic-admin \ + // get-subnet 0 \ + // --nns-urls https://nns.ic0.app \ + // | grep replica_version_id + // + // Where to obtain a recent version of ic-admin: + // + // https://github.com/dfinity/ic/releases/latest replica_version_id : opt text; }; +// Declares an approved set of alternative replica virtual machine software for +// disaster recovery purposes. +type BlessAlternativeGuestOsVersion = record { + // AMD Secure Processor chip IDs that are allowed to run this software. + // Each chip ID must be exactly 64 bytes. + chip_ids : opt vec blob; + + // Hexadecimal fingerprint of the recovery rootfs. + // Must contain only hexadecimal characters (0-9, A-F, a-f). + rootfs_hash : opt text; + + // The version being replaced by this (alternative version) must match this + // field (or one of the possibilities therein). + // + // (Here, we refer to the version being replaced as the "base" version.) + base_guest_launch_measurements : opt GuestLaunchMeasurements; }; + +type GuestLaunchMeasurements = record { + guest_launch_measurements : opt vec GuestLaunchMeasurement; +}; + +type GuestLaunchMeasurement = record { + // SEV-SNP measurement (48 bytes). + measurement : opt blob; + + // Metadata associated with the measurement. + metadata : opt GuestLaunchMeasurementMetadata; +}; + +type GuestLaunchMeasurementMetadata = record { + // Kernel command line used for this measurement. + kernel_cmdline : opt text; +}; + +type TakeCanisterSnapshot = record { + canister_id : opt principal; + replace_snapshot : opt blob; +}; + type ProposalData = record { id : opt ProposalId; failure_reason : opt GovernanceError; @@ -1218,6 +1312,7 @@ type SpawnResponse = record { type Split = record { amount_e8s : nat64; + memo : opt nat64; }; type StakeMaturity = record { @@ -1304,6 +1399,10 @@ type VotingRewardParameters = record { final_reward_rate : opt Percentage; }; +type CustomProposalCriticality = record { + additional_critical_native_action_ids : opt vec nat64; +}; + type WaitForQuietState = record { current_deadline_timestamp_seconds : nat64; }; @@ -1321,6 +1420,92 @@ type MaturityDisbursement = record { account_identifier_to_disburse_to : opt AccountIdentifier; }; +// A topic that can be followed. It is almost the same as the topic on the +// proposal, except that the `CatchAll` is a special value and following on this +// `topic` will let the neuron follow the votes on all topics except for +// Governance and SnsAndCommunityFund. +type TopicToFollow = variant { + CatchAll; + NeuronManagement; + ExchangeRate; + NetworkEconomics; + Governance; + NodeAdmin; + ParticipantManagement; + SubnetManagement; + Kyc; + NodeProviderRewards; + IcOsVersionDeployment; + IcOsVersionElection; + SnsAndCommunityFund; + ApiBoundaryNodeManagement; + SubnetRental; + ApplicationCanisterManagement; + ProtocolCanisterManagement; + ServiceNervousSystemManagement; +}; + +type ListNeuronVotesRequest = record { + // The neuron id for which the voting history will be returned. Currently, the voting history is + // only recorded for known neurons. + neuron_id : opt NeuronId; + // Only fetch the voting history for proposal whose id `< before_proposal`. This can be used as a + // pagination token - pass the minimum proposal id as `before_proposal` for the next page. + before_proposal : opt ProposalId; + // The maximum number of votes to fetch. The maximum number allowed is 500, and 500 will be used + // if is set as either null or > 500. + limit : opt nat64; +}; + +type ListNeuronVotesResponse = variant { + Ok : record { + votes : opt vec NeuronVote; + // All the proposals before this id is "finalized", which means if a proposal before this id + // does not exist in the votes, it will never appear in the voting history, either because the + // neuron is not eligible to vote on the proposal, or the neuron is not a known neuron at the + // time of the proposal creation. Therefore, if a client syncs the entire voting history of a + // certain neuron and store `all_finalized_before_proposal`, it doesn't need to start from + // scratch the next time - it can stop as soon as they have seen any votes + // `< all_finalized_before_proposal`. + all_finalized_before_proposal : opt ProposalId; + }; + Err : GovernanceError; +}; + +type NeuronVote = record { + proposal_id : opt ProposalId; + // The vote of the neuron on the specific proposal id. + vote : opt Vote; +}; + +type Vote = variant { + // Abstentions are recorded as Unspecified. + Unspecified; + Yes; + No; +}; + +type SelfDescribingProposalAction = record { + type_name : opt text; + type_description : opt text; + value : opt SelfDescribingValue; +}; + +type SelfDescribingValue = variant { + Blob : blob; + Text : text; + Bool : bool; + Nat : nat; + Int : int; + Array : vec SelfDescribingValue; + Map : vec record { text; SelfDescribingValue }; + Null; +}; + +type GetPendingProposalsRequest = record { + return_self_describing_action : opt bool; +} + service : (Governance) -> { claim_gtc_neurons : (principal, vec NeuronId) -> (Result); claim_or_refresh_neuron_from_account : (ClaimOrRefreshNeuronFromAccount) -> ( @@ -1339,6 +1524,7 @@ service : (Governance) -> { ) query; get_network_economics_parameters : () -> (NetworkEconomics) query; get_neuron_ids : () -> (vec nat64) query; + get_neuron_index: (GetNeuronIndexRequest) -> (GetNeuronIndexResult) query; get_neuron_info : (nat64) -> (Result_5) query; get_neuron_info_by_id_or_subaccount : (NeuronIdOrSubaccount) -> ( Result_5, @@ -1347,7 +1533,7 @@ service : (Governance) -> { GetNeuronsFundAuditInfoResponse, ) query; get_node_provider_by_caller : (null) -> (Result_7) query; - get_pending_proposals : () -> (vec ProposalInfo) query; + get_pending_proposals : (opt GetPendingProposalsRequest) -> (vec ProposalInfo) query; get_proposal_info : (nat64) -> (opt ProposalInfo) query; get_restore_aging_summary : () -> (RestoreAgingSummary) query; list_known_neurons : () -> (ListKnownNeuronsResponse) query; @@ -1356,7 +1542,8 @@ service : (Governance) -> { ListNodeProviderRewardsResponse, ) query; list_node_providers : () -> (ListNodeProvidersResponse) query; - list_proposals : (ListProposalInfo) -> (ListProposalInfoResponse) query; + list_proposals : (ListProposalInfoRequest) -> (ListProposalInfoResponse) query; + list_neuron_votes : (ListNeuronVotesRequest) -> (ListNeuronVotesResponse) query; manage_neuron : (ManageNeuronRequest) -> (ManageNeuronResponse); settle_community_fund_participation : (SettleCommunityFundParticipation) -> ( Result, diff --git a/scripts/point-to-ic-repo-commit-id.sh b/scripts/point-to-ic-repo-commit-id.sh index 82fc2e4e..804081c9 100755 --- a/scripts/point-to-ic-repo-commit-id.sh +++ b/scripts/point-to-ic-repo-commit-id.sh @@ -74,8 +74,8 @@ echo "Updating candid files..." >&2 download_from_ic_repo rs/bitcoin/ckbtc/minter/ckbtc_minter.did candid/ckbtc_minter.did download_from_ic_repo rs/nns/governance/canister/governance.did candid/governance.did download_from_ic_repo rs/nns/gtc/canister/gtc.did candid/gtc.did -download_from_ic_repo rs/rosetta-api/icrc1/ledger/ledger.did candid/icrc1.did -download_from_ic_repo rs/rosetta-api/icp_ledger/ledger.did candid/ledger.did +download_from_ic_repo rs/ledger_suite/icrc1/ledger/ledger.did candid/icrc1.did +download_from_ic_repo rs/ledger_suite/icp/ledger.did candid/ledger.did download_from_ic_repo rs/registry/canister/canister/registry.did candid/registry.did download_from_ic_repo rs/sns/governance/canister/governance.did candid/sns-governance.did download_from_ic_repo rs/sns/root/canister/root.did candid/sns-root.did @@ -84,13 +84,6 @@ download_from_ic_repo rs/nns/sns-wasm/canister/sns-wasm.did candid/snsw.did echo "Done updating candid files." >&2 echo >&2 -# Phase 1.3: Update end to end test(s). -sed -i '' \ - "s/IC_COMMIT=.*/IC_COMMIT=\"${NEW_COMMIT_ID}\"/" \ - e2e/utils/setup_nns.bash -echo "Done updating end to end tests." >&2 -echo >&2 - # Phase 1.4: Update Cargo.lock. echo "Updating Cargo.lock..." cargo build --quiet @@ -114,11 +107,11 @@ fi # Finally, report results. echo >&2 -git diff --stat Cargo.toml candid e2e >&2 +git diff --stat Cargo.toml candid >&2 echo >&2 echo "🎉 Success!" >&2 -echo "I have changed Cargo.toml, updated files in the candid dir and updated end to" >&2 -echo "end tests. We are now referring to ic repo commit ${NEW_COMMIT_ID}." >&2 +echo "I have changed Cargo.toml and updated files in the candid dir." >&2 +echo "We are now referring to ic repo commit ${NEW_COMMIT_ID}." >&2 echo "These changes have NOT been staged. Therefore, you can inspect them by" >&2 echo "running `git diff`. Once you are satisfied, proceed with the rest of your" >&2 echo "usual git workflow." >&2 From e23b3be2876dbf1b6fc9c0d3daf044eb2372dfb4 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 20:21:24 -0500 Subject: [PATCH 4/9] chore: update IC mono-repo dependencies and fix breaking changes - ListProposalInfo renamed to ListProposalInfoRequest (moved to ic-nns-governance-api) - Split now requires a memo field - NnsFunction::canister_and_function() is no longer public; replicate mapping locally - Handle new Action variants: DeregisterKnownNeuron, BlessAlternativeGuestOsVersion, TakeCanisterSnapshot, LoadCanisterSnapshot Co-Authored-By: Claude Opus 4.6 --- Cargo.lock | 1109 ++++++++++++----- Cargo.toml | 28 +- candid/ckbtc_minter.did | 186 ++- candid/icrc1.did | 669 +++++----- candid/ledger.did | 701 ++++++----- candid/registry.did | 75 +- candid/sns-governance.did | 58 +- candid/sns-root.did | 14 + candid/snsw.did | 6 + src/commands/list_proposals.rs | 5 +- src/commands/neuron_manage.rs | 3 +- src/lib/format/nns_governance.rs | 160 ++- .../output/default/list_proposals/simple.txt | 1 + tests/output/default/neuron_manage/split.txt | 5 +- 14 files changed, 1978 insertions(+), 1042 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5537d4f5..ff197d5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -172,14 +172,12 @@ dependencies = [ [[package]] name = "askama" -version = "0.12.1" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" +checksum = "08e1676b346cadfec169374f949d7490fd80a24193d37d2afce0c047cf695e57" dependencies = [ - "askama_derive", - "askama_escape", - "humansize", - "num-traits", + "askama_macros", + "itoa", "percent-encoding", "serde", "serde_json", @@ -187,33 +185,41 @@ dependencies = [ [[package]] name = "askama_derive" -version = "0.12.5" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" +checksum = "7661ff56517787343f376f75db037426facd7c8d3049cef8911f1e75016f3a37" dependencies = [ "askama_parser", "basic-toml", - "mime", - "mime_guess", + "memchr", "proc-macro2", "quote", + "rustc-hash 2.1.1", "serde", + "serde_derive", "syn 2.0.117", ] [[package]] -name = "askama_escape" -version = "0.10.3" +name = "askama_macros" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" +checksum = "713ee4dbfd1eb719c2dab859465b01fa1d21cb566684614a713a6b7a99a4e47b" +dependencies = [ + "askama_derive", +] [[package]] name = "askama_parser" -version = "0.2.1" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" +checksum = "1d62d674238a526418b30c0def480d5beadb9d8964e7f38d635b03bf639c704c" dependencies = [ - "nom", + "rustc-hash 2.1.1", + "serde", + "serde_derive", + "unicode-ident", + "winnow", ] [[package]] @@ -283,6 +289,29 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "attestation" +version = "0.0.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "candid", + "der", + "getrandom 0.2.17", + "hex", + "ic-interfaces-registry", + "ic-protobuf", + "ic-registry-client-helpers", + "ic-types", + "ic-utils", + "itertools 0.12.1", + "prost", + "rand 0.8.5", + "serde", + "sev", + "sha2 0.10.9", + "thiserror 2.0.18", +] + [[package]] name = "autocfg" version = "1.5.0" @@ -453,10 +482,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] -name = "bitcoin" -version = "0.32.8" +name = "bitcoin-dogecoin" +version = "0.32.7-doge.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e499f9fc0407f50fe98af744ab44fa67d409f76b6772e1689ec8485eb0c0f66" +checksum = "abf573e7be7ffca0b5c7632aafc2eb6759db362e2a0fe2375f18c664ba1346c8" dependencies = [ "base58ck", "bech32 0.11.1", @@ -466,6 +495,7 @@ dependencies = [ "bitcoin_hashes", "hex-conservative", "hex_lit", + "scrypt", "secp256k1 0.29.1", "serde", ] @@ -506,6 +536,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bitfield" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ba6517c6b0f2bf08be60e187ab64b038438f22dd755614d8fe4d4098c46419" +dependencies = [ + "bitfield-macros", +] + +[[package]] +name = "bitfield-macros" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f48d6ace212fdf1b45fd6b566bb40808415344642b76c3224c07c8df9da81e97" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "bitflags" version = "2.11.0" @@ -756,6 +806,15 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "candid-utils" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "candid", + "candid_parser", +] + [[package]] name = "candid_derive" version = "0.10.23" @@ -787,6 +846,30 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "canlog" +version = "0.2.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "candid", + "ic-canister-log 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ic0", + "regex-lite", + "serde", + "serde_json", +] + +[[package]] +name = "canlog_derive" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "cargo-platform" version = "0.1.9" @@ -1159,42 +1242,36 @@ dependencies = [ [[package]] name = "cycles-minting-canister" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", - "base64 0.13.1", "build-info", "build-info-build", "candid", "dfn_protobuf", "ic-base-types", "ic-cdk", - "ic-certified-map", "ic-crypto-tree-hash", "ic-dummy-getrandom-for-wasm", "ic-http-types", "ic-ledger-core", "ic-management-canister-types-private", "ic-metrics-encoder", - "ic-nervous-system-clients", "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", "ic-nervous-system-governance", "ic-nervous-system-time-helpers", "ic-nns-common", "ic-nns-constants", - "ic-protobuf", "ic-types", "ic-xrc-types", "icp-ledger", "icrc-ledger-types", "lazy_static", "on_wire", - "prost", "rand 0.8.5", "serde", "serde_cbor", - "sha2 0.10.9", "yansi 0.5.1", ] @@ -1204,8 +1281,18 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core 0.20.11", + "darling_macro 0.20.11", ] [[package]] @@ -1222,17 +1309,42 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.117", +] + [[package]] name = "darling_macro" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "darling_core", + "darling_core 0.13.4", "quote", "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core 0.20.11", + "quote", + "syn 2.0.117", +] + [[package]] name = "dary_heap" version = "0.3.8" @@ -1285,6 +1397,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", + "der_derive", + "flagset", "pem-rfc7468", "zeroize", ] @@ -1303,6 +1417,17 @@ dependencies = [ "rusticata-macros", ] +[[package]] +name = "der_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "deranged" version = "0.5.8" @@ -1339,7 +1464,7 @@ dependencies = [ [[package]] name = "dfn_candid" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "dfn_core", @@ -1352,7 +1477,7 @@ dependencies = [ [[package]] name = "dfn_core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "on_wire", @@ -1361,7 +1486,7 @@ dependencies = [ [[package]] name = "dfn_http" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "dfn_candid", @@ -1373,7 +1498,7 @@ dependencies = [ [[package]] name = "dfn_http_metrics" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "dfn_candid", "dfn_core", @@ -1386,7 +1511,7 @@ dependencies = [ [[package]] name = "dfn_protobuf" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "on_wire", "prost", @@ -1432,6 +1557,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-next" version = "2.0.0" @@ -1442,6 +1576,18 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.2", + "windows-sys 0.59.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -1449,7 +1595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.6", "winapi", ] @@ -1556,6 +1702,7 @@ dependencies = [ "ff", "generic-array", "group", + "hkdf", "pem-rfc7468", "pkcs8", "rand_core 0.6.4", @@ -1640,14 +1787,14 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fe-derive" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "hex", - "num-bigint-dig", + "num-bigint-dig 0.9.1", "num-traits", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -1684,6 +1831,12 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" + [[package]] name = "flate2" version = "1.1.9" @@ -2077,15 +2230,6 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" -[[package]] -name = "humansize" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" -dependencies = [ - "libm", -] - [[package]] name = "hyper" version = "1.8.1" @@ -2214,7 +2358,7 @@ dependencies = [ [[package]] name = "ic-base-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "byte-unit", "bytes", @@ -2222,6 +2366,7 @@ dependencies = [ "comparable", "hex", "ic-crypto-sha2", + "ic-heap-bytes", "ic-protobuf", "phantom_newtype", "prost", @@ -2234,17 +2379,17 @@ dependencies = [ [[package]] name = "ic-btc-checker" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "askama", "base64 0.13.1", - "bitcoin", + "bitcoin-dogecoin", "candid", "ciborium", "futures", "hex", "ic-btc-interface", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-cdk", "ic-http-types", "ic-management-canister-types", @@ -2271,11 +2416,11 @@ dependencies = [ [[package]] name = "ic-btc-replica-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", - "ic-btc-interface", - "ic-error-types", + "ic-error-types 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", + "ic-interfaces-adapter-client", "ic-protobuf", "serde", "serde_bytes", @@ -2284,7 +2429,7 @@ dependencies = [ [[package]] name = "ic-canister-client-sender" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "ic-ed25519", @@ -2297,7 +2442,16 @@ dependencies = [ [[package]] name = "ic-canister-log" version = "0.2.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb82c4f617ecff6e452fe65af0489626ec7330ffe3eedd9ea14e6178eea48d1a" +dependencies = [ + "serde", +] + +[[package]] +name = "ic-canister-log" +version = "0.2.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "serde", ] @@ -2305,57 +2459,63 @@ dependencies = [ [[package]] name = "ic-canister-profiler" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-metrics-encoder", - "ic0 0.18.11", + "ic0", ] [[package]] name = "ic-cdk" -version = "0.17.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a7344f41493cbf591f13ae9f90181076f808a83af799815c3074b19c693d2e" +checksum = "818d6d5416a8f0212e1b132703b0da51e36c55f2b96677e96f2bbe7702e1bd85" dependencies = [ "candid", "ic-cdk-executor", "ic-cdk-macros", - "ic0 0.23.0", + "ic-error-types 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ic-management-canister-types", + "ic0", + "pin-project-lite", "serde", "serde_bytes", + "slotmap", + "thiserror 2.0.18", ] [[package]] name = "ic-cdk-executor" -version = "0.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903057edd3d4ff4b3fe44a64eaee1ceb73f579ba29e3ded372b63d291d7c16c2" +checksum = "33716b730ded33690b8a704bff3533fda87d229e58046823647d28816e9bcee7" +dependencies = [ + "ic0", + "slotmap", + "smallvec", +] [[package]] name = "ic-cdk-macros" -version = "0.17.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84cbaa50fa36d3e0616114becf81faa95a099e0d60948ed6978f30f1c77399fd" +checksum = "66dad91a214945cb3605bc9ef6901b87e2ac41e3624284c2cabba49d43aa4f43" dependencies = [ "candid", + "darling 0.20.11", "proc-macro2", "quote", - "serde", - "serde_tokenstream", "syn 2.0.117", ] [[package]] name = "ic-cdk-timers" -version = "0.11.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292b84c5b8e57e12bf26306be81ec145ab9641ab12317a6f88e5c22af55e7acd" +checksum = "6852b9c1d4a82ff50fc7318599298aee8bfb082bd7e9fe7e5c1420692b2170f7" dependencies = [ - "futures", - "ic-cdk", - "ic0 0.23.0", - "serde", - "serde_bytes", + "ic-cdk-executor", + "ic0", "slotmap", ] @@ -2397,18 +2557,19 @@ dependencies = [ [[package]] name = "ic-ckbtc-minter" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "bech32 0.9.1", "bs58", "candid", + "canlog", + "canlog_derive", "ciborium", "hex", "ic-base-types", "ic-btc-checker", "ic-btc-interface", - "ic-canister-log", "ic-cdk", "ic-crypto-sha2", "ic-dummy-getrandom-for-wasm", @@ -2421,7 +2582,7 @@ dependencies = [ "ic-secp256k1", "ic-stable-structures", "ic-utils-ensure", - "ic0 0.18.11", + "ic0", "icrc-ledger-client-cdk", "icrc-ledger-types", "lazy_static", @@ -2435,48 +2596,17 @@ dependencies = [ "serde_json", ] -[[package]] -name = "ic-crypto-internal-basic-sig-der-utils" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" -dependencies = [ - "hex", - "ic-types", - "simple_asn1", -] - -[[package]] -name = "ic-crypto-internal-basic-sig-ed25519" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" -dependencies = [ - "base64 0.13.1", - "curve25519-dalek", - "hex", - "ic-crypto-internal-basic-sig-der-utils", - "ic-crypto-internal-seed", - "ic-crypto-internal-types", - "ic-crypto-secrets-containers", - "ic-ed25519", - "ic-protobuf", - "ic-types", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "simple_asn1", - "zeroize", -] - [[package]] name = "ic-crypto-internal-bls12-381-type" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ + "cached 0.49.3", "hex", "ic_bls12_381", "itertools 0.12.1", - "lazy_static", "pairing", + "parking_lot", "paste", "rand 0.8.5", "rand_chacha 0.3.1", @@ -2488,19 +2618,20 @@ dependencies = [ [[package]] name = "ic-crypto-internal-hmac" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "ic-crypto-internal-sha2", + "ic-crypto-sha2", ] [[package]] name = "ic-crypto-internal-multi-sig-bls12381" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "base64 0.13.1", "hex", "ic-crypto-internal-bls12-381-type", + "ic-crypto-internal-seed", "ic-crypto-internal-types", "ic-crypto-secrets-containers", "ic-crypto-sha2", @@ -2515,7 +2646,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-seed" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "hex", "ic-crypto-sha2", @@ -2525,18 +2656,10 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ic-crypto-internal-sha2" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" -dependencies = [ - "sha2 0.10.9", -] - [[package]] name = "ic-crypto-internal-threshold-sig-bls12381" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "base64 0.13.1", "cached 0.49.3", @@ -2547,7 +2670,6 @@ dependencies = [ "ic-crypto-secrets-containers", "ic-crypto-sha2", "ic-types", - "lazy_static", "parking_lot", "rand 0.8.5", "rand_chacha 0.3.1", @@ -2562,7 +2684,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-threshold-sig-canister-threshold-sig" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "curve25519-dalek", "fe-derive", @@ -2576,7 +2698,6 @@ dependencies = [ "ic-crypto-sha2", "ic-types", "k256", - "lazy_static", "p256", "paste", "rand 0.8.5", @@ -2592,9 +2713,8 @@ dependencies = [ [[package]] name = "ic-crypto-internal-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "arrayvec 0.7.6", "hex", "ic-protobuf", "phantom_newtype", @@ -2609,16 +2729,16 @@ dependencies = [ [[package]] name = "ic-crypto-node-key-validation" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "hex", "ic-base-types", - "ic-crypto-internal-basic-sig-ed25519", "ic-crypto-internal-multi-sig-bls12381", "ic-crypto-internal-threshold-sig-bls12381", "ic-crypto-internal-threshold-sig-canister-threshold-sig", "ic-crypto-internal-types", "ic-crypto-tls-cert-validation", + "ic-ed25519", "ic-protobuf", "ic-types", "serde", @@ -2627,7 +2747,7 @@ dependencies = [ [[package]] name = "ic-crypto-secrets-containers" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "serde", "zeroize", @@ -2636,18 +2756,18 @@ dependencies = [ [[package]] name = "ic-crypto-sha2" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "ic-crypto-internal-sha2", + "sha2 0.10.9", ] [[package]] name = "ic-crypto-tls-cert-validation" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "hex", - "ic-crypto-internal-basic-sig-ed25519", + "ic-ed25519", "ic-protobuf", "ic-types", "serde", @@ -2657,7 +2777,7 @@ dependencies = [ [[package]] name = "ic-crypto-tree-hash" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-crypto-internal-types", "ic-crypto-sha2", @@ -2670,7 +2790,7 @@ dependencies = [ [[package]] name = "ic-crypto-utils-basic-sig" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "ic-ed25519", @@ -2680,7 +2800,7 @@ dependencies = [ [[package]] name = "ic-crypto-utils-ni-dkg" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-crypto-internal-types", "ic-protobuf", @@ -2690,20 +2810,22 @@ dependencies = [ [[package]] name = "ic-dummy-getrandom-for-wasm" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "getrandom 0.2.17", ] [[package]] name = "ic-ed25519" -version = "0.2.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +version = "0.6.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "curve25519-dalek", "ed25519-dalek", + "hex-literal", "hkdf", - "pem 1.1.1", + "ic_principal", + "pem 3.0.6", "rand 0.8.5", "thiserror 2.0.18", "zeroize", @@ -2712,17 +2834,53 @@ dependencies = [ [[package]] name = "ic-error-types" version = "0.2.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbeeb3d91aa179d6496d7293becdacedfc413c825cac79fd54ea1906f003ee55" dependencies = [ "serde", "strum", "strum_macros", ] +[[package]] +name = "ic-error-types" +version = "0.2.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "ic-heap-bytes", + "regex-lite", + "serde", + "strum", + "strum_macros", +] + +[[package]] +name = "ic-heap-bytes" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "candid", + "ic-heap-bytes-derive", + "paste", + "prometheus", + "tempfile", +] + +[[package]] +name = "ic-heap-bytes-derive" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "ic-http-types" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "serde", @@ -2732,7 +2890,7 @@ dependencies = [ [[package]] name = "ic-icrc1" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ciborium", @@ -2754,12 +2912,12 @@ dependencies = [ [[package]] name = "ic-icrc1-index-ng" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ciborium", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-canister-profiler", "ic-cdk", "ic-cdk-timers", @@ -2781,18 +2939,17 @@ dependencies = [ [[package]] name = "ic-icrc1-ledger" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", "ciborium", "hex", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-cdk", "ic-cdk-timers", "ic-certification 3.1.0", - "ic-crypto-tree-hash", "ic-http-types", "ic-icrc1", "ic-icrc1-tokens-u64", @@ -2812,7 +2969,7 @@ dependencies = [ [[package]] name = "ic-icrc1-tokens-u64" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-ledger-core", @@ -2835,15 +2992,34 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "ic-interfaces-adapter-client" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "strum_macros", + "thiserror 2.0.18", +] + +[[package]] +name = "ic-interfaces-registry" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "ic-types", + "prost", + "serde", +] + [[package]] name = "ic-ledger-canister-core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-cdk", "ic-ledger-core", "ic-ledger-hash-of", @@ -2857,7 +3033,7 @@ dependencies = [ [[package]] name = "ic-ledger-core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-ledger-hash-of", @@ -2871,7 +3047,7 @@ dependencies = [ [[package]] name = "ic-ledger-hash-of" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "hex", @@ -2881,13 +3057,13 @@ dependencies = [ [[package]] name = "ic-limits" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-management-canister-types" -version = "0.3.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea7e5b8a0f7c3b320d9450ac950547db4f24a31601b5d398f9680b64427455d2" +checksum = "3149217e24186df3f13dc45eee14cdb3e5cad07d0b2b67bd53555c1c55462957" dependencies = [ "candid", "serde", @@ -2897,13 +3073,13 @@ dependencies = [ [[package]] name = "ic-management-canister-types-private" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-base-types", "ic-btc-interface", "ic-btc-replica-types", - "ic-error-types", + "ic-error-types 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-protobuf", "ic-utils", "num-traits", @@ -2920,10 +3096,15 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b5c7628eac357aecda461130f8074468be5aa4d258a002032d82d817f79f1f8" +[[package]] +name = "ic-nervous-system-access-list" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" + [[package]] name = "ic-nervous-system-canisters" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -2944,7 +3125,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-chunks" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-crypto-sha2", "ic-stable-structures", @@ -2955,14 +3136,13 @@ dependencies = [ [[package]] name = "ic-nervous-system-clients" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", - "dfn_candid", "dfn_core", "ic-base-types", - "ic-error-types", + "ic-error-types 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-ledger-core", "ic-management-canister-types-private", "ic-nervous-system-canisters", @@ -2971,6 +3151,7 @@ dependencies = [ "ic-nervous-system-runtime", "ic-utils", "icrc-ledger-client", + "icrc-ledger-client-cdk", "icrc-ledger-types", "num-traits", "serde", @@ -2979,35 +3160,29 @@ dependencies = [ [[package]] name = "ic-nervous-system-collections-union-multi-map" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-nervous-system-common" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "async-trait", "base64 0.13.1", - "build-info", "build-info-build", "by_address", "bytes", "dfn_core", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-crypto-sha2", "ic-http-types", "ic-ledger-core", "ic-metrics-encoder", - "ic-nervous-system-runtime", - "ic-nns-constants", "ic-stable-structures", "icp-ledger", - "icrc-ledger-types", "json5", "lazy_static", "maplit", - "mockall", "num-traits", "priority-queue", "prost", @@ -3019,12 +3194,12 @@ dependencies = [ [[package]] name = "ic-nervous-system-common-build-metadata" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-nervous-system-common-test-keys" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "ic-canister-client-sender", @@ -3037,12 +3212,12 @@ dependencies = [ [[package]] name = "ic-nervous-system-common-validation" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-nervous-system-governance" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "ic-stable-structures", @@ -3054,7 +3229,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-initial-supply" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -3068,7 +3243,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-linear-map" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "rust_decimal", ] @@ -3076,12 +3251,12 @@ dependencies = [ [[package]] name = "ic-nervous-system-lock" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-nervous-system-long-message" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-cdk", @@ -3092,7 +3267,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-proto" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "comparable", @@ -3105,23 +3280,34 @@ dependencies = [ [[package]] name = "ic-nervous-system-proxied-canister-calls-tracker" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "ic-cdk", ] +[[package]] +name = "ic-nervous-system-rate-limits" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "ic-stable-structures", + "serde", +] + [[package]] name = "ic-nervous-system-root" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "dfn_core", + "ic-base-types", "ic-cdk", "ic-crypto-sha2", "ic-management-canister-types-private", "ic-nervous-system-clients", + "ic-nervous-system-lock", "ic-nervous-system-runtime", "serde", "serde_bytes", @@ -3130,7 +3316,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-runtime" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -3143,17 +3329,17 @@ dependencies = [ [[package]] name = "ic-nervous-system-string" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-nervous-system-temporary" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-nervous-system-time-helpers" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-cdk", ] @@ -3161,7 +3347,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-timer-task" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -3176,7 +3362,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-timers" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-cdk-timers", "slotmap", @@ -3185,7 +3371,7 @@ dependencies = [ [[package]] name = "ic-nervous-system-timestamp" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "time", ] @@ -3193,7 +3379,7 @@ dependencies = [ [[package]] name = "ic-neurons-fund" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-cdk", "ic-nervous-system-common", @@ -3207,33 +3393,28 @@ dependencies = [ [[package]] name = "ic-nns-common" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "comparable", "ic-base-types", "ic-cdk", - "ic-crypto-sha2", "ic-nervous-system-canisters", - "ic-nervous-system-common", "ic-nns-constants", "ic-protobuf", "ic-registry-keys", "ic-registry-transport", "ic-stable-structures", - "ic-types", - "lazy_static", "num-traits", "prost", "serde", "serde_bytes", - "sha2 0.10.9", ] [[package]] name = "ic-nns-constants" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "maplit", @@ -3242,13 +3423,14 @@ dependencies = [ [[package]] name = "ic-nns-governance" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "build-info", "build-info-build", - "bytes", "candid", + "candid_parser", + "chrono", "comparable", "csv", "cycles-minting-canister", @@ -3261,6 +3443,7 @@ dependencies = [ "ic-dummy-getrandom-for-wasm", "ic-http-types", "ic-ledger-core", + "ic-limits", "ic-management-canister-types-private", "ic-metrics-encoder", "ic-nervous-system-canisters", @@ -3268,10 +3451,13 @@ dependencies = [ "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", "ic-nervous-system-common-test-keys", + "ic-nervous-system-common-validation", "ic-nervous-system-governance", "ic-nervous-system-linear-map", + "ic-nervous-system-lock", "ic-nervous-system-long-message", "ic-nervous-system-proto", + "ic-nervous-system-rate-limits", "ic-nervous-system-root", "ic-nervous-system-runtime", "ic-nervous-system-temporary", @@ -3282,8 +3468,9 @@ dependencies = [ "ic-nns-common", "ic-nns-constants", "ic-nns-governance-api", + "ic-nns-governance-derive-self-describing", "ic-nns-governance-init", - "ic-nns-gtc-accounts", + "ic-nns-handler-lifeline-interface", "ic-nns-handler-root-interface", "ic-node-rewards-canister-api", "ic-protobuf", @@ -3302,7 +3489,6 @@ dependencies = [ "maplit", "mockall", "num-traits", - "on_wire", "pretty_assertions", "prometheus-parse", "prost", @@ -3313,7 +3499,6 @@ dependencies = [ "rust_decimal_macros", "serde", "serde_bytes", - "serde_json", "strum", "strum_macros", ] @@ -3321,25 +3506,19 @@ dependencies = [ [[package]] name = "ic-nns-governance-api" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "bytes", "candid", - "comparable", + "hex", "ic-base-types", "ic-crypto-sha2", - "ic-nervous-system-clients", "ic-nervous-system-common", "ic-nervous-system-common-validation", "ic-nervous-system-proto", "ic-nns-common", - "ic-protobuf", - "ic-sns-root", "ic-sns-swap", - "ic-types", "ic-utils", "icp-ledger", - "itertools 0.12.1", "prost", "serde", "serde_bytes", @@ -3347,15 +3526,24 @@ dependencies = [ "strum_macros", ] +[[package]] +name = "ic-nns-governance-derive-self-describing" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "ic-nns-governance-init" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "csv", "ic-base-types", "ic-nervous-system-common", - "ic-nervous-system-common-build-metadata", "ic-nervous-system-common-test-keys", "ic-nns-common", "ic-nns-governance-api", @@ -3365,20 +3553,27 @@ dependencies = [ ] [[package]] -name = "ic-nns-gtc-accounts" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +name = "ic-nns-handler-lifeline-interface" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "candid", + "ic-crypto-sha2", + "serde", +] [[package]] name = "ic-nns-handler-root-interface" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", "ic-base-types", "ic-cdk", + "ic-management-canister-types-private", "ic-nervous-system-clients", + "ic-nervous-system-root", "ic-nns-constants", "serde", ] @@ -3386,22 +3581,28 @@ dependencies = [ [[package]] name = "ic-node-rewards-canister-api" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", - "ic-cdk", + "chrono", + "ic-base-types", + "ic-nervous-system-proto", + "ic-protobuf", + "rewards-calculation", + "rust_decimal", "serde", ] [[package]] name = "ic-protobuf" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "bincode", "candid", + "comparable", "erased-serde", - "ic-error-types", + "ic-error-types 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "prost", "serde", "serde_json", @@ -3412,9 +3613,11 @@ dependencies = [ [[package]] name = "ic-registry-canister-api" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ + "attestation", "candid", + "der", "ic-base-types", "ic-nervous-system-chunks", "ic-registry-transport", @@ -3426,7 +3629,7 @@ dependencies = [ [[package]] name = "ic-registry-canister-chunkify" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-cdk", "ic-nervous-system-chunks", @@ -3435,10 +3638,38 @@ dependencies = [ "prost", ] +[[package]] +name = "ic-registry-client-helpers" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "ic-base-types", + "ic-interfaces-registry", + "ic-limits", + "ic-management-canister-types-private", + "ic-protobuf", + "ic-registry-common-proto", + "ic-registry-keys", + "ic-registry-provisional-whitelist", + "ic-registry-routing-table", + "ic-registry-subnet-features", + "ic-types", + "serde_cbor", + "thiserror 2.0.18", +] + +[[package]] +name = "ic-registry-common-proto" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "prost", +] + [[package]] name = "ic-registry-keys" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "hex", @@ -3451,17 +3682,26 @@ dependencies = [ [[package]] name = "ic-registry-node-provider-rewards" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-base-types", "ic-cdk", "ic-protobuf", ] +[[package]] +name = "ic-registry-provisional-whitelist" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "ic-base-types", + "ic-protobuf", +] + [[package]] name = "ic-registry-routing-table" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-base-types", @@ -3472,7 +3712,7 @@ dependencies = [ [[package]] name = "ic-registry-subnet-features" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-management-canister-types-private", @@ -3483,7 +3723,7 @@ dependencies = [ [[package]] name = "ic-registry-subnet-type" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "ic-protobuf", @@ -3495,7 +3735,7 @@ dependencies = [ [[package]] name = "ic-registry-transport" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -3509,14 +3749,15 @@ dependencies = [ [[package]] name = "ic-secp256k1" -version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +version = "0.3.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ + "hex-literal", "hmac", + "ic_principal", "k256", - "lazy_static", "num-bigint 0.4.6", - "pem 1.1.1", + "pem 3.0.6", "rand 0.8.5", "rand_chacha 0.3.1", "sha2 0.10.9", @@ -3527,19 +3768,20 @@ dependencies = [ [[package]] name = "ic-sns-governance" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "base64 0.13.1", "build-info", "build-info-build", "candid", + "candid-utils", "clap", "comparable", "futures", "hex", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-canister-profiler", "ic-cdk", "ic-cdk-timers", @@ -3561,6 +3803,7 @@ dependencies = [ "ic-nervous-system-proto", "ic-nervous-system-root", "ic-nervous-system-runtime", + "ic-nervous-system-temporary", "ic-nervous-system-timestamp", "ic-nns-constants", "ic-protobuf", @@ -3568,6 +3811,7 @@ dependencies = [ "ic-sns-governance-proposal-criticality", "ic-sns-governance-proposals-amount-total-limit", "ic-sns-governance-token-valuation", + "ic-stable-structures", "ic-utils", "icp-ledger", "icrc-ledger-client", @@ -3594,7 +3838,7 @@ dependencies = [ [[package]] name = "ic-sns-governance-api" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "bytes", "candid", @@ -3619,7 +3863,7 @@ dependencies = [ [[package]] name = "ic-sns-governance-proposal-criticality" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-nervous-system-proto", ] @@ -3627,7 +3871,7 @@ dependencies = [ [[package]] name = "ic-sns-governance-proposals-amount-total-limit" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-sns-governance-token-valuation", "num-traits", @@ -3638,7 +3882,7 @@ dependencies = [ [[package]] name = "ic-sns-governance-token-valuation" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -3660,7 +3904,7 @@ dependencies = [ [[package]] name = "ic-sns-init" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "base64 0.13.1", "candid", @@ -3688,7 +3932,7 @@ dependencies = [ [[package]] name = "ic-sns-root" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "build-info", @@ -3697,7 +3941,7 @@ dependencies = [ "comparable", "futures", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-cdk", "ic-cdk-timers", "ic-http-types", @@ -3718,7 +3962,7 @@ dependencies = [ [[package]] name = "ic-sns-swap" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "build-info", @@ -3727,7 +3971,7 @@ dependencies = [ "comparable", "hex", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-cdk", "ic-cdk-timers", "ic-http-types", @@ -3757,7 +4001,7 @@ dependencies = [ [[package]] name = "ic-sns-swap-proto-library" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "comparable", @@ -3772,7 +4016,7 @@ dependencies = [ [[package]] name = "ic-sns-wasm" version = "1.0.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -3832,7 +4076,7 @@ dependencies = [ [[package]] name = "ic-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "base64 0.13.1", "bincode", @@ -3844,7 +4088,8 @@ dependencies = [ "ic-crypto-internal-types", "ic-crypto-sha2", "ic-crypto-tree-hash", - "ic-error-types", + "ic-error-types 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", + "ic-heap-bytes", "ic-limits", "ic-management-canister-types-private", "ic-protobuf", @@ -3870,7 +4115,7 @@ dependencies = [ [[package]] name = "ic-utils" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "hex", "scoped_threadpool", @@ -3881,12 +4126,12 @@ dependencies = [ [[package]] name = "ic-utils-ensure" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "ic-validate-eq" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "ic-validate-eq-derive", ] @@ -3894,11 +4139,10 @@ dependencies = [ [[package]] name = "ic-validate-eq-derive" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -3944,15 +4188,9 @@ dependencies = [ [[package]] name = "ic0" -version = "0.18.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576c539151d4769fb4d1a0c25c4108dd18facd04c5695b02cf2d226ab4e43aa5" - -[[package]] -name = "ic0" -version = "0.23.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de254dd67bbd58073e23dc1c8553ba12fa1dc610a19de94ad2bbcd0460c067f" +checksum = "1499d08fd5be8f790d477e1865d63bab6a8d748300e141270c4296e6d5fdd6bc" [[package]] name = "ic_bls12_381" @@ -3986,13 +4224,11 @@ dependencies = [ [[package]] name = "icp-ledger" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "comparable", "crc32fast", - "dfn_candid", - "dfn_core", "dfn_protobuf", "hex", "ic-base-types", @@ -4001,23 +4237,20 @@ dependencies = [ "ic-ledger-canister-core", "ic-ledger-core", "ic-ledger-hash-of", - "ic-nns-constants", "ic-stable-structures", "icrc-ledger-types", - "lazy_static", "on_wire", "prost", "serde", "serde_bytes", "serde_cbor", - "strum", "strum_macros", ] [[package]] name = "icrc-cbor" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "minicbor", @@ -4027,8 +4260,8 @@ dependencies = [ [[package]] name = "icrc-ledger-client" -version = "0.1.3" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +version = "0.1.4" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -4037,8 +4270,8 @@ dependencies = [ [[package]] name = "icrc-ledger-client-cdk" -version = "0.1.2" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +version = "0.1.4" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "async-trait", "candid", @@ -4048,8 +4281,8 @@ dependencies = [ [[package]] name = "icrc-ledger-types" -version = "0.1.10" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +version = "0.1.12" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "base32", "candid", @@ -4057,7 +4290,6 @@ dependencies = [ "hex", "ic-stable-structures", "icrc-cbor", - "itertools 0.12.1", "minicbor", "num-bigint 0.4.6", "num-traits", @@ -4246,6 +4478,12 @@ dependencies = [ "serde", ] +[[package]] +name = "iocuddle" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8972d5be69940353d5347a1344cb375d9b457d6809b428b05bb1ca2fb9ce007" + [[package]] name = "ipnet" version = "2.11.0" @@ -4430,20 +4668,16 @@ dependencies = [ [[package]] name = "ledger-canister" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ - "async-trait", "candid", "candid_parser", "ciborium", - "dfn_candid", - "dfn_core", "dfn_protobuf", "hex", "ic-base-types", - "ic-canister-log", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d)", "ic-cdk", - "ic-cdk-timers", "ic-http-types", "ic-icrc1", "ic-ledger-canister-core", @@ -4458,7 +4692,6 @@ dependencies = [ "lazy_static", "minicbor", "num-traits", - "on_wire", "serde", "serde_bytes", "serde_cbor", @@ -4546,6 +4779,12 @@ dependencies = [ "libc", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4646,22 +4885,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - [[package]] name = "minicbor" version = "0.19.1" @@ -4797,6 +5020,22 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-bigint-dig" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f9a86e097b0d187ad0e65667c2f58b9254671e86e7dbb78036b16692eae099" +dependencies = [ + "libm", + "num-integer", + "num-iter", + "num-traits", + "once_cell", + "rand 0.9.2", "serde", "smallvec", ] @@ -4864,7 +5103,7 @@ dependencies = [ [[package]] name = "on_wire" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" [[package]] name = "once_cell" @@ -4884,6 +5123,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "p256" version = "0.13.2" @@ -4896,6 +5141,18 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "p384" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.9", +] + [[package]] name = "pairing" version = "0.23.0" @@ -4959,15 +5216,6 @@ dependencies = [ "hmac", ] -[[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 = "pem" version = "2.0.1" @@ -5069,9 +5317,10 @@ dependencies = [ [[package]] name = "phantom_newtype" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", + "ic-heap-bytes", "num-traits", "serde", "slog", @@ -5104,6 +5353,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + [[package]] name = "pkcs11" version = "0.5.0" @@ -5307,6 +5567,45 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags", + "hex", + "procfs-core", + "rustix 0.38.44", +] + +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags", + "hex", +] + +[[package]] +name = "prometheus" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "libc", + "memchr", + "parking_lot", + "procfs", + "protobuf", + "thiserror 2.0.18", +] + [[package]] name = "prometheus-parse" version = "0.2.5" @@ -5371,6 +5670,26 @@ dependencies = [ "prost", ] +[[package]] +name = "protobuf" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" +dependencies = [ + "once_cell", + "protobuf-support", + "thiserror 1.0.69", +] + +[[package]] +name = "protobuf-support" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" +dependencies = [ + "thiserror 1.0.69", +] + [[package]] name = "psm" version = "0.1.30" @@ -5631,6 +5950,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + [[package]] name = "regex" version = "1.12.3" @@ -5654,6 +5984,12 @@ dependencies = [ "regex-syntax 0.8.10", ] +[[package]] +name = "regex-lite" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -5669,11 +6005,13 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "registry-canister" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ + "attestation", "build-info", "build-info-build", "candid", + "der", "dfn_candid", "dfn_core", "dfn_http_metrics", @@ -5689,11 +6027,11 @@ dependencies = [ "ic-crypto-utils-ni-dkg", "ic-management-canister-types-private", "ic-metrics-encoder", - "ic-nervous-system-canisters", + "ic-nervous-system-access-list", "ic-nervous-system-chunks", - "ic-nervous-system-clients", "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", + "ic-nervous-system-rate-limits", "ic-nervous-system-string", "ic-nervous-system-temporary", "ic-nervous-system-time-helpers", @@ -5710,7 +6048,6 @@ dependencies = [ "ic-registry-transport", "ic-stable-structures", "ic-types", - "ic-utils", "idna", "ipnet", "lazy_static", @@ -5775,6 +6112,22 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "rewards-calculation" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" +dependencies = [ + "chrono", + "ic-base-types", + "ic-protobuf", + "itertools 0.12.1", + "lazy_static", + "maplit", + "rust_decimal", + "rust_decimal_macros", + "serde", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -5855,6 +6208,26 @@ dependencies = [ "winapi", ] +[[package]] +name = "rsa" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig 0.8.6", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rust_decimal" version = "1.40.0" @@ -5917,6 +6290,19 @@ dependencies = [ "nom", ] +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.52.0", +] + [[package]] name = "rustix" version = "1.1.4" @@ -5926,7 +6312,7 @@ dependencies = [ "bitflags", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.12.1", "windows-sys 0.61.2", ] @@ -6172,18 +6558,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "serde_tokenstream" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c49585c52c01f13c5c2ebb333f14f6885d76daa768d8a037d28017ec538c69" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "syn 2.0.117", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -6212,7 +6586,7 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ - "darling", + "darling 0.13.4", "proc-macro2", "quote", "syn 1.0.109", @@ -6256,6 +6630,29 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "sev" +version = "7.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2ff74d7e7d1cc172f3a45adec74fbeee928d71df095b85aaaf66eb84e1e31e6" +dependencies = [ + "base64 0.22.1", + "bitfield", + "bitflags", + "byteorder", + "dirs", + "hex", + "iocuddle", + "lazy_static", + "libc", + "p384", + "rsa", + "sha2 0.10.9", + "static_assertions", + "uuid", + "x509-cert", +] + [[package]] name = "sha2" version = "0.9.9" @@ -6420,7 +6817,7 @@ dependencies = [ [[package]] name = "sns-treasury-manager" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=c7993fa049275b6700df8dfcc02f90d0fca82f24#c7993fa049275b6700df8dfcc02f90d0fca82f24" +source = "git+https://github.com/dfinity/ic?rev=007c473c9c7fc820c49eea5c823cdd4b9404119d#007c473c9c7fc820c49eea5c823cdd4b9404119d" dependencies = [ "candid", "derivative", @@ -6472,6 +6869,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "string_cache" version = "0.8.9" @@ -6587,7 +6990,7 @@ dependencies = [ "fastrand", "getrandom 0.4.1", "once_cell", - "rustix", + "rustix 1.1.4", "windows-sys 0.61.2", ] @@ -6747,6 +7150,27 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "tokio" version = "1.49.0" @@ -6916,12 +7340,6 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - [[package]] name = "unicode-ident" version = "1.0.24" @@ -7011,6 +7429,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" dependencies = [ "js-sys", + "serde_core", "wasm-bindgen", ] @@ -7616,6 +8035,18 @@ dependencies = [ "tap", ] +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "spki", + "tls_codec", +] + [[package]] name = "x509-parser" version = "0.16.0" diff --git a/Cargo.toml b/Cargo.toml index 7f5cb87a..845e1eb8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,20 +13,20 @@ license = "Apache-2.0" # ./scripts/point-to-ic-repo-commit-id.sh be used. That also updates the files # in the candid directory. (This core would be unnecessary if this code also # lived in the ic repo.) -ic-base-types = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-ckbtc-minter = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-nervous-system-common = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-nns-common = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-nns-constants = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-nns-governance = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-nns-governance-api = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-sns-governance = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-sns-root = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-sns-swap = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ic-sns-wasm = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -icp-ledger = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -icrc-ledger-types = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } -ledger-canister = { git = "https://github.com/dfinity/ic", rev = "c7993fa049275b6700df8dfcc02f90d0fca82f24" } +ic-base-types = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-ckbtc-minter = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-nervous-system-common = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-nns-common = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-nns-constants = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-nns-governance = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-nns-governance-api = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-sns-governance = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-sns-root = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-sns-swap = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ic-sns-wasm = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +icp-ledger = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +icrc-ledger-types = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } +ledger-canister = { git = "https://github.com/dfinity/ic", rev = "007c473c9c7fc820c49eea5c823cdd4b9404119d" } candid = "0.10.2" candid_parser = "0.1.2" diff --git a/candid/ckbtc_minter.did b/candid/ckbtc_minter.did index 7ef86250..385b47db 100644 --- a/candid/ckbtc_minter.did +++ b/candid/ckbtc_minter.did @@ -1,8 +1,15 @@ // Represents an account on the ckBTC ledger. type Account = record { owner : principal; subaccount : opt blob }; +type environment_variable = record { + name: text; + value: text; +}; + type CanisterStatusResponse = record { status : CanisterStatusType; + ready_for_migration : bool; + version : nat64; memory_size : nat; cycles : nat; settings : DefiniteCanisterSettings; @@ -10,6 +17,7 @@ type CanisterStatusResponse = record { module_hash : opt vec nat8; query_stats : QueryStats; reserved_cycles : nat; + memory_metrics : MemoryMetrics; }; type QueryStats = record { @@ -19,6 +27,17 @@ type QueryStats = record { request_payload_bytes_total : nat; }; +type MemoryMetrics = record { + wasm_memory_size : nat; + stable_memory_size : nat; + global_memory_size : nat; + wasm_binary_size : nat; + custom_sections_size : nat; + canister_history_size : nat; + wasm_chunk_store_size : nat; + snapshots_size : nat; +}; + type CanisterStatusType = variant { stopped; stopping; running }; type DefiniteCanisterSettings = record { @@ -29,6 +48,8 @@ type DefiniteCanisterSettings = record { reserved_cycles_limit : nat; log_visibility: LogVisibility; wasm_memory_limit : nat; + wasm_memory_threshold : nat; + environment_variables : vec environment_variable; }; type LogVisibility = variant { @@ -183,6 +204,10 @@ type InitArgs = record { // E.g., "dfx_test_key" on the local replica. ecdsa_key_name : text; + // The minimal amount of BTC that can be converted to ckBTC. + // UTXOs with lower values will be ignored. + deposit_btc_min_amount : opt nat64; + // The minimal amount of ckBTC that can be converted to BTC. retrieve_btc_min_amount : nat64; @@ -211,10 +236,20 @@ type InitArgs = record { /// The expiration duration (in seconds) for cached entries in the get_utxos cache. get_utxos_cache_expiration_seconds: opt nat64; + + /// The minimum number of available UTXOs to trigger a consolidation. + utxo_consolidation_threshold: opt nat64; + + /// The maximum number of input UTXOs allowed in a transaction. + max_num_inputs_in_transaction: opt nat64; }; // The upgrade parameters of the minter canister. type UpgradeArgs = record { + // The minimal amount of BTC that can be converted to ckBTC. + // UTXOs with lower values will be ignored. + deposit_btc_min_amount : opt nat64; + // The minimal amount of ckBTC that the minter converts to BTC. retrieve_btc_min_amount : opt nat64; @@ -243,6 +278,12 @@ type UpgradeArgs = record { /// The expiration duration (in seconds) for cached entries in the get_utxos cache. get_utxos_cache_expiration_seconds: opt nat64; + + /// The minimum number of available UTXOs to trigger a consolidation. + utxo_consolidation_threshold: opt nat64; + + /// The maximum number of input UTXOs allowed in a transaction. + max_num_inputs_in_transaction: opt nat64; }; type RetrieveBtcStatus = variant { @@ -339,6 +380,9 @@ type MinterInfo = record { retrieve_btc_min_amount : nat64; // The same as `check_fee`, but the old name is kept here to be backward compatible. kyt_fee : nat64; + // Minimal amount of BTC that can be deposited to be converted into ckBTC. + // UTXOs with lower values will be ignored. + deposit_btc_min_amount : opt nat64; }; type ReimbursementReason = variant { @@ -349,6 +393,24 @@ type ReimbursementReason = variant { }; }; +type ReplacedReason = variant { + to_retry; + to_cancel : record { + reason : WithdrawalReimbursementReason; + }; +}; + +type WithdrawalReimbursementReason = variant { + invalid_transaction : InvalidTransactionError; +}; + +type InvalidTransactionError = variant { + too_many_inputs : record { + num_inputs : nat64; + max_num_inputs : nat64; + }; +}; + type SuspendedReason = variant { // The minter ignored this UTXO because UTXO's value is too small to pay // the check fees. @@ -357,6 +419,11 @@ type SuspendedReason = variant { Quarantined; }; +type WithdrawalFee = record { + minter_fee : nat64; + bitcoin_fee : nat64; +}; + type Event = record { timestamp : opt nat64; payload : EventType; @@ -374,6 +441,12 @@ type EventType = variant { kyt_provider : opt principal; reimbursement_account : opt Account; }; + created_consolidate_utxos_request : record { + amount : nat64; + address : BitcoinAddress; + block_index : nat64; + received_at : nat64; + }; distributed_kyt_fee : record { kyt_provider : principal; amount : nat64; @@ -387,13 +460,18 @@ type EventType = variant { change_output : opt record { vout : nat32; value : nat64 }; submitted_at : nat64; fee: opt nat64; + withdrawal_fee : opt WithdrawalFee; + signed_tx: opt blob; }; replaced_transaction : record { new_txid : blob; old_txid : blob; change_output : record { vout : nat32; value : nat64 }; submitted_at : nat64; - fee: nat64; + fee : nat64; + withdrawal_fee : opt WithdrawalFee; + reason : opt ReplacedReason; + new_utxos : opt vec Utxo; }; confirmed_transaction : record { txid : blob }; checked_utxo : record { @@ -427,6 +505,19 @@ type EventType = variant { reason : ReimbursementReason; }; reimbursed_failed_deposit : record { burn_block_index : nat64; mint_block_index : nat64 }; + schedule_withdrawal_reimbursement : record { + account : Account; + burn_block_index : nat64; + amount : nat64; + reason : WithdrawalReimbursementReason; + }; + quarantined_withdrawal_reimbursement : record { + burn_block_index : nat64; + }; + reimbursed_withdrawal : record { + burn_block_index : nat64; + mint_block_index : nat64; + }; }; type MinterArg = variant { @@ -434,6 +525,94 @@ type MinterArg = variant { Upgrade : opt UpgradeArgs; }; +type MemoType = variant { + Burn; + Mint; +}; + +type DecodeLedgerMemoArgs = record { + // The encoded memo type + memo_type : MemoType; + // The encoded memo from a minter transaction on the ledger + encoded_memo : blob; +}; + +type Status = variant { + // The minter accepted a retrieve_btc request. + Accepted; + // The minter rejected a retrieve_btc due to a failed Bitcoin check. + Rejected; + CallFailed; +}; + +type MintMemo = variant { + // The minter converted a single UTXO to ckBTC. + Convert : record { + // The transaction ID of the accepted UTXO. + txid : opt blob; + // UTXO's output index within the BTC transaction. + vout : opt nat32; + // The Bitcoin check fee. + kyt_fee : opt nat64; + }; + // [deprecated] The minter minted accumulated check fees to the KYT provider. + Kyt; + // [deprecated] The minter failed to check retrieve btc destination address + // or the destination address is tainted. + KytFail : record { + // The Bitcoin check fee. + kyt_fee : opt nat64; + // The status of the Bitcoin check. + status : opt Status; + associated_burn_index : opt nat64; + }; + ReimburseWithdrawal : record { + // The id corresponding to the withdrawal request, + // which corresponds to the ledger burn index. + withdrawal_id : nat64; + }; +}; + +type BurnMemo = variant { + // The minter processed a retrieve_btc request. + Convert : record { + // The destination of the retrieve BTC request. + address : opt text; + // The check fee for the burn. + kyt_fee : opt nat64; + // The status of the Bitcoin check. + status : opt Status; + }; + // The minter consolidated UTXOs. + Consolidate : record { + // The total value of the consolidated UTXOs. + value : nat64; + // The number of input UTXOs that were consolidated. + inputs : nat64; + }; +}; + +type DecodedMemo = variant { + // The decoded MintMemo - `opt` since other variants of `MintMemo` could be added in the future. + Mint : opt MintMemo; + // The decoded BurnMemo - `opt` since other variants of `BurnMemo` could be added in the future. + Burn : opt BurnMemo; +}; + +type DecodeLedgerMemoError = variant { + // The provided memo could not be decoded. + InvalidMemo : text; +}; + +type DecodeLedgerMemoResult = variant { + // The decoded memo, if the minter was able to decode it. This field is `opt`, so that other memo types can be + // added in the future. + Ok : opt DecodedMemo; + // An error in case the minter was not able to decode the provided memo. This field is `opt`, so that other error + // types can be added in the future. + Err : opt DecodeLedgerMemoError; +} + service : (minter_arg : MinterArg) -> { // Section "Convert BTC to ckBTC" {{{ @@ -544,4 +723,9 @@ service : (minter_arg : MinterArg) -> { // The ckBTC minter authors do not guarantee backward compatibility for this method. get_events : (record { start: nat64; length : nat64 }) -> (vec Event) query; // }}} Section "Event log" + + // Section "Transaction Information" {{{ + // Returns information related to minter transactions. + decode_ledger_memo : (DecodeLedgerMemoArgs) -> (DecodeLedgerMemoResult) query; + // }}} } diff --git a/candid/icrc1.did b/candid/icrc1.did index 7eaadf46..7cb5f711 100644 --- a/candid/icrc1.did +++ b/candid/icrc1.did @@ -16,7 +16,7 @@ type Approve = record { amount : nat; expected_allowance : opt nat; expires_at : opt Timestamp; - spender : Account; + spender : Account }; type ApproveArgs = record { fee : opt nat; @@ -26,7 +26,7 @@ type ApproveArgs = record { amount : nat; expected_allowance : opt nat; expires_at : opt Timestamp; - spender : Account; + spender : Account }; type ApproveError = variant { GenericError : record { message : text; error_code : nat }; @@ -37,7 +37,7 @@ type ApproveError = variant { CreatedInFuture : record { ledger_time : Timestamp }; TooOld; Expired : record { ledger_time : Timestamp }; - InsufficientFunds : record { balance : nat }; + InsufficientFunds : record { balance : nat } }; type ApproveResult = variant { Ok : BlockIndex; Err : ApproveError }; @@ -45,187 +45,195 @@ type HttpRequest = record { url : text; method : text; body : blob; - headers : vec record { text; text }; + headers : vec record { text; text } }; type HttpResponse = record { body : blob; headers : vec record { text; text }; - status_code : nat16; + status_code : nat16 }; type Account = record { - owner : principal; - subaccount : opt Subaccount; + owner : principal; + subaccount : opt Subaccount }; type TransferArg = record { - from_subaccount : opt Subaccount; - to : Account; - amount : Tokens; - fee : opt Tokens; - memo : opt blob; - created_at_time: opt Timestamp; + from_subaccount : opt Subaccount; + to : Account; + amount : Tokens; + fee : opt Tokens; + memo : opt blob; + created_at_time : opt Timestamp }; type TransferError = variant { - BadFee : record { expected_fee : Tokens }; - BadBurn : record { min_burn_amount : Tokens }; - InsufficientFunds : record { balance : Tokens }; - TooOld; - CreatedInFuture : record { ledger_time : Timestamp }; - TemporarilyUnavailable; - Duplicate : record { duplicate_of : BlockIndex }; - GenericError : record { error_code : nat; message : text }; + BadFee : record { expected_fee : Tokens }; + BadBurn : record { min_burn_amount : Tokens }; + InsufficientFunds : record { balance : Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : Timestamp }; + TemporarilyUnavailable; + Duplicate : record { duplicate_of : BlockIndex }; + GenericError : record { error_code : nat; message : text } }; type TransferResult = variant { - Ok : BlockIndex; - Err : TransferError; + Ok : BlockIndex; + Err : TransferError }; // The value returned from the [icrc1_metadata] endpoint. type MetadataValue = variant { - Nat : nat; - Int : int; - Text : text; - Blob : blob; + Nat : nat; + Int : int; + Text : text; + Blob : blob }; type FeatureFlags = record { - icrc2 : bool; + icrc2 : bool }; // The initialization parameters of the Ledger type InitArgs = record { - minting_account : Account; - fee_collector_account : opt Account; - transfer_fee : nat; - decimals : opt nat8; - max_memo_length : opt nat16; - token_symbol : text; - token_name : text; - metadata : vec record { text; MetadataValue }; - initial_balances : vec record { Account; nat }; - feature_flags : opt FeatureFlags; - archive_options : record { - num_blocks_to_archive : nat64; - max_transactions_per_response : opt nat64; - trigger_threshold : nat64; - max_message_size_bytes : opt nat64; - cycles_for_archive_creation : opt nat64; - node_max_memory_size_bytes : opt nat64; - controller_id : principal; - more_controller_ids : opt vec principal; - }; - index_principal : opt principal; + minting_account : Account; + fee_collector_account : opt Account; + transfer_fee : nat; + decimals : opt nat8; + max_memo_length : opt nat16; + token_symbol : text; + token_name : text; + metadata : vec record { text; MetadataValue }; + initial_balances : vec record { Account; nat }; + feature_flags : opt FeatureFlags; + archive_options : record { + num_blocks_to_archive : nat64; + max_transactions_per_response : opt nat64; + trigger_threshold : nat64; + max_message_size_bytes : opt nat64; + cycles_for_archive_creation : opt nat64; + node_max_memory_size_bytes : opt nat64; + controller_id : principal; + more_controller_ids : opt vec principal + }; + index_principal : opt principal }; type ChangeFeeCollector = variant { - Unset; SetTo: Account; + Unset; + SetTo : Account }; type ChangeArchiveOptions = record { - num_blocks_to_archive : opt nat64; - max_transactions_per_response : opt nat64; - trigger_threshold : opt nat64; - max_message_size_bytes : opt nat64; - cycles_for_archive_creation : opt nat64; - node_max_memory_size_bytes : opt nat64; - controller_id : opt principal; - more_controller_ids : opt vec principal; + num_blocks_to_archive : opt nat64; + max_transactions_per_response : opt nat64; + trigger_threshold : opt nat64; + max_message_size_bytes : opt nat64; + cycles_for_archive_creation : opt nat64; + node_max_memory_size_bytes : opt nat64; + controller_id : opt principal; + more_controller_ids : opt vec principal }; type UpgradeArgs = record { - metadata : opt vec record { text; MetadataValue }; - token_symbol : opt text; - token_name : opt text; - transfer_fee : opt nat; - change_fee_collector : opt ChangeFeeCollector; - max_memo_length : opt nat16; - feature_flags : opt FeatureFlags; - change_archive_options : opt ChangeArchiveOptions; - index_principal : opt principal; + metadata : opt vec record { text; MetadataValue }; + token_symbol : opt text; + token_name : opt text; + transfer_fee : opt nat; + change_fee_collector : opt ChangeFeeCollector; + max_memo_length : opt nat16; + feature_flags : opt FeatureFlags; + change_archive_options : opt ChangeArchiveOptions; + index_principal : opt principal }; type LedgerArg = variant { - Init: InitArgs; - Upgrade: opt UpgradeArgs; + Init : InitArgs; + Upgrade : opt UpgradeArgs }; type GetTransactionsRequest = record { - // The index of the first tx to fetch. - start : TxIndex; - // The number of transactions to fetch. - length : nat; + // The index of the first tx to fetch. + start : TxIndex; + // The number of transactions to fetch. + length : nat }; type GetTransactionsResponse = record { - // The total number of transactions in the log. - log_length : nat; - - // List of transaction that were available in the ledger when it processed the call. - // - // The transactions form a contiguous range, with the first transaction having index - // [first_index] (see below), and the last transaction having index - // [first_index] + len(transactions) - 1. - // - // The transaction range can be an arbitrary sub-range of the originally requested range. - transactions : vec Transaction; - - // The index of the first transaction in [transactions]. - // If the transaction vector is empty, the exact value of this field is not specified. - first_index : TxIndex; - - // Encoding of instructions for fetching archived transactions whose indices fall into the - // requested range. - // - // For each entry `e` in [archived_transactions], `[e.from, e.from + len)` is a sub-range - // of the originally requested transaction range. - archived_transactions : vec record { - // The index of the first archived transaction you can fetch using the [callback]. - start : TxIndex; - - // The number of transactions you can fetch using the callback. - length : nat; - - // The function you should call to fetch the archived transactions. - // The range of the transaction accessible using this function is given by [from] - // and [len] fields above. - callback : QueryArchiveFn; - }; -}; + // The total number of transactions in the log. + log_length : nat; + + // List of transaction that were available in the ledger when it processed the call. + // + // The transactions form a contiguous range, with the first transaction having index + // [first_index] (see below), and the last transaction having index + // [first_index] + len(transactions) - 1. + // + // The transaction range can be an arbitrary sub-range of the originally requested range. + transactions : vec Transaction; + + // The index of the first transaction in [transactions]. + // If the transaction vector is empty, the exact value of this field is not specified. + first_index : TxIndex; + + // Encoding of instructions for fetching archived transactions whose indices fall into the + // requested range. + // + // For each entry `e` in [archived_transactions], `[e.from, e.from + len)` is a sub-range + // of the originally requested transaction range. + archived_transactions : vec record { + // The index of the first archived transaction you can fetch using the [callback]. + start : TxIndex; + // The number of transactions you can fetch using the callback. + length : nat; + + // The function you should call to fetch the archived transactions. + // The range of the transaction accessible using this function is given by [from] + // and [len] fields above. + callback : QueryArchiveFn + } +}; // A prefix of the transaction range specified in the [GetTransactionsRequest] request. type TransactionRange = record { - // A prefix of the requested transaction range. - // The index of the first transaction is equal to [GetTransactionsRequest.from]. - // - // Note that the number of transactions might be less than the requested - // [GetTransactionsRequest.length] for various reasons, for example: - // - // 1. The query might have hit the replica with an outdated state - // that doesn't have the whole range yet. - // 2. The requested range is too large to fit into a single reply. - // - // NOTE: the list of transactions can be empty if: - // - // 1. [GetTransactionsRequest.length] was zero. - // 2. [GetTransactionsRequest.from] was larger than the last transaction known to - // the canister. - transactions : vec Transaction; + // A prefix of the requested transaction range. + // The index of the first transaction is equal to [GetTransactionsRequest.from]. + // + // Note that the number of transactions might be less than the requested + // [GetTransactionsRequest.length] for various reasons, for example: + // + // 1. The query might have hit the replica with an outdated state + // that doesn't have the whole range yet. + // 2. The requested range is too large to fit into a single reply. + // + // NOTE: the list of transactions can be empty if: + // + // 1. [GetTransactionsRequest.length] was zero. + // 2. [GetTransactionsRequest.from] was larger than the last transaction known to + // the canister. + transactions : vec Transaction }; // A function for fetching archived transaction. -type QueryArchiveFn = func (GetTransactionsRequest) -> (TransactionRange) query; +type QueryArchiveFn = func(GetTransactionsRequest) -> (TransactionRange) query; type Transaction = record { burn : opt Burn; kind : text; mint : opt Mint; approve : opt Approve; + fee_collector : opt FeeCollector; timestamp : Timestamp; - transfer : opt Transfer; + transfer : opt Transfer +}; + +type FeeCollector = record { + caller : opt principal; + fee_collector : opt Account; + ts : opt nat64; + mthd : opt text }; type Burn = record { @@ -234,6 +242,7 @@ type Burn = record { created_at_time : opt Timestamp; amount : nat; spender : opt Account; + fee : opt nat }; type Mint = record { @@ -241,6 +250,7 @@ type Mint = record { memo : opt blob; created_at_time : opt Timestamp; amount : nat; + fee : opt nat }; type Transfer = record { @@ -250,17 +260,17 @@ type Transfer = record { memo : opt blob; created_at_time : opt Timestamp; amount : nat; - spender : opt Account; + spender : opt Account }; type Value = variant { - Blob : blob; - Text : text; - Nat : nat; - Nat64: nat64; - Int : int; - Array : vec Value; - Map : Map; + Blob : blob; + Text : text; + Nat : nat; + Nat64 : nat64; + Int : int; + Array : vec Value; + Map : Map }; type Map = vec record { text; Value }; @@ -268,151 +278,151 @@ type Map = vec record { text; Value }; type Block = Value; type GetBlocksArgs = record { - // The index of the first block to fetch. - start : BlockIndex; - // Max number of blocks to fetch. - length : nat; + // The index of the first block to fetch. + start : BlockIndex; + // Max number of blocks to fetch. + length : nat }; // A prefix of the block range specified in the [GetBlocksArgs] request. type BlockRange = record { - // A prefix of the requested block range. - // The index of the first block is equal to [GetBlocksArgs.start]. - // - // Note that the number of blocks might be less than the requested - // [GetBlocksArgs.length] for various reasons, for example: - // - // 1. The query might have hit the replica with an outdated state - // that doesn't have the whole range yet. - // 2. The requested range is too large to fit into a single reply. - // - // NOTE: the list of blocks can be empty if: - // - // 1. [GetBlocksArgs.length] was zero. - // 2. [GetBlocksArgs.start] was larger than the last block known to - // the canister. - blocks : vec Block; + // A prefix of the requested block range. + // The index of the first block is equal to [GetBlocksArgs.start]. + // + // Note that the number of blocks might be less than the requested + // [GetBlocksArgs.length] for various reasons, for example: + // + // 1. The query might have hit the replica with an outdated state + // that doesn't have the whole range yet. + // 2. The requested range is too large to fit into a single reply. + // + // NOTE: the list of blocks can be empty if: + // + // 1. [GetBlocksArgs.length] was zero. + // 2. [GetBlocksArgs.start] was larger than the last block known to + // the canister. + blocks : vec Block }; // A function for fetching archived blocks. -type QueryBlockArchiveFn = func (GetBlocksArgs) -> (BlockRange) query; +type QueryBlockArchiveFn = func(GetBlocksArgs) -> (BlockRange) query; // The result of a "get_blocks" call. type GetBlocksResponse = record { - // The index of the first block in "blocks". - // If the blocks vector is empty, the exact value of this field is not specified. - first_index : BlockIndex; - - // The total number of blocks in the chain. - // If the chain length is positive, the index of the last block is `chain_len - 1`. - chain_length : nat64; - - // System certificate for the hash of the latest block in the chain. - // Only present if `get_blocks` is called in a non-replicated query context. - certificate : opt blob; - - // List of blocks that were available in the ledger when it processed the call. - // - // The blocks form a contiguous range, with the first block having index - // [first_block_index] (see below), and the last block having index - // [first_block_index] + len(blocks) - 1. - // - // The block range can be an arbitrary sub-range of the originally requested range. - blocks : vec Block; - - // Encoding of instructions for fetching archived blocks. - archived_blocks : vec record { - // The index of the first archived block. - start : BlockIndex; + // The index of the first block in "blocks". + // If the blocks vector is empty, the exact value of this field is not specified. + first_index : BlockIndex; + + // The total number of blocks in the chain. + // If the chain length is positive, the index of the last block is `chain_len - 1`. + chain_length : nat64; + + // System certificate for the hash of the latest block in the chain. + // Only present if `get_blocks` is called in a non-replicated query context. + certificate : opt blob; + + // List of blocks that were available in the ledger when it processed the call. + // + // The blocks form a contiguous range, with the first block having index + // [first_block_index] (see below), and the last block having index + // [first_block_index] + len(blocks) - 1. + // + // The block range can be an arbitrary sub-range of the originally requested range. + blocks : vec Block; + + // Encoding of instructions for fetching archived blocks. + archived_blocks : vec record { + // The index of the first archived block. + start : BlockIndex; - // The number of blocks that can be fetched. - length : nat; + // The number of blocks that can be fetched. + length : nat; - // Callback to fetch the archived blocks. - callback : QueryBlockArchiveFn; - }; + // Callback to fetch the archived blocks. + callback : QueryBlockArchiveFn + } }; // Certificate for the block at `block_index`. type DataCertificate = record { - certificate : opt blob; - hash_tree : blob; + certificate : opt blob; + hash_tree : blob }; type StandardRecord = record { url : text; name : text }; type TransferFromArgs = record { - spender_subaccount : opt Subaccount; - from : Account; - to : Account; - amount : Tokens; - fee : opt Tokens; - memo : opt blob; - created_at_time: opt Timestamp; + spender_subaccount : opt Subaccount; + from : Account; + to : Account; + amount : Tokens; + fee : opt Tokens; + memo : opt blob; + created_at_time : opt Timestamp }; type TransferFromResult = variant { - Ok : BlockIndex; - Err : TransferFromError; + Ok : BlockIndex; + Err : TransferFromError }; type TransferFromError = variant { - BadFee : record { expected_fee : Tokens }; - BadBurn : record { min_burn_amount : Tokens }; - InsufficientFunds : record { balance : Tokens }; - InsufficientAllowance : record { allowance : Tokens }; - TooOld; - CreatedInFuture : record { ledger_time : Timestamp }; - Duplicate : record { duplicate_of : BlockIndex }; - TemporarilyUnavailable; - GenericError : record { error_code : nat; message : text }; + BadFee : record { expected_fee : Tokens }; + BadBurn : record { min_burn_amount : Tokens }; + InsufficientFunds : record { balance : Tokens }; + InsufficientAllowance : record { allowance : Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : Timestamp }; + Duplicate : record { duplicate_of : BlockIndex }; + TemporarilyUnavailable; + GenericError : record { error_code : nat; message : text } }; type ArchiveInfo = record { - canister_id: principal; - block_range_start: BlockIndex; - block_range_end: BlockIndex; + canister_id : principal; + block_range_start : BlockIndex; + block_range_end : BlockIndex }; type ICRC3Value = variant { - Blob : blob; - Text : text; - Nat : nat; - Int : int; - Array : vec ICRC3Value; - Map : vec record { text; ICRC3Value }; + Blob : blob; + Text : text; + Nat : nat; + Int : int; + Array : vec ICRC3Value; + Map : vec record { text; ICRC3Value } }; type GetArchivesArgs = record { - // The last archive seen by the client. - // The Ledger will return archives coming - // after this one if set, otherwise it - // will return the first archives. - from : opt principal; + // The last archive seen by the client. + // The Ledger will return archives coming + // after this one if set, otherwise it + // will return the first archives. + from : opt principal }; type GetArchivesResult = vec record { - // The id of the archive - canister_id : principal; + // The id of the archive + canister_id : principal; - // The first block in the archive - start : nat; + // The first block in the archive + start : nat; - // The last block in the archive - end : nat; + // The last block in the archive + end : nat }; type GetBlocksResult = record { - // Total number of blocks in the - // block log - log_length : nat; + // Total number of blocks in the + // block log + log_length : nat; - blocks : vec record { id : nat; block: ICRC3Value }; + blocks : vec record { id : nat; block : ICRC3Value }; - archived_blocks : vec record { - args : vec GetBlocksArgs; - callback : func (vec GetBlocksArgs) -> (GetBlocksResult) query; - }; + archived_blocks : vec record { + args : vec GetBlocksArgs; + callback : func(vec GetBlocksArgs) -> (GetBlocksResult) query + } }; type ICRC3DataCertificate = record { @@ -420,141 +430,156 @@ type ICRC3DataCertificate = record { certificate : blob; // CBOR encoded hash_tree - hash_tree : blob; + hash_tree : blob }; type icrc21_consent_message_metadata = record { - language: text; - utc_offset_minutes: opt int16; + language : text; + utc_offset_minutes : opt int16 }; type icrc21_consent_message_spec = record { - metadata: icrc21_consent_message_metadata; - device_spec: opt variant { - GenericDisplay; - LineDisplay: record { - characters_per_line: nat16; - lines_per_page: nat16; - }; - }; + metadata : icrc21_consent_message_metadata; + device_spec : opt variant { + GenericDisplay; + FieldsDisplay + } }; type icrc21_consent_message_request = record { - method: text; - arg: blob; - user_preferences: icrc21_consent_message_spec; + method : text; + arg : blob; + user_preferences : icrc21_consent_message_spec +}; + +type Icrc21Value = variant { + TokenAmount : record { + decimals : nat8; + amount : nat64; + symbol : text + }; + TimestampSeconds : record { + amount : nat64 + }; + DurationSeconds : record { + amount : nat64 + }; + Text : record { + content : text + } +}; + +type FieldsDisplay = record { + intent : text; + fields : vec record { text; Icrc21Value } }; type icrc21_consent_message = variant { - GenericDisplayMessage: text; - LineDisplayMessage: record { - pages: vec record { - lines: vec text; - }; - }; + GenericDisplayMessage : text; + FieldsDisplayMessage : FieldsDisplay }; type icrc21_consent_info = record { - consent_message: icrc21_consent_message; - metadata: icrc21_consent_message_metadata; + consent_message : icrc21_consent_message; + metadata : icrc21_consent_message_metadata }; type icrc21_error_info = record { - description: text; + description : text }; type icrc21_error = variant { - UnsupportedCanisterCall: icrc21_error_info; - ConsentMessageUnavailable: icrc21_error_info; - InsufficientPayment: icrc21_error_info; + UnsupportedCanisterCall : icrc21_error_info; + ConsentMessageUnavailable : icrc21_error_info; + InsufficientPayment : icrc21_error_info; - // Any error not covered by the above variants. - GenericError: record { - error_code: nat; - description: text; - }; + // Any error not covered by the above variants. + GenericError : record { + error_code : nat; + description : text + } }; type icrc21_consent_message_response = variant { - Ok: icrc21_consent_info; - Err: icrc21_error; + Ok : icrc21_consent_info; + Err : icrc21_error }; type GetAllowancesArgs = record { - from_account: opt Account; - prev_spender: opt Account; - take: opt nat; + from_account : opt Account; + prev_spender : opt Account; + take : opt nat }; type Allowance103 = record { - from_account: Account; - to_spender: Account; - allowance: nat; - expires_at: opt nat64; + from_account : Account; + to_spender : Account; + allowance : nat; + expires_at : opt nat64 }; type GetAllowancesError = variant { - AccessDenied: record { - reason: text; - }; - GenericError: record { - error_code: nat; - message: text; - }; + AccessDenied : record { + reason : text + }; + GenericError : record { + error_code : nat; + message : text + } }; type icrc103_get_allowances_response = variant { - Ok: vec Allowance103; - Err: GetAllowancesError; + Ok : vec Allowance103; + Err : GetAllowancesError }; type GetIndexPrincipalResult = variant { - Ok : principal; - Err : GetIndexPrincipalError; + Ok : principal; + Err : GetIndexPrincipalError }; type GetIndexPrincipalError = variant { - IndexPrincipalNotSet; + IndexPrincipalNotSet; - // Any error not covered by the above variants. - GenericError: record { - error_code: nat; - description: text; - }; + // Any error not covered by the above variants. + GenericError : record { + error_code : nat; + description : text + } }; service : (ledger_arg : LedgerArg) -> { - archives : () -> (vec ArchiveInfo) query; - get_transactions : (GetTransactionsRequest) -> (GetTransactionsResponse) query; - get_blocks : (GetBlocksArgs) -> (GetBlocksResponse) query; - get_data_certificate : () -> (DataCertificate) query; - - icrc1_name : () -> (text) query; - icrc1_symbol : () -> (text) query; - icrc1_decimals : () -> (nat8) query; - icrc1_metadata : () -> (vec record { text; MetadataValue }) query; - icrc1_total_supply : () -> (Tokens) query; - icrc1_fee : () -> (Tokens) query; - icrc1_minting_account : () -> (opt Account) query; - icrc1_balance_of : (Account) -> (Tokens) query; - icrc1_transfer : (TransferArg) -> (TransferResult); - icrc1_supported_standards : () -> (vec StandardRecord) query; - - icrc2_approve : (ApproveArgs) -> (ApproveResult); - icrc2_allowance : (AllowanceArgs) -> (Allowance) query; - icrc2_transfer_from : (TransferFromArgs) -> (TransferFromResult); - - icrc3_get_archives : (GetArchivesArgs) -> (GetArchivesResult) query; - icrc3_get_tip_certificate : () -> (opt ICRC3DataCertificate) query; - icrc3_get_blocks : (vec GetBlocksArgs) -> (GetBlocksResult) query; - icrc3_supported_block_types : () -> (vec record { block_type : text; url : text }) query; - - icrc21_canister_call_consent_message: (icrc21_consent_message_request) -> (icrc21_consent_message_response); - icrc10_supported_standards : () -> (vec record { name : text; url : text }) query; - - icrc103_get_allowances : (GetAllowancesArgs) -> (icrc103_get_allowances_response) query; - - icrc106_get_index_principal: () -> (GetIndexPrincipalResult) query; - - is_ledger_ready: () -> (bool) query; + archives : () -> (vec ArchiveInfo) query; + get_transactions : (GetTransactionsRequest) -> (GetTransactionsResponse) query; + get_blocks : (GetBlocksArgs) -> (GetBlocksResponse) query; + get_data_certificate : () -> (DataCertificate) query; + + icrc1_name : () -> (text) query; + icrc1_symbol : () -> (text) query; + icrc1_decimals : () -> (nat8) query; + icrc1_metadata : () -> (vec record { text; MetadataValue }) query; + icrc1_total_supply : () -> (Tokens) query; + icrc1_fee : () -> (Tokens) query; + icrc1_minting_account : () -> (opt Account) query; + icrc1_balance_of : (Account) -> (Tokens) query; + icrc1_transfer : (TransferArg) -> (TransferResult); + icrc1_supported_standards : () -> (vec StandardRecord) query; + + icrc2_approve : (ApproveArgs) -> (ApproveResult); + icrc2_allowance : (AllowanceArgs) -> (Allowance) query; + icrc2_transfer_from : (TransferFromArgs) -> (TransferFromResult); + + icrc3_get_archives : (GetArchivesArgs) -> (GetArchivesResult) query; + icrc3_get_tip_certificate : () -> (opt ICRC3DataCertificate) query; + icrc3_get_blocks : (vec GetBlocksArgs) -> (GetBlocksResult) query; + icrc3_supported_block_types : () -> (vec record { block_type : text; url : text }) query; + + icrc21_canister_call_consent_message : (icrc21_consent_message_request) -> (icrc21_consent_message_response); + icrc10_supported_standards : () -> (vec record { name : text; url : text }) query; + + icrc103_get_allowances : (GetAllowancesArgs) -> (icrc103_get_allowances_response) query; + + icrc106_get_index_principal : () -> (GetIndexPrincipalResult) query; + + is_ledger_ready : () -> (bool) query } diff --git a/candid/ledger.did b/candid/ledger.did index d57bf4df..77d6201c 100644 --- a/candid/ledger.did +++ b/candid/ledger.did @@ -2,12 +2,12 @@ // Amount of tokens, measured in 10^-8 of a token. type Tokens = record { - e8s : nat64; + e8s : nat64 }; // Number of nanoseconds from the UNIX epoch in UTC timezone. type TimeStamp = record { - timestamp_nanos: nat64; + timestamp_nanos : nat64 }; // AccountIdentifier is a 32-byte array. @@ -23,10 +23,10 @@ type SubAccount = blob; type BlockIndex = nat64; type Transaction = record { - memo : Memo; - icrc1_memo: opt blob; - operation : opt Operation; - created_at_time : TimeStamp; + memo : Memo; + icrc1_memo : opt blob; + operation : opt Operation; + created_at_time : TimeStamp }; // An arbitrary number associated with a transaction. @@ -35,148 +35,146 @@ type Memo = nat64; // Arguments for the `transfer` call. type TransferArgs = record { - // Transaction memo. - // See comments for the `Memo` type. - memo: Memo; - // The amount that the caller wants to transfer to the destination address. - amount: Tokens; - // The amount that the caller pays for the transaction. - // Must be 10000 e8s. - fee: Tokens; - // The subaccount from which the caller wants to transfer funds. - // If null, the ledger uses the default (all zeros) subaccount to compute the source address. - // See comments for the `SubAccount` type. - from_subaccount: opt SubAccount; - // The destination account. - // If the transfer is successful, the balance of this address increases by `amount`. - to: AccountIdentifier; - // The point in time when the caller created this request. - // If null, the ledger uses current IC time as the timestamp. - created_at_time: opt TimeStamp; + // Transaction memo. + // See comments for the `Memo` type. + memo : Memo; + // The amount that the caller wants to transfer to the destination address. + amount : Tokens; + // The amount that the caller pays for the transaction. + // Must be 10000 e8s. + fee : Tokens; + // The subaccount from which the caller wants to transfer funds. + // If null, the ledger uses the default (all zeros) subaccount to compute the source address. + // See comments for the `SubAccount` type. + from_subaccount : opt SubAccount; + // The destination account. + // If the transfer is successful, the balance of this address increases by `amount`. + to : AccountIdentifier; + // The point in time when the caller created this request. + // If null, the ledger uses current IC time as the timestamp. + created_at_time : opt TimeStamp }; type TransferError = variant { - // The fee that the caller specified in the transfer request was not the one that ledger expects. - // The caller can change the transfer fee to the `expected_fee` and retry the request. - BadFee : record { expected_fee : Tokens; }; - // The account specified by the caller doesn't have enough funds. - InsufficientFunds : record { balance: Tokens; }; - // The request is too old. - // The ledger only accepts requests created within 24 hours window. - // This is a non-recoverable error. - TxTooOld : record { allowed_window_nanos: nat64 }; - // The caller specified `created_at_time` that is too far in future. - // The caller can retry the request later. - TxCreatedInFuture : null; - // The ledger has already executed the request. - // `duplicate_of` field is equal to the index of the block containing the original transaction. - TxDuplicate : record { duplicate_of: BlockIndex; } + // The fee that the caller specified in the transfer request was not the one that ledger expects. + // The caller can change the transfer fee to the `expected_fee` and retry the request. + BadFee : record { expected_fee : Tokens }; + // The account specified by the caller doesn't have enough funds. + InsufficientFunds : record { balance : Tokens }; + // The request is too old. + // The ledger only accepts requests created within 24 hours window. + // This is a non-recoverable error. + TxTooOld : record { allowed_window_nanos : nat64 }; + // The caller specified `created_at_time` that is too far in future. + // The caller can retry the request later. + TxCreatedInFuture : null; + // The ledger has already executed the request. + // `duplicate_of` field is equal to the index of the block containing the original transaction. + TxDuplicate : record { duplicate_of : BlockIndex } }; type TransferResult = variant { - Ok : BlockIndex; - Err : TransferError; + Ok : BlockIndex; + Err : TransferError }; // Arguments for the `account_balance` call. type AccountBalanceArgs = record { - account: AccountIdentifier; + account : AccountIdentifier }; type TransferFeeArg = record {}; type TransferFee = record { - // The fee to pay to perform a transfer - transfer_fee: Tokens; + // The fee to pay to perform a transfer + transfer_fee : Tokens }; type GetBlocksArgs = record { - // The index of the first block to fetch. - start : BlockIndex; - // Max number of blocks to fetch. - length : nat64; + // The index of the first block to fetch. + start : BlockIndex; + // Max number of blocks to fetch. + length : nat64 }; type Operation = variant { - Mint : record { - to : AccountIdentifier; - amount : Tokens; - }; - Burn : record { - from : AccountIdentifier; - spender : opt AccountIdentifier; - amount : Tokens; - }; - Transfer : record { - from : AccountIdentifier; - to : AccountIdentifier; - amount : Tokens; - fee : Tokens; - spender : opt vec nat8; - }; - Approve : record { - from : AccountIdentifier; - spender : AccountIdentifier; - // This field is deprecated and should not be used. - allowance_e8s : int; - allowance: Tokens; - fee : Tokens; - expires_at : opt TimeStamp; - expected_allowance : opt Tokens; - }; -}; - - + Mint : record { + to : AccountIdentifier; + amount : Tokens + }; + Burn : record { + from : AccountIdentifier; + spender : opt AccountIdentifier; + amount : Tokens + }; + Transfer : record { + from : AccountIdentifier; + to : AccountIdentifier; + amount : Tokens; + fee : Tokens; + spender : opt vec nat8 + }; + Approve : record { + from : AccountIdentifier; + spender : AccountIdentifier; + // This field is deprecated and should not be used. + allowance_e8s : int; + allowance : Tokens; + fee : Tokens; + expires_at : opt TimeStamp; + expected_allowance : opt Tokens + } +}; type Block = record { - parent_hash : opt blob; - transaction : Transaction; - timestamp : TimeStamp; + parent_hash : opt blob; + transaction : Transaction; + timestamp : TimeStamp }; // A prefix of the block range specified in the [GetBlocksArgs] request. type BlockRange = record { - // A prefix of the requested block range. - // The index of the first block is equal to [GetBlocksArgs.from]. - // - // Note that the number of blocks might be less than the requested - // [GetBlocksArgs.len] for various reasons, for example: - // - // 1. The query might have hit the replica with an outdated state - // that doesn't have the full block range yet. - // 2. The requested range is too large to fit into a single reply. - // - // NOTE: the list of blocks can be empty if: - // 1. [GetBlocksArgs.len] was zero. - // 2. [GetBlocksArgs.from] was larger than the last block known to the canister. - blocks : vec Block; + // A prefix of the requested block range. + // The index of the first block is equal to [GetBlocksArgs.from]. + // + // Note that the number of blocks might be less than the requested + // [GetBlocksArgs.len] for various reasons, for example: + // + // 1. The query might have hit the replica with an outdated state + // that doesn't have the full block range yet. + // 2. The requested range is too large to fit into a single reply. + // + // NOTE: the list of blocks can be empty if: + // 1. [GetBlocksArgs.len] was zero. + // 2. [GetBlocksArgs.from] was larger than the last block known to the canister. + blocks : vec Block }; // An error indicating that the arguments passed to [QueryArchiveFn] were invalid. type QueryArchiveError = variant { - // [GetBlocksArgs.from] argument was smaller than the first block - // served by the canister that received the request. - BadFirstBlockIndex : record { - requested_index : BlockIndex; - first_valid_index : BlockIndex; - }; + // [GetBlocksArgs.from] argument was smaller than the first block + // served by the canister that received the request. + BadFirstBlockIndex : record { + requested_index : BlockIndex; + first_valid_index : BlockIndex + }; - // Reserved for future use. - Other : record { - error_code : nat64; - error_message : text; - }; + // Reserved for future use. + Other : record { + error_code : nat64; + error_message : text + } }; type QueryArchiveResult = variant { - // Successfully fetched zero or more blocks. - Ok : BlockRange; - // The [GetBlocksArgs] request was invalid. - Err : QueryArchiveError; + // Successfully fetched zero or more blocks. + Ok : BlockRange; + // The [GetBlocksArgs] request was invalid. + Err : QueryArchiveError }; // A function that is used for fetching archived ledger blocks. -type QueryArchiveFn = func (GetBlocksArgs) -> (QueryArchiveResult) query; +type QueryArchiveFn = func(GetBlocksArgs) -> (QueryArchiveResult) query; // The result of a "query_blocks" call. // @@ -184,89 +182,89 @@ type QueryArchiveFn = func (GetBlocksArgs) -> (QueryArchiveResult) query; // not have all the blocks that the caller requested: One or more "archive" canisters might // store some of the requested blocks. // -// Note: as of Q4 2021 when this interface is authored, the IC doesn't support making nested +// Note: as of Q4 2021 when this interface is authored, the IC doesn't support making nested // query calls within a query call. type QueryBlocksResponse = record { - // The total number of blocks in the chain. - // If the chain length is positive, the index of the last block is `chain_len - 1`. - chain_length : nat64; - - // System certificate for the hash of the latest block in the chain. - // Only present if `query_blocks` is called in a non-replicated query context. - certificate : opt blob; - - // List of blocks that were available in the ledger when it processed the call. - // - // The blocks form a contiguous range, with the first block having index - // [first_block_index] (see below), and the last block having index - // [first_block_index] + len(blocks) - 1. - // - // The block range can be an arbitrary sub-range of the originally requested range. - blocks : vec Block; - - // The index of the first block in "blocks". - // If the blocks vector is empty, the exact value of this field is not specified. - first_block_index : BlockIndex; - - // Encoding of instructions for fetching archived blocks whose indices fall into the - // requested range. - // - // For each entry `e` in [archived_blocks], `[e.from, e.from + len)` is a sub-range - // of the originally requested block range. - archived_blocks : vec ArchivedBlocksRange; + // The total number of blocks in the chain. + // If the chain length is positive, the index of the last block is `chain_len - 1`. + chain_length : nat64; + + // System certificate for the hash of the latest block in the chain. + // Only present if `query_blocks` is called in a non-replicated query context. + certificate : opt blob; + + // List of blocks that were available in the ledger when it processed the call. + // + // The blocks form a contiguous range, with the first block having index + // [first_block_index] (see below), and the last block having index + // [first_block_index] + len(blocks) - 1. + // + // The block range can be an arbitrary sub-range of the originally requested range. + blocks : vec Block; + + // The index of the first block in "blocks". + // If the blocks vector is empty, the exact value of this field is not specified. + first_block_index : BlockIndex; + + // Encoding of instructions for fetching archived blocks whose indices fall into the + // requested range. + // + // For each entry `e` in [archived_blocks], `[e.from, e.from + len)` is a sub-range + // of the originally requested block range. + archived_blocks : vec ArchivedBlocksRange }; type ArchivedBlocksRange = record { - // The index of the first archived block that can be fetched using the callback. - start : BlockIndex; + // The index of the first archived block that can be fetched using the callback. + start : BlockIndex; - // The number of blocks that can be fetch using the callback. - length : nat64; + // The number of blocks that can be fetch using the callback. + length : nat64; - // The function that should be called to fetch the archived blocks. - // The range of the blocks accessible using this function is given by [from] - // and [len] fields above. - callback : QueryArchiveFn; + // The function that should be called to fetch the archived blocks. + // The range of the blocks accessible using this function is given by [from] + // and [len] fields above. + callback : QueryArchiveFn }; type ArchivedEncodedBlocksRange = record { - callback : func (GetBlocksArgs) -> ( - variant { Ok : vec blob; Err : QueryArchiveError }, - ) query; - start : nat64; - length : nat64; + callback : func(GetBlocksArgs) -> ( + variant { Ok : vec blob; Err : QueryArchiveError } + ) query; + start : nat64; + length : nat64 }; type QueryEncodedBlocksResponse = record { - certificate : opt blob; - blocks : vec blob; - chain_length : nat64; - first_block_index : nat64; - archived_blocks : vec ArchivedEncodedBlocksRange; + certificate : opt blob; + blocks : vec blob; + chain_length : nat64; + first_block_index : nat64; + archived_blocks : vec ArchivedEncodedBlocksRange }; type Archive = record { - canister_id: principal; + canister_id : principal }; type Archives = record { - archives: vec Archive; + archives : vec Archive }; type Duration = record { - secs: nat64; - nanos: nat32; + secs : nat64; + nanos : nat32 }; type ArchiveOptions = record { - trigger_threshold : nat64; - num_blocks_to_archive : nat64; - node_max_memory_size_bytes : opt nat64; - max_message_size_bytes : opt nat64; - controller_id : principal; - more_controller_ids: opt vec principal; - cycles_for_archive_creation : opt nat64; - max_transactions_per_response : opt nat64; + trigger_threshold : nat64; + num_blocks_to_archive : nat64; + node_max_memory_size_bytes : opt nat64; + max_message_size_bytes : opt nat64; + controller_id : principal; + more_controller_ids : opt vec principal; + cycles_for_archive_creation : opt nat64; + max_transactions_per_response : opt nat64 }; // Account identifier encoded as a 64-byte ASCII hex string. @@ -274,34 +272,34 @@ type TextAccountIdentifier = text; // Arguments for the `send_dfx` call. type SendArgs = record { - memo: Memo; - amount: Tokens; - fee: Tokens; - from_subaccount: opt SubAccount; - to: TextAccountIdentifier; - created_at_time: opt TimeStamp; + memo : Memo; + amount : Tokens; + fee : Tokens; + from_subaccount : opt SubAccount; + to : TextAccountIdentifier; + created_at_time : opt TimeStamp }; type AccountBalanceArgsDfx = record { - account: TextAccountIdentifier; + account : TextAccountIdentifier }; type FeatureFlags = record { - icrc2 : bool; + icrc2 : bool }; type InitArgs = record { - minting_account: TextAccountIdentifier; - icrc1_minting_account: opt Account; - initial_values: vec record {TextAccountIdentifier; Tokens}; - max_message_size_bytes: opt nat64; - transaction_window: opt Duration; - archive_options: opt ArchiveOptions; - send_whitelist: vec principal; - transfer_fee: opt Tokens; - token_symbol: opt text; - token_name: opt text; - feature_flags : opt FeatureFlags; + minting_account : TextAccountIdentifier; + icrc1_minting_account : opt Account; + initial_values : vec record { TextAccountIdentifier; Tokens }; + max_message_size_bytes : opt nat64; + transaction_window : opt Duration; + archive_options : opt ArchiveOptions; + send_whitelist : vec principal; + transfer_fee : opt Tokens; + token_symbol : opt text; + token_name : opt text; + feature_flags : opt FeatureFlags }; type Icrc1BlockIndex = nat; @@ -310,173 +308,188 @@ type Icrc1Timestamp = nat64; type Icrc1Tokens = nat; type Account = record { - owner : principal; - subaccount : opt SubAccount; + owner : principal; + subaccount : opt SubAccount }; type TransferArg = record { - from_subaccount : opt SubAccount; - to : Account; - amount : Icrc1Tokens; - fee : opt Icrc1Tokens; - memo : opt blob; - created_at_time: opt Icrc1Timestamp; + from_subaccount : opt SubAccount; + to : Account; + amount : Icrc1Tokens; + fee : opt Icrc1Tokens; + memo : opt blob; + created_at_time : opt Icrc1Timestamp }; type Icrc1TransferError = variant { - BadFee : record { expected_fee : Icrc1Tokens }; - BadBurn : record { min_burn_amount : Icrc1Tokens }; - InsufficientFunds : record { balance : Icrc1Tokens }; - TooOld; - CreatedInFuture : record { ledger_time : nat64 }; - TemporarilyUnavailable; - Duplicate : record { duplicate_of : Icrc1BlockIndex }; - GenericError : record { error_code : nat; message : text }; + BadFee : record { expected_fee : Icrc1Tokens }; + BadBurn : record { min_burn_amount : Icrc1Tokens }; + InsufficientFunds : record { balance : Icrc1Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : nat64 }; + TemporarilyUnavailable; + Duplicate : record { duplicate_of : Icrc1BlockIndex }; + GenericError : record { error_code : nat; message : text } }; type Icrc1TransferResult = variant { - Ok : Icrc1BlockIndex; - Err : Icrc1TransferError; + Ok : Icrc1BlockIndex; + Err : Icrc1TransferError }; // The value returned from the [icrc1_metadata] endpoint. type Value = variant { - Nat : nat; - Int : int; - Text : text; - Blob : blob; + Nat : nat; + Int : int; + Text : text; + Blob : blob }; type UpgradeArgs = record { icrc1_minting_account : opt Account; - feature_flags : opt FeatureFlags; + feature_flags : opt FeatureFlags }; type LedgerCanisterPayload = variant { - Init: InitArgs; - Upgrade: opt UpgradeArgs; + Init : InitArgs; + Upgrade : opt UpgradeArgs }; type ApproveArgs = record { - from_subaccount : opt SubAccount; - spender : Account; - amount : Icrc1Tokens; - expected_allowance : opt Icrc1Tokens; - expires_at : opt Icrc1Timestamp; - fee : opt Icrc1Tokens; - memo : opt blob; - created_at_time: opt Icrc1Timestamp; + from_subaccount : opt SubAccount; + spender : Account; + amount : Icrc1Tokens; + expected_allowance : opt Icrc1Tokens; + expires_at : opt Icrc1Timestamp; + fee : opt Icrc1Tokens; + memo : opt blob; + created_at_time : opt Icrc1Timestamp }; type ApproveError = variant { - BadFee : record { expected_fee : Icrc1Tokens }; - InsufficientFunds : record { balance : Icrc1Tokens }; - AllowanceChanged : record { current_allowance : Icrc1Tokens }; - Expired : record { ledger_time : nat64 }; - TooOld; - CreatedInFuture : record { ledger_time : nat64 }; - Duplicate : record { duplicate_of : Icrc1BlockIndex }; - TemporarilyUnavailable; - GenericError : record { error_code : nat; message : text }; + BadFee : record { expected_fee : Icrc1Tokens }; + InsufficientFunds : record { balance : Icrc1Tokens }; + AllowanceChanged : record { current_allowance : Icrc1Tokens }; + Expired : record { ledger_time : nat64 }; + TooOld; + CreatedInFuture : record { ledger_time : nat64 }; + Duplicate : record { duplicate_of : Icrc1BlockIndex }; + TemporarilyUnavailable; + GenericError : record { error_code : nat; message : text } }; type ApproveResult = variant { - Ok : Icrc1BlockIndex; - Err : ApproveError; + Ok : Icrc1BlockIndex; + Err : ApproveError }; type AllowanceArgs = record { - account : Account; - spender : Account; + account : Account; + spender : Account }; type Allowance = record { - allowance : Icrc1Tokens; - expires_at : opt Icrc1Timestamp; + allowance : Icrc1Tokens; + expires_at : opt Icrc1Timestamp }; type TransferFromArgs = record { - spender_subaccount : opt SubAccount; - from : Account; - to : Account; - amount : Icrc1Tokens; - fee : opt Icrc1Tokens; - memo : opt blob; - created_at_time: opt Icrc1Timestamp; + spender_subaccount : opt SubAccount; + from : Account; + to : Account; + amount : Icrc1Tokens; + fee : opt Icrc1Tokens; + memo : opt blob; + created_at_time : opt Icrc1Timestamp }; type TransferFromResult = variant { - Ok : Icrc1BlockIndex; - Err : TransferFromError; + Ok : Icrc1BlockIndex; + Err : TransferFromError }; type TransferFromError = variant { - BadFee : record { expected_fee : Icrc1Tokens }; - BadBurn : record { min_burn_amount : Icrc1Tokens }; - InsufficientFunds : record { balance : Icrc1Tokens }; - InsufficientAllowance : record { allowance : Icrc1Tokens }; - TooOld; - CreatedInFuture : record { ledger_time : Icrc1Timestamp }; - Duplicate : record { duplicate_of : Icrc1BlockIndex }; - TemporarilyUnavailable; - GenericError : record { error_code : nat; message : text }; + BadFee : record { expected_fee : Icrc1Tokens }; + BadBurn : record { min_burn_amount : Icrc1Tokens }; + InsufficientFunds : record { balance : Icrc1Tokens }; + InsufficientAllowance : record { allowance : Icrc1Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : Icrc1Timestamp }; + Duplicate : record { duplicate_of : Icrc1BlockIndex }; + TemporarilyUnavailable; + GenericError : record { error_code : nat; message : text } }; type icrc21_consent_message_metadata = record { - language: text; - utc_offset_minutes: opt int16; + language : text; + utc_offset_minutes : opt int16 }; type icrc21_consent_message_spec = record { - metadata: icrc21_consent_message_metadata; - device_spec: opt variant { - GenericDisplay; - LineDisplay: record { - characters_per_line: nat16; - lines_per_page: nat16; - }; - }; + metadata : icrc21_consent_message_metadata; + device_spec : opt variant { + GenericDisplay; + FieldsDisplay + } }; type icrc21_consent_message_request = record { - method: text; - arg: blob; - user_preferences: icrc21_consent_message_spec; + method : text; + arg : blob; + user_preferences : icrc21_consent_message_spec +}; + +type Icrc21Value = variant { + TokenAmount : record { + decimals : nat8; + amount : nat64; + symbol : text + }; + TimestampSeconds : record { + amount : nat64 + }; + DurationSeconds : record { + amount : nat64 + }; + Text : record { + content : text + } +}; + +type FieldsDisplay = record { + intent : text; + fields : vec record { text; Icrc21Value } }; type icrc21_consent_message = variant { - GenericDisplayMessage: text; - LineDisplayMessage: record { - pages: vec record { - lines: vec text; - }; - }; + GenericDisplayMessage : text; + FieldsDisplayMessage : FieldsDisplay }; type icrc21_consent_info = record { - consent_message: icrc21_consent_message; - metadata: icrc21_consent_message_metadata; + consent_message : icrc21_consent_message; + metadata : icrc21_consent_message_metadata }; type icrc21_error_info = record { - description: text; + description : text }; type icrc21_error = variant { - UnsupportedCanisterCall: icrc21_error_info; - ConsentMessageUnavailable: icrc21_error_info; - InsufficientPayment: icrc21_error_info; + UnsupportedCanisterCall : icrc21_error_info; + ConsentMessageUnavailable : icrc21_error_info; + InsufficientPayment : icrc21_error_info; - // Any error not covered by the above variants. - GenericError: record { - error_code: nat; - description: text; - }; + // Any error not covered by the above variants. + GenericError : record { + error_code : nat; + description : text + } }; type icrc21_consent_message_response = variant { - Ok: icrc21_consent_info; - Err: icrc21_error; + Ok : icrc21_consent_info; + Err : icrc21_error }; // The arguments for the `get_allowances` endpoint. @@ -484,82 +497,90 @@ type icrc21_consent_message_response = variant { // the endpoint returns allowances that are lexicographically greater than // (`from_account_id`, `prev_spender_id`) - start with spender after `prev_spender_id`. type GetAllowancesArgs = record { - from_account_id: TextAccountIdentifier; - prev_spender_id: opt TextAccountIdentifier; - take: opt nat64; + from_account_id : TextAccountIdentifier; + prev_spender_id : opt TextAccountIdentifier; + take : opt nat64 }; // The allowances returned by the `get_allowances` endpoint. type Allowances = vec record { - from_account_id: TextAccountIdentifier; - to_spender_id: TextAccountIdentifier; - allowance: Tokens; - expires_at: opt nat64; + from_account_id : TextAccountIdentifier; + to_spender_id : TextAccountIdentifier; + allowance : Tokens; + expires_at : opt nat64 }; type TipOfChainRes = record { - certification: opt blob; - tip_index: BlockIndex; + certification : opt blob; + tip_index : BlockIndex +}; + +type RemoveApprovalArgs = record { + from_subaccount : opt SubAccount; + spender : AccountIdentifier; + fee : opt Icrc1Tokens }; -service: (LedgerCanisterPayload) -> { - // Transfers tokens from a subaccount of the caller to the destination address. - // The source address is computed from the principal of the caller and the specified subaccount. - // When successful, returns the index of the block containing the transaction. - transfer : (TransferArgs) -> (TransferResult); +service : (LedgerCanisterPayload) -> { + // Transfers tokens from a subaccount of the caller to the destination address. + // The source address is computed from the principal of the caller and the specified subaccount. + // When successful, returns the index of the block containing the transaction. + transfer : (TransferArgs) -> (TransferResult); + + // Returns the amount of Tokens on the specified account. + account_balance : (AccountBalanceArgs) -> (Tokens) query; + + // Returns the account identifier for the given Principal and subaccount. + account_identifier : (Account) -> (AccountIdentifier) query; - // Returns the amount of Tokens on the specified account. - account_balance : (AccountBalanceArgs) -> (Tokens) query; + // Returns the current transfer_fee. + transfer_fee : (TransferFeeArg) -> (TransferFee) query; - // Returns the account identifier for the given Principal and subaccount. - account_identifier : (Account) -> (AccountIdentifier) query; + // Queries blocks in the specified range. + query_blocks : (GetBlocksArgs) -> (QueryBlocksResponse) query; - // Returns the current transfer_fee. - transfer_fee : (TransferFeeArg) -> (TransferFee) query; + // Queries encoded blocks in the specified range + query_encoded_blocks : (GetBlocksArgs) -> (QueryEncodedBlocksResponse) query; - // Queries blocks in the specified range. - query_blocks : (GetBlocksArgs) -> (QueryBlocksResponse) query; + // Returns token symbol. + symbol : () -> (record { symbol : text }) query; - // Queries encoded blocks in the specified range - query_encoded_blocks : (GetBlocksArgs) -> (QueryEncodedBlocksResponse) query; - - // Returns token symbol. - symbol : () -> (record { symbol: text }) query; + // Returns token name. + name : () -> (record { name : text }) query; - // Returns token name. - name : () -> (record { name: text }) query; + // Returns token decimals. + decimals : () -> (record { decimals : nat32 }) query; - // Returns token decimals. - decimals : () -> (record { decimals: nat32 }) query; + // Returns the existing archive canisters information. + archives : () -> (Archives) query; - // Returns the existing archive canisters information. - archives : () -> (Archives) query; + send_dfx : (SendArgs) -> (BlockIndex); + account_balance_dfx : (AccountBalanceArgsDfx) -> (Tokens) query; - send_dfx : (SendArgs) -> (BlockIndex); - account_balance_dfx : (AccountBalanceArgsDfx) -> (Tokens) query; + // The following methods implement the ICRC-1 Token Standard. + // https://github.com/dfinity/ICRC-1/tree/main/standards/ICRC-1 + icrc1_name : () -> (text) query; + icrc1_symbol : () -> (text) query; + icrc1_decimals : () -> (nat8) query; + icrc1_metadata : () -> (vec record { text; Value }) query; + icrc1_total_supply : () -> (Icrc1Tokens) query; + icrc1_fee : () -> (Icrc1Tokens) query; + icrc1_minting_account : () -> (opt Account) query; + icrc1_balance_of : (Account) -> (Icrc1Tokens) query; + icrc1_transfer : (TransferArg) -> (Icrc1TransferResult); + icrc1_supported_standards : () -> (vec record { name : text; url : text }) query; + icrc2_approve : (ApproveArgs) -> (ApproveResult); + icrc2_allowance : (AllowanceArgs) -> (Allowance) query; + icrc2_transfer_from : (TransferFromArgs) -> (TransferFromResult); - // The following methods implement the ICRC-1 Token Standard. - // https://github.com/dfinity/ICRC-1/tree/main/standards/ICRC-1 - icrc1_name : () -> (text) query; - icrc1_symbol : () -> (text) query; - icrc1_decimals : () -> (nat8) query; - icrc1_metadata : () -> (vec record { text; Value }) query; - icrc1_total_supply : () -> (Icrc1Tokens) query; - icrc1_fee : () -> (Icrc1Tokens) query; - icrc1_minting_account : () -> (opt Account) query; - icrc1_balance_of : (Account) -> (Icrc1Tokens) query; - icrc1_transfer : (TransferArg) -> (Icrc1TransferResult); - icrc1_supported_standards : () -> (vec record { name : text; url : text }) query; - icrc2_approve : (ApproveArgs) -> (ApproveResult); - icrc2_allowance : (AllowanceArgs) -> (Allowance) query; - icrc2_transfer_from : (TransferFromArgs) -> (TransferFromResult); + remove_approval : (RemoveApprovalArgs) -> (ApproveResult); - icrc21_canister_call_consent_message: (icrc21_consent_message_request) -> (icrc21_consent_message_response); - icrc10_supported_standards : () -> (vec record { name : text; url : text }) query; + icrc21_canister_call_consent_message : (icrc21_consent_message_request) -> (icrc21_consent_message_response); + icrc10_supported_standards : () -> (vec record { name : text; url : text }) query; - get_allowances : (GetAllowancesArgs) -> (Allowances) query; + get_allowances : (GetAllowancesArgs) -> (Allowances) query; - tip_of_chain : () -> (TipOfChainRes) query; + tip_of_chain : () -> (TipOfChainRes) query; - is_ledger_ready: () -> (bool) query; + is_ledger_ready : () -> (bool) query } diff --git a/candid/registry.did b/candid/registry.did index 907942ef..0d5d2bb0 100644 --- a/candid/registry.did +++ b/candid/registry.did @@ -37,13 +37,25 @@ type AddNodePayload = record { domain : opt text; public_ipv4_config : opt IPv4Config; xnet_endpoint : text; - chip_id : opt blob; committee_signing_pk : blob; node_signing_pk : blob; transport_tls_cert : blob; ni_dkg_dealing_encryption_pk : blob; p2p_flow_endpoints : vec text; node_reward_type : opt text; + node_registration_attestation : opt SevAttestationPackage; +}; + +type SevAttestationPackage = record { + attestation_report : opt blob; + certificate_chain : opt SevCertificateChain; + custom_data_debug_info : opt text; +}; + +type SevCertificateChain = record { + ark_pem : opt text; + ask_pem : opt text; + vcek_pem : opt text; }; type AddNodesToSubnetPayload = record { @@ -91,6 +103,8 @@ type CreateSubnetPayload = record { canister_cycles_cost_schedule: opt CanisterCyclesCostSchedule; + subnet_admins: opt vec principal; + // TODO(NNS1-2444): The fields below are deprecated and they are not read anywhere. ingress_bytes_per_block_soft_cap : nat64; gossip_max_artifact_streams_per_peer : nat32; @@ -162,21 +176,8 @@ type VetKdCurve = variant { bls12_381_g2 }; type EcdsaCurve = variant { secp256k1 }; -type EcdsaInitialConfig = record { - quadruples_to_create_in_advance : nat32; - max_queue_size : opt nat32; - keys : vec EcdsaKeyRequest; - signature_request_timeout_ns : opt nat64; - idkg_key_rotation_period_ms : opt nat64; -}; - type EcdsaKeyId = record { name : text; curve : EcdsaCurve }; -type EcdsaKeyRequest = record { - key_id : EcdsaKeyId; - subnet_id : opt principal; -}; - type FirewallRule = record { ipv4_prefixes : vec text; direction : opt int32; @@ -255,7 +256,9 @@ type MigrateCanistersPayload = record { target_subnet_id : principal; }; -type MigrateCanistersResponse = record {}; +type MigrateCanistersResponse = record { + registry_version: nat64; +}; type NodeOperatorRecord = record { ipv6 : opt text; @@ -328,10 +331,17 @@ type ReviseElectedGuestosVersionsPayload = record { release_package_urls : vec text; replica_versions_to_unelect : vec text; replica_version_to_elect : opt text; - guest_launch_measurement_sha256_hex : opt text; + guest_launch_measurements : opt GuestLaunchMeasurements; release_package_sha256_hex : opt text; }; +type GuestLaunchMeasurements = record { + guest_launch_measurements : vec record { + metadata : opt record { kernel_cmdline : opt text }; + measurement : blob; + }; +}; + type SetFirewallConfigPayload = record { ipv4_prefixes : vec text; firewall_config : text; @@ -472,6 +482,37 @@ type UpdateUnassignedNodesConfigPayload = record { ssh_readonly_access : opt vec text; }; +type SwapNodeInSubnetDirectlyPayload = record { + new_node_id : opt principal; + old_node_id : opt principal; +}; + +// Used to perform the first and last steps of subnet recovery. +type SetSubnetOperationalLevelPayload = record { + // Which subnet not modify (if any). + subnet_id : opt principal; + + // 1 = Normal. This results in setting is_halted in SubnetRecord to false. + // 2 = DownForRepairs. This results in setting is_halted in SubnetRecord to true. + operational_level : opt int32; + + // SSH public keys that are allowed to ssh into nodes of the subnet with + // read-only access. + ssh_readonly_access : opt vec text; + + // Similar to ssh_read_only_access, except that this targets one node at a + // time, not all the nodes in the subnet. + ssh_node_state_write_access : opt vec NodeSshAccess; +}; + +type NodeSshAccess = record { + // Doesn't make sense without this. (opt for future compatibility.) + node_id : opt principal; + + // Doesn't make sense without this. (opt for future compatibility.) + public_keys : opt vec text; +}; + service : { add_api_boundary_nodes : (AddApiBoundaryNodesPayload) -> (); add_firewall_rules : (AddFirewallRulesPayload) -> (); @@ -510,6 +551,7 @@ service : { revise_elected_guestos_versions : (ReviseElectedGuestosVersionsPayload) -> (); revise_elected_replica_versions : (ReviseElectedGuestosVersionsPayload) -> (); set_firewall_config : (SetFirewallConfigPayload) -> (); + set_subnet_operational_level : (SetSubnetOperationalLevelPayload) -> (); update_api_boundary_nodes_version : (UpdateApiBoundaryNodesVersionPayload) -> (); update_elected_hostos_versions : (UpdateElectedHostosVersionsPayload) -> (); revise_elected_hostos_versions : (ReviseElectedHostosVersionsPayload) -> (); @@ -530,4 +572,5 @@ service : { ) -> (); update_subnet : (UpdateSubnetPayload) -> (); update_unassigned_nodes_config : (UpdateUnassignedNodesConfigPayload) -> (); + swap_node_in_subnet_directly : (SwapNodeInSubnetDirectlyPayload) -> (); }; diff --git a/candid/sns-governance.did b/candid/sns-governance.did index b1699eb9..71e5e5c3 100644 --- a/candid/sns-governance.did +++ b/candid/sns-governance.did @@ -13,6 +13,8 @@ type Action = variant { AdvanceSnsTargetVersion : AdvanceSnsTargetVersion; RegisterDappCanisters : RegisterDappCanisters; RegisterExtension : RegisterExtension; + UpgradeExtension : UpgradeExtension; + ExecuteExtensionOperation : ExecuteExtensionOperation; TransferSnsTreasuryFunds : TransferSnsTreasuryFunds; UpgradeSnsControlledCanister : UpgradeSnsControlledCanister; DeregisterDappCanisters : DeregisterDappCanisters; @@ -286,7 +288,7 @@ type TreasuryMetrics = record { }; type VotingPowerMetrics = record { - governance_total_potential_voting_power : opt nat64; + governance_total_potential_voting_power : opt nat64; // When the metrics were last updated. timestamp_seconds : opt nat64; @@ -547,6 +549,10 @@ type NervousSystemFunction = record { function_type : opt FunctionType; }; +type CustomProposalCriticality = record { + additional_critical_native_action_ids : vec nat64; +}; + type NervousSystemParameters = record { default_followees : opt DefaultFollowees; max_dissolve_delay_seconds : opt nat64; @@ -569,6 +575,7 @@ type NervousSystemParameters = record { maturity_modulation_disabled : opt bool; max_number_of_principals_per_neuron : opt nat64; automatically_advance_target_version : opt bool; + custom_proposal_criticality : opt CustomProposalCriticality; }; type FolloweesForTopic = record { @@ -746,6 +753,54 @@ type RegisterExtension = record { extension_init : opt ExtensionInit; }; +type ExtensionOperationArg = record { + value : opt PreciseValue; +}; + +type ExtensionUpgradeArg = record { + value : opt PreciseValue; +}; + +type Wasm = variant { + Bytes : blob; + Chunked : ChunkedCanisterWasm; +}; + +type UpgradeExtension = record { + extension_canister_id : opt principal; + canister_upgrade_arg : opt ExtensionUpgradeArg; + wasm : opt Wasm; +}; + +type ExecuteExtensionOperation = record { + extension_canister_id : opt principal; + + operation_name : opt text; + + operation_arg : opt ExtensionOperationArg; +}; + +type ExtensionOperationSpec = record { + operation_type : opt ExtensionOperationType; + description : opt text; + extension_type : opt ExtensionType; + topic : opt Topic; +}; + +type ExtensionOperationType = variant { + TreasuryManagerDeposit; + TreasuryManagerWithdraw; +}; + +type ExtensionType = variant { + TreasuryManager; +}; + +type RegisteredExtensionOperationSpec = record { + canister_id : opt principal; + spec : opt ExtensionOperationSpec; +}; + type RegisterVote = record { vote : int32; proposal : opt ProposalId; @@ -979,6 +1034,7 @@ type TopicInfo = record { description : opt text; native_functions : opt vec NervousSystemFunction; custom_functions : opt vec NervousSystemFunction; + extension_operations : opt vec RegisteredExtensionOperationSpec; is_critical : opt bool; }; diff --git a/candid/sns-root.did b/candid/sns-root.did index 3d7a6813..2acd56a5 100644 --- a/candid/sns-root.did +++ b/candid/sns-root.did @@ -164,6 +164,19 @@ type RegisterExtensionResponse = record { result : opt RegisterExtensionResult; }; +type CleanUpFailedRegisterExtensionRequest = record { + canister_id : opt principal; +}; + +type CleanUpFailedRegisterExtensionResult = variant { + Ok : record {}; + Err : CanisterCallError; +}; + +type CleanUpFailedRegisterExtensionResponse = record { + result : opt CleanUpFailedRegisterExtensionResult; +}; + type RegisterDappCanisterRequest = record { canister_id : opt principal; }; @@ -210,6 +223,7 @@ type GetTimersResponse = record { service : (SnsRootCanister) -> { canister_status : (CanisterIdRecord) -> (CanisterStatusResult); change_canister : (ChangeCanisterRequest) -> (); + clean_up_failed_register_extension : (CleanUpFailedRegisterExtensionRequest) -> (CleanUpFailedRegisterExtensionResponse); get_build_metadata : () -> (text) query; get_sns_canisters_summary : (GetSnsCanistersSummaryRequest) -> ( GetSnsCanistersSummaryResponse, diff --git a/candid/snsw.did b/candid/snsw.did index 6d3a8e98..6a1a9b6f 100644 --- a/candid/snsw.did +++ b/candid/snsw.did @@ -1,6 +1,7 @@ type AddWasmRequest = record { hash : blob; wasm : opt SnsWasm; + skip_update_latest_version : opt bool; }; type AddWasmResponse = record { @@ -248,6 +249,11 @@ type SnsInitPayload = record { restricted_countries : opt Countries; min_icp_e8s : opt nat64; max_direct_participation_icp_e8s : opt nat64; + custom_proposal_criticality : opt CustomProposalCriticality; +}; + +type CustomProposalCriticality = record { + additional_critical_native_action_ids : vec nat64; }; type SnsUpgrade = record { diff --git a/src/commands/list_proposals.rs b/src/commands/list_proposals.rs index 5cd78a94..6ad216f2 100644 --- a/src/commands/list_proposals.rs +++ b/src/commands/list_proposals.rs @@ -4,7 +4,7 @@ use crate::{ }; use candid::Encode; use clap::Parser; -use ic_nns_governance::pb::v1::ListProposalInfo; +use ic_nns_governance_api::ListProposalInfoRequest; /// Queries for a list of pending proposals. #[derive(Parser)] @@ -20,7 +20,7 @@ pub struct ListProposalsOpts { // We currently only support a subset of the functionality. #[tokio::main] pub async fn exec(opts: ListProposalsOpts, fetch_root_key: bool) -> AnyhowResult { - let args = Encode!(&ListProposalInfo { + let args = Encode!(&ListProposalInfoRequest { limit: opts.limit.unwrap_or(100), before_proposal: None, exclude_topic: vec![2 /*TOPIC_EXCHANGE_RATE*/, 9 /*TOPIC_KYC*/], @@ -28,6 +28,7 @@ pub async fn exec(opts: ListProposalsOpts, fetch_root_key: bool) -> AnyhowResult include_status: Vec::new(), include_all_manage_neuron_proposals: Some(false), omit_large_fields: Some(false), + return_self_describing_action: None, })?; submit_unsigned_ingress( governance_canister_id(), diff --git a/src/commands/neuron_manage.rs b/src/commands/neuron_manage.rs index 456176d2..2ea28c94 100644 --- a/src/commands/neuron_manage.rs +++ b/src/commands/neuron_manage.rs @@ -302,7 +302,8 @@ or --disburse-maturity-percentage flags with a Ledger device" let args = Encode!(&ManageNeuron { id: None, command: Some(Command::Split(Split { - amount_e8s: amount * 100_000_000 + amount_e8s: amount * 100_000_000, + memo: Some(0), })), neuron_id_or_subaccount: id.clone(), })?; diff --git a/src/lib/format/nns_governance.rs b/src/lib/format/nns_governance.rs index 63a90343..f8b6963e 100644 --- a/src/lib/format/nns_governance.rs +++ b/src/lib/format/nns_governance.rs @@ -5,7 +5,11 @@ use bigdecimal::BigDecimal; use candid::Decode; use chrono::Utc; use ic_base_types::CanisterId; -use ic_nns_constants::canister_id_to_nns_canister_name; +use ic_nns_constants::{ + canister_id_to_nns_canister_name, CYCLES_MINTING_CANISTER_ID, LIFELINE_CANISTER_ID, + MIGRATION_CANISTER_ID, REGISTRY_CANISTER_ID, ROOT_CANISTER_ID, SNS_WASM_CANISTER_ID, + SUBNET_RENTAL_CANISTER_ID, +}; use ic_nns_governance::{ pb::v1::{ install_code::CanisterInstallMode, stop_or_start_canister::CanisterAction, @@ -18,7 +22,9 @@ use ic_nns_governance::{ use ic_nns_governance_api::{ add_or_remove_node_provider::Change, claim_or_refresh_neuron_from_account_response::Result as ClaimResult, - manage_neuron::{configure::Operation, Command as ProposalCommand, NeuronIdOrSubaccount}, + manage_neuron::{ + configure::Operation, ManageNeuronProposalCommand as ProposalCommand, NeuronIdOrSubaccount, + }, manage_neuron_response::Command, neuron::DissolveState, proposal::Action, @@ -36,6 +42,100 @@ use crate::lib::{ get_default_role, get_idl_string, AnyhowResult, }; +fn nns_function_canister_and_method( + function: NnsFunction, +) -> Result<(CanisterId, &'static str), String> { + let pair = match function { + NnsFunction::Unspecified => return Err("Unspecified NNS function".to_string()), + NnsFunction::AssignNoid => (REGISTRY_CANISTER_ID, "add_node_operator"), + NnsFunction::CreateSubnet => (REGISTRY_CANISTER_ID, "create_subnet"), + NnsFunction::AddNodeToSubnet => (REGISTRY_CANISTER_ID, "add_nodes_to_subnet"), + NnsFunction::RemoveNodesFromSubnet => (REGISTRY_CANISTER_ID, "remove_nodes_from_subnet"), + NnsFunction::ChangeSubnetMembership => (REGISTRY_CANISTER_ID, "change_subnet_membership"), + NnsFunction::NnsCanisterInstall => (ROOT_CANISTER_ID, "add_nns_canister"), + NnsFunction::HardResetNnsRootToVersion => { + (LIFELINE_CANISTER_ID, "hard_reset_root_to_version") + } + NnsFunction::RecoverSubnet => (REGISTRY_CANISTER_ID, "recover_subnet"), + NnsFunction::ReviseElectedGuestosVersions => { + (REGISTRY_CANISTER_ID, "revise_elected_guestos_versions") + } + NnsFunction::UpdateNodeOperatorConfig => { + (REGISTRY_CANISTER_ID, "update_node_operator_config") + } + NnsFunction::DeployGuestosToAllSubnetNodes => { + (REGISTRY_CANISTER_ID, "deploy_guestos_to_all_subnet_nodes") + } + NnsFunction::ReviseElectedHostosVersions => { + (REGISTRY_CANISTER_ID, "revise_elected_hostos_versions") + } + NnsFunction::DeployHostosToSomeNodes => { + (REGISTRY_CANISTER_ID, "deploy_hostos_to_some_nodes") + } + NnsFunction::UpdateConfigOfSubnet => (REGISTRY_CANISTER_ID, "update_subnet"), + NnsFunction::IcpXdrConversionRate => { + (CYCLES_MINTING_CANISTER_ID, "set_icp_xdr_conversion_rate") + } + NnsFunction::ClearProvisionalWhitelist => { + (REGISTRY_CANISTER_ID, "clear_provisional_whitelist") + } + NnsFunction::SetAuthorizedSubnetworks => { + (CYCLES_MINTING_CANISTER_ID, "set_authorized_subnetwork_list") + } + NnsFunction::SetFirewallConfig => (REGISTRY_CANISTER_ID, "set_firewall_config"), + NnsFunction::AddFirewallRules => (REGISTRY_CANISTER_ID, "add_firewall_rules"), + NnsFunction::RemoveFirewallRules => (REGISTRY_CANISTER_ID, "remove_firewall_rules"), + NnsFunction::UpdateFirewallRules => (REGISTRY_CANISTER_ID, "update_firewall_rules"), + NnsFunction::StopOrStartNnsCanister => (ROOT_CANISTER_ID, "stop_or_start_nns_canister"), + NnsFunction::RemoveNodes => (REGISTRY_CANISTER_ID, "remove_nodes"), + NnsFunction::UninstallCode => (CanisterId::ic_00(), "uninstall_code"), + NnsFunction::UpdateNodeRewardsTable => (REGISTRY_CANISTER_ID, "update_node_rewards_table"), + NnsFunction::AddOrRemoveDataCenters => (REGISTRY_CANISTER_ID, "add_or_remove_data_centers"), + NnsFunction::RemoveNodeOperators => (REGISTRY_CANISTER_ID, "remove_node_operators"), + NnsFunction::RerouteCanisterRanges => (REGISTRY_CANISTER_ID, "reroute_canister_ranges"), + NnsFunction::PrepareCanisterMigration => { + (REGISTRY_CANISTER_ID, "prepare_canister_migration") + } + NnsFunction::CompleteCanisterMigration => { + (REGISTRY_CANISTER_ID, "complete_canister_migration") + } + NnsFunction::AddSnsWasm => (SNS_WASM_CANISTER_ID, "add_wasm"), + NnsFunction::UpdateSubnetType => (CYCLES_MINTING_CANISTER_ID, "update_subnet_type"), + NnsFunction::ChangeSubnetTypeAssignment => { + (CYCLES_MINTING_CANISTER_ID, "change_subnet_type_assignment") + } + NnsFunction::UpdateSnsWasmSnsSubnetIds => (SNS_WASM_CANISTER_ID, "update_sns_subnet_list"), + NnsFunction::InsertSnsWasmUpgradePathEntries => { + (SNS_WASM_CANISTER_ID, "insert_upgrade_path_entries") + } + NnsFunction::BitcoinSetConfig => (ROOT_CANISTER_ID, "call_canister"), + NnsFunction::AddApiBoundaryNodes => (REGISTRY_CANISTER_ID, "add_api_boundary_nodes"), + NnsFunction::RemoveApiBoundaryNodes => (REGISTRY_CANISTER_ID, "remove_api_boundary_nodes"), + NnsFunction::DeployGuestosToSomeApiBoundaryNodes => ( + REGISTRY_CANISTER_ID, + "deploy_guestos_to_some_api_boundary_nodes", + ), + NnsFunction::DeployGuestosToAllUnassignedNodes => ( + REGISTRY_CANISTER_ID, + "deploy_guestos_to_all_unassigned_nodes", + ), + NnsFunction::UpdateSshReadonlyAccessForAllUnassignedNodes => ( + REGISTRY_CANISTER_ID, + "update_ssh_readonly_access_for_all_unassigned_nodes", + ), + NnsFunction::SubnetRentalRequest => { + (SUBNET_RENTAL_CANISTER_ID, "execute_rental_request_proposal") + } + NnsFunction::PauseCanisterMigrations => (MIGRATION_CANISTER_ID, "disable_api"), + NnsFunction::UnpauseCanisterMigrations => (MIGRATION_CANISTER_ID, "enable_api"), + NnsFunction::SetSubnetOperationalLevel => { + (REGISTRY_CANISTER_ID, "set_subnet_operational_level") + } + _ => return Err(format!("Unknown or obsolete NNS function: {function:?}")), + }; + Ok(pair) +} + pub fn display_get_neuron_info(blob: &[u8]) -> AnyhowResult { let info = Decode!(blob, Result)?; let fmt = match info { @@ -448,9 +548,8 @@ fn display_proposal_info(proposal_info: ProposalInfo) -> AnyhowResult { NnsFunction::try_from(a.nns_function).unwrap_or(NnsFunction::Unspecified); writeln!(fmt, "Execute NNS function {function:?}")?; if a.payload.starts_with(b"DIDL") { - let (canister_id, method) = function - .canister_and_function() - .map_err(|e| anyhow!(e.error_message))?; + let (canister_id, method) = + nns_function_canister_and_method(function).map_err(|e| anyhow!(e))?; if let Ok(idl) = get_idl_string( &a.payload, canister_id.into(), @@ -714,6 +813,57 @@ fn display_proposal_info(proposal_info: ProposalInfo) -> AnyhowResult { } fmt.push('\n'); } + Action::DeregisterKnownNeuron(a) => { + write!(fmt, "Deregister known neuron")?; + if let Some(id) = a.id { + write!(fmt, " {}", id.id)?; + } + fmt.push('\n'); + } + Action::BlessAlternativeGuestOsVersion(a) => { + writeln!(fmt, "Bless alternative GuestOS version")?; + if let Some(hash) = &a.rootfs_hash { + writeln!(fmt, "Rootfs hash: {hash}")?; + } + if let Some(chip_ids) = &a.chip_ids { + for chip_id in chip_ids { + writeln!(fmt, "Chip ID: {}", hex::encode(chip_id))?; + } + } + if let Some(measurements) = &a.base_guest_launch_measurements { + if let Some(ms) = &measurements.guest_launch_measurements { + for m in ms { + if let Some(measurement) = &m.measurement { + writeln!( + fmt, + "Launch measurement: {}", + hex::encode(measurement) + )?; + } + } + } + } + } + Action::TakeCanisterSnapshot(a) => { + write!(fmt, "Take canister snapshot")?; + if let Some(canister_id) = a.canister_id { + write!(fmt, " of canister {canister_id}")?; + } + if let Some(replace) = &a.replace_snapshot { + write!(fmt, " (replacing snapshot {})", hex::encode(replace))?; + } + fmt.push('\n'); + } + Action::LoadCanisterSnapshot(a) => { + write!(fmt, "Load canister snapshot")?; + if let Some(snapshot_id) = &a.snapshot_id { + write!(fmt, " {}", hex::encode(snapshot_id))?; + } + if let Some(canister_id) = a.canister_id { + write!(fmt, " into canister {canister_id}")?; + } + fmt.push('\n'); + } Action::ManageNeuron(a) => { let neuron = a.neuron_id_or_subaccount.context("neuron ID was null")?; let neuron = display_neuron_id(neuron); diff --git a/tests/output/default/list_proposals/simple.txt b/tests/output/default/list_proposals/simple.txt index 3774a1ce..96a91067 100644 --- a/tests/output/default/list_proposals/simple.txt +++ b/tests/output/default/list_proposals/simple.txt @@ -6,6 +6,7 @@ Sending message with Method name: list_proposals Arguments: ( record { + return_self_describing_action = null; include_reward_status = vec {}; omit_large_fields = opt false; before_proposal = null; diff --git a/tests/output/default/neuron_manage/split.txt b/tests/output/default/neuron_manage/split.txt index 33642691..d1fd6ba0 100644 --- a/tests/output/default/neuron_manage/split.txt +++ b/tests/output/default/neuron_manage/split.txt @@ -8,7 +8,10 @@ Sending message with record { id = null; command = opt variant { - Split = record { amount_e8s = 10_000_000_000 : nat64 } + Split = record { + memo = opt (0 : nat64); + amount_e8s = 10_000_000_000 : nat64; + } }; neuron_id_or_subaccount = opt variant { NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } From a84f462ab2c01296fc294d1d98d6c1845a47cc80 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 20:34:39 -0500 Subject: [PATCH 5/9] clippy --- src/commands/transfer.rs | 2 +- src/lib/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/transfer.rs b/src/commands/transfer.rs index de4b7b0d..7fbde7fc 100644 --- a/src/commands/transfer.rs +++ b/src/commands/transfer.rs @@ -102,6 +102,6 @@ pub fn parse_tokens(amount: &str) -> AnyhowResult { let e8s = &e8s[..8]; new_tokens(parse(tokens)?, parse(e8s)?) } - _ => bail!("Cannot parse amount {}", amount), + _ => bail!("Cannot parse amount {amount}"), } } diff --git a/src/lib/mod.rs b/src/lib/mod.rs index ce955e54..44cfeade 100644 --- a/src/lib/mod.rs +++ b/src/lib/mod.rs @@ -445,7 +445,7 @@ pub fn get_account_id( pub fn mnemonic_to_key(mnemonic: &Mnemonic) -> AnyhowResult { let seed = Seed::new(mnemonic, ""); let ext = bip32::XPrv::derive_from_path(seed, &derivation_path()) - .map_err(|err| anyhow!("{:?}", err)) + .map_err(|err| anyhow!("{err:?}")) .context("Failed to derive BIP32 extended private key")?; let secret = ext.private_key(); let secret_key = SecretKey::from(secret); From 6b7290dadae3f84697d0f7aba0c966c8394b5fe6 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 20:55:20 -0500 Subject: [PATCH 6/9] chore(ci): simplify e2e workflow by removing dynamic matrix generation Remove the `list_tests` job and `e2e-matrix.py` script. The test matrix is now defined inline, eliminating indirection through a Python script, a job output, and an intermediate env var. Also fixes a latent OS name mismatch (`macos-14-large` vs `macos-15`) that would have broken artifact downloads. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/e2e.yml | 22 ++++------------------ scripts/workflows/e2e-matrix.py | 23 ----------------------- 2 files changed, 4 insertions(+), 41 deletions(-) delete mode 100755 scripts/workflows/e2e-matrix.py diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d3637ef9..1ccbba31 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -44,27 +44,13 @@ jobs: name: quill-${{ matrix.os }}-rs path: ${{ matrix.binary_path }}/quill - list_tests: - runs-on: ubuntu-latest - outputs: - matrix: ${{ steps.set-matrix.outputs.matrix }} - steps: - - uses: actions/checkout@v4 - - id: set-matrix - run: | - EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) - echo "matrix<<$EOF" >> $GITHUB_OUTPUT - scripts/workflows/e2e-matrix.py >> $GITHUB_OUTPUT - echo "$EOF" >> $GITHUB_OUTPUT - test: runs-on: ${{ matrix.os }} - needs: [build, list_tests] + needs: [build] strategy: fail-fast: false - matrix: ${{fromJson(needs.list_tests.outputs.matrix)}} - env: - E2E_TEST: tests-${{ matrix.test }}.bash + matrix: + os: [ubuntu-22.04, macos-15] steps: - uses: actions/checkout@v4 - name: Download quill binary @@ -89,7 +75,7 @@ jobs: echo "utils=$(pwd)/e2e/utils" >> "$GITHUB_ENV" export -p - name: Run e2e test - run: timeout 2100 bats "e2e/$E2E_TEST" + run: timeout 2100 bats e2e/tests-quill/create_neuron.bash aggregate: name: e2e:required diff --git a/scripts/workflows/e2e-matrix.py b/scripts/workflows/e2e-matrix.py deleted file mode 100755 index 215541db..00000000 --- a/scripts/workflows/e2e-matrix.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python3 - -import json -import glob -import os - - -def test_scripts(prefix): - all = os.listdir('e2e/tests-{}'.format(prefix)) - bash = filter(lambda filename: filename.endswith('.bash'), all) - tests = list(map(lambda filename: '{}/{}'.format(prefix, filename[:-5]), bash)) - return tests - - -test = sorted(test_scripts('quill')) - -matrix = { - 'test': test, - 'os': [ 'macos-14-large', 'ubuntu-22.04' ], - 'exclude': [ ] -} - -print(json.dumps(matrix)) From 3940d418870bbc0f328ea99c9cb321909b9d97f0 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 21:14:10 -0500 Subject: [PATCH 7/9] chore(ci): replace provision-*-e2e.sh scripts with bats-core/bats-action Use the official cross-platform bats-core/bats-action@4.0.0 instead of hand-rolled provision scripts. This removes the two OS-specific scripts, fixes the arm64 path issue (no more hardcoded /usr/local/lib), and switches _.bash to the modern bats_load_library mechanism. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/e2e.yml | 14 +++++----- e2e/utils/_.bash | 2 +- scripts/workflows/provision-darwin-e2e.sh | 32 ----------------------- scripts/workflows/provision-linux-e2e.sh | 28 -------------------- 4 files changed, 9 insertions(+), 67 deletions(-) delete mode 100755 scripts/workflows/provision-darwin-e2e.sh delete mode 100755 scripts/workflows/provision-linux-e2e.sh diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1ccbba31..ec4f897e 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -62,19 +62,21 @@ jobs: run: chmod +x /usr/local/bin/quill - name: Install dfx uses: dfinity/setup-dfx@main - - name: Provision Darwin + - name: Install coreutils (macOS) if: ${{ contains(matrix.os, 'macos') }} - run: bash scripts/workflows/provision-darwin-e2e.sh - - name: Provision Linux - if: ${{ contains(matrix.os, 'ubuntu') }} - run: bash scripts/workflows/provision-linux-e2e.sh + run: brew install coreutils + - name: Setup Bats and bats libs + id: setup-bats + uses: bats-core/bats-action@4.0.0 - name: Prepare environment run: | echo "archive=$(pwd)/e2e/archive" >> "$GITHUB_ENV" echo "assets=$(pwd)/e2e/assets" >> "$GITHUB_ENV" echo "utils=$(pwd)/e2e/utils" >> "$GITHUB_ENV" - export -p + echo "DOWNLOAD_DIR=$(mktemp -d)" >> "$GITHUB_ENV" - name: Run e2e test + env: + BATS_LIB_PATH: ${{ steps.setup-bats.outputs.lib-path }} run: timeout 2100 bats e2e/tests-quill/create_neuron.bash aggregate: diff --git a/e2e/utils/_.bash b/e2e/utils/_.bash index 9d520da0..48d3d989 100644 --- a/e2e/utils/_.bash +++ b/e2e/utils/_.bash @@ -1,4 +1,4 @@ -load "${BATSLIB}"/load.bash +bats_load_library bats-support load ../utils/assertions # Takes a name of the asset folder, and copy those files to the current project. diff --git a/scripts/workflows/provision-darwin-e2e.sh b/scripts/workflows/provision-darwin-e2e.sh deleted file mode 100755 index eee19001..00000000 --- a/scripts/workflows/provision-darwin-e2e.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -ex - -export - -# Enter temporary directory. -pushd /tmp - -brew install coreutils - -# Install Bats. -if [ "$(uname -r)" = "19.6.0" ]; then - brew unlink bats -fi -brew install bats-core - -# Install Bats support. -version=0.3.0 -curl --location --output bats-support.tar.gz https://github.com/ztombol/bats-support/archive/v$version.tar.gz -mkdir /usr/local/lib/bats-support -tar --directory /usr/local/lib/bats-support --extract --file bats-support.tar.gz --strip-components 1 -rm bats-support.tar.gz - -# Set environment variables. -BATS_SUPPORT="/usr/local/lib/bats-support" -echo "BATSLIB=${BATS_SUPPORT}" >> "$GITHUB_ENV" -# if this is set, setup_nns.sh will not download all wasm modules for every individual test -echo "DOWNLOAD_DIR=$(mktemp -d)" >> "$GITHUB_ENV" - -# Exit temporary directory. -popd diff --git a/scripts/workflows/provision-linux-e2e.sh b/scripts/workflows/provision-linux-e2e.sh deleted file mode 100755 index 74843d2f..00000000 --- a/scripts/workflows/provision-linux-e2e.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -set -ex - -export - -# Enter temporary directory. -pushd /tmp - -# Install Bats. -sudo apt-get install --yes bats - -# Install Bats support. -version=0.3.0 -wget https://github.com/ztombol/bats-support/archive/v$version.tar.gz -sudo mkdir /usr/local/lib/bats-support -sudo tar --directory /usr/local/lib/bats-support --extract --file v$version.tar.gz --strip-components 1 -rm v$version.tar.gz - -# Set environment variables. -BATS_SUPPORT="/usr/local/lib/bats-support" -echo "BATSLIB=${BATS_SUPPORT}" >> "$GITHUB_ENV" -echo "$HOME/bin" >> "$GITHUB_PATH" -# if this is set, setup_nns.sh will not download all wasm modules for every individual test -echo "DOWNLOAD_DIR=$(mktemp -d)" >> "$GITHUB_ENV" - -# Exit temporary directory. -popd From 7e95ab9b939bf79b41791f06afe1bb99729e2ff8 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 21:28:23 -0500 Subject: [PATCH 8/9] chore(ci): remove all provision-*-build scripts and simplify e2e workflow All provision-*-build scripts were dead weight: the darwin/windows ones were empty, and the linux one installed libudev-dev which is no longer needed (hidapi uses default-features=false, so no udev dependency). Also merge the e2e build and test jobs into one, eliminating the artifact upload/download machinery that was only needed when multiple test jobs shared a single build. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 62 ++++++------------- .github/workflows/e2e.yml | 50 +++------------ .github/workflows/release.yml | 8 --- .../workflows/provision-darwin-arm64-build.sh | 4 -- scripts/workflows/provision-darwin-build.sh | 4 -- scripts/workflows/provision-linux-build.sh | 15 ----- scripts/workflows/provision-windows-build.ps1 | 4 -- 7 files changed, 28 insertions(+), 119 deletions(-) delete mode 100755 scripts/workflows/provision-darwin-arm64-build.sh delete mode 100755 scripts/workflows/provision-darwin-build.sh delete mode 100755 scripts/workflows/provision-linux-build.sh delete mode 100755 scripts/workflows/provision-windows-build.ps1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 94b176fb..48099e26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,53 +4,32 @@ on: pull_request jobs: ci: - name: ${{ matrix.task.name }} (${{ matrix.os.name }}) - runs-on: ${{ matrix.os.name }} + name: ${{ matrix.task.name }} (${{ matrix.os }}) + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: - - name: ubuntu-22.04 - family: ubuntu - - name: ubuntu-24.04 - family: ubuntu - - name: macos-15-intel - family: darwin - - name: macos-14 - family: darwin-arm64 - - name: macos-15 - family: darwin-arm64 - - name: windows-2022 - family: windows - - name: windows-2025 - family: windows - task: - - name: Clippy - command: | - cargo hack clippy --each-feature --no-dev-deps -- -D warnings - cargo clippy --tests --benches -- -D warnings - - name: Test - command: cargo test + os: + - ubuntu-22.04 + - ubuntu-24.04 + - macos-15-intel + - macos-14 + - macos-15 + - windows-2022 + - windows-2025 + task: + - name: Clippy + command: | + cargo hack clippy --each-feature --no-dev-deps -- -D warnings + cargo clippy --tests --benches -- -D warnings + - name: Test + command: cargo test include: - - os: - family: ubuntu - build_deps: scripts/workflows/provision-linux-build.sh - - os: - family: darwin - build_deps: scripts/workflows/provision-darwin-build.sh - - os: - family: darwin-arm64 - build_deps: scripts/workflows/provision-darwin-arm64-build.sh - - os: - family: windows - build_deps: scripts/workflows/provision-windows-build.ps1 # formatting doesn't depend on build environment, not included in main matrix - task: name: Format command: cargo fmt -- --check - os: - name: ubuntu-latest - family: ubuntu + os: ubuntu-latest env: VCPKG_ROOT: 'C:\vcpkg' steps: @@ -63,10 +42,7 @@ jobs: ~/.cargo/git target ${{ env.VCPKG_ROOT }} - key: ${{ matrix.os.name }}-cargo-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }}-ci-1 - - - name: Install dependencies - run: ${{ matrix.build_deps }} + key: ${{ matrix.os }}-cargo-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }}-ci-1 - uses: taiki-e/install-action@v2 with: diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ec4f897e..64b03744 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -7,20 +7,14 @@ on: pull_request: jobs: - build: - name: e2e build (${{ matrix.os }}) + test: + name: e2e (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: # windows not supported by dfx - include: - - os: ubuntu-22.04 - binary_path: target/release - build_deps: scripts/workflows/provision-linux-build.sh - - os: macos-15 - binary_path: target/release - build_deps: scripts/workflows/provision-darwin-arm64-build.sh + os: [ubuntu-22.04, macos-15] steps: - uses: actions/checkout@v4 @@ -32,48 +26,22 @@ jobs: target key: ${{ matrix.os }}-cargo-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }}-ci-1 - - name: Install dependencies - run: ${{ matrix.build_deps }} - - name: Build release - run: cargo build --release --locked - - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: quill-${{ matrix.os }}-rs - path: ${{ matrix.binary_path }}/quill + run: | + cargo build --release --locked + echo "$(pwd)/target/release" >> "$GITHUB_PATH" - test: - runs-on: ${{ matrix.os }} - needs: [build] - strategy: - fail-fast: false - matrix: - os: [ubuntu-22.04, macos-15] - steps: - - uses: actions/checkout@v4 - - name: Download quill binary - uses: actions/download-artifact@v4 - with: - name: quill-${{ matrix.os }}-rs - path: /usr/local/bin - - name: Setup quill binary - run: chmod +x /usr/local/bin/quill - name: Install dfx uses: dfinity/setup-dfx@main + - name: Install coreutils (macOS) if: ${{ contains(matrix.os, 'macos') }} run: brew install coreutils + - name: Setup Bats and bats libs id: setup-bats uses: bats-core/bats-action@4.0.0 - - name: Prepare environment - run: | - echo "archive=$(pwd)/e2e/archive" >> "$GITHUB_ENV" - echo "assets=$(pwd)/e2e/assets" >> "$GITHUB_ENV" - echo "utils=$(pwd)/e2e/utils" >> "$GITHUB_ENV" - echo "DOWNLOAD_DIR=$(mktemp -d)" >> "$GITHUB_ENV" + - name: Run e2e test env: BATS_LIB_PATH: ${{ steps.setup-bats.outputs.lib-path }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 47eeb6fb..2c545f14 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,17 +27,14 @@ jobs: name: windows target_file: target/release/quill.exe asset_name: quill-windows-x86_64.exe - build_deps: scripts/workflows/provision-windows-build.ps1 - os: macos-15-intel name: macos target_file: target/release/quill asset_name: quill-macos-x86_64 - build_deps: scripts/workflows/provision-darwin-build.sh - os: macos-15 name: macos-arm64 target_file: target/release/quill asset_name: quill-macos-arm64 - build_deps: scripts/workflows/provision-darwin-arm64-build.sh - os: ubuntu-22.04 name: linux-arm32 target: arm-unknown-linux-gnueabihf @@ -48,7 +45,6 @@ jobs: name: linux target_file: target/release/quill asset_name: quill-linux-x86_64 - build_deps: scripts/workflows/provision-linux-build.sh env: VCPKG_ROOT: 'C:\vcpkg' steps: @@ -62,10 +58,6 @@ jobs: ${{ env.VCPKG_ROOT }} key: ${{ matrix.os }}-cargo-${{ env.rust }}-release-1 - - name: Install dependencies - if: ${{ matrix.build_deps }} - run: ${{ matrix.build_deps }} - - name: Install target if: ${{ matrix.target }} run: rustup target add ${{ matrix.target }} diff --git a/scripts/workflows/provision-darwin-arm64-build.sh b/scripts/workflows/provision-darwin-arm64-build.sh deleted file mode 100755 index 64ab3c7b..00000000 --- a/scripts/workflows/provision-darwin-arm64-build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -euxo pipefail - -# 🌵 diff --git a/scripts/workflows/provision-darwin-build.sh b/scripts/workflows/provision-darwin-build.sh deleted file mode 100755 index 64ab3c7b..00000000 --- a/scripts/workflows/provision-darwin-build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -euxo pipefail - -# 🌵 diff --git a/scripts/workflows/provision-linux-build.sh b/scripts/workflows/provision-linux-build.sh deleted file mode 100755 index 9ede377c..00000000 --- a/scripts/workflows/provision-linux-build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -set -euxo pipefail - -if [[ $# = 1 ]]; then # docker - dpkg --add-architecture "$CROSS_DEB_ARCH" - if [[ $1 != "arm-"* && $1 != *"-musl" ]]; then - arch=":$CROSS_DEB_ARCH" - fi - sudo() { - "$@" - } -fi - -sudo apt-get update -y -sudo apt-get install "libudev-dev${arch-}" -y diff --git a/scripts/workflows/provision-windows-build.ps1 b/scripts/workflows/provision-windows-build.ps1 deleted file mode 100755 index 12508285..00000000 --- a/scripts/workflows/provision-windows-build.ps1 +++ /dev/null @@ -1,4 +0,0 @@ -Set-StrictMode -Version 2 -$ErrorActionPreference = 'Stop' - -# nothing for now From 935610910e258dc9e1965f345983f9cefb9de19c Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 24 Feb 2026 21:34:56 -0500 Subject: [PATCH 9/9] fix(ci): restore libudev-dev for linux builds hidapi's C build script links against libudev at the system level even with default-features = false, so it doesn't appear in Cargo.lock but is still required on Linux. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 4 ++++ .github/workflows/e2e.yml | 4 ++++ .github/workflows/release.yml | 4 ++++ .github/workflows/shellcheck.yml | 2 -- Cross.toml | 2 -- 5 files changed, 12 insertions(+), 4 deletions(-) delete mode 100644 Cross.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48099e26..0f4c2498 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,10 @@ jobs: ${{ env.VCPKG_ROOT }} key: ${{ matrix.os }}-cargo-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }}-ci-1 + - name: Install libudev (Linux) + if: ${{ contains(matrix.os, 'ubuntu') }} + run: sudo apt-get install -y libudev-dev + - uses: taiki-e/install-action@v2 with: tool: cargo-hack@0.6.11 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 64b03744..44816627 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -26,6 +26,10 @@ jobs: target key: ${{ matrix.os }}-cargo-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }}-ci-1 + - name: Install libudev (Linux) + if: ${{ contains(matrix.os, 'ubuntu') }} + run: sudo apt-get install -y libudev-dev + - name: Build release run: | cargo build --release --locked diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c545f14..eba34738 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,6 +58,10 @@ jobs: ${{ env.VCPKG_ROOT }} key: ${{ matrix.os }}-cargo-${{ env.rust }}-release-1 + - name: Install libudev (Linux) + if: ${{ contains(matrix.os, 'ubuntu') }} + run: sudo apt-get install -y libudev-dev + - name: Install target if: ${{ matrix.target }} run: rustup target add ${{ matrix.target }} diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 9e6f8907..c9563b37 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -15,8 +15,6 @@ jobs: | xz -d | tar x - name: Check e2e scripts run: $HOME/bin/shellcheck-v0.7.1/shellcheck e2e/**/*.*sh - - name: Check deploy scripts - run: $HOME/bin/shellcheck-v0.7.1/shellcheck scripts/**/*.sh aggregate: name: shellcheck:required diff --git a/Cross.toml b/Cross.toml deleted file mode 100644 index 985438dd..00000000 --- a/Cross.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] -pre-build = "scripts/workflows/provision-linux-build.sh"