From cd93ac19ee069e57773f22b5dba0f6f0a9682c36 Mon Sep 17 00:00:00 2001 From: NathanosDev Date: Sat, 11 Jan 2025 03:56:07 +0100 Subject: [PATCH] fix: filter proposals --- Cargo.lock | 3298 ++++++++++------- Cargo.toml | 4 +- rust-toolchain.toml | 2 +- src/backend/impl/Cargo.toml | 7 +- .../impl/src/controllers/http_controller.rs | 2 +- .../impl/src/controllers/init_controller.rs | 12 +- .../proposal_review_commit_controller.rs | 20 +- .../controllers/proposal_review_controller.rs | 30 +- .../controllers/user_profile_controller.rs | 16 +- src/backend/impl/src/helpers/http.rs | 13 +- src/backend/impl/src/helpers/image.rs | 11 +- .../repositories/certification_repository.rs | 14 +- .../impl/src/repositories/image_repository.rs | 27 +- .../src/repositories/proposal_repository.rs | 51 +- .../proposal_review_commit_repository.rs | 30 +- .../proposal_review_repository.rs | 43 +- .../impl/src/repositories/types/commit_sha.rs | 7 +- .../impl/src/repositories/types/date_time.rs | 27 +- .../impl/src/repositories/types/image.rs | 10 +- .../impl/src/repositories/types/uuid.rs | 11 +- .../repositories/user_profile_repository.rs | 17 +- src/backend/impl/src/services/http_service.rs | 4 +- .../impl/src/services/image_service.rs | 14 +- src/backend/impl/src/services/init_service.rs | 15 +- src/backend/impl/src/services/log_service.rs | 1 + .../proposal_review_commit_service.rs | 100 +- .../src/services/proposal_review_service.rs | 77 +- .../impl/src/services/proposal_service.rs | 104 +- .../impl/src/services/user_profile_service.rs | 27 +- src/backend/impl/src/system_api/rand.rs | 62 +- .../src/tests/list_proposal_reviews.spec.ts | 28 +- src/backend/logs/src/fetcher.rs | 1 + 32 files changed, 2188 insertions(+), 1897 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5bf482cb..5688d653 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,21 +1,27 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli", + "gimli 0.31.1", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "adler32" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" [[package]] name = "ahash" @@ -23,7 +29,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.11", + "getrandom", "once_cell", "version_check", ] @@ -42,18 +48,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -72,9 +78,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -87,49 +93,55 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" + +[[package]] +name = "arc-swap" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arrayvec" @@ -139,9 +151,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" @@ -154,9 +166,9 @@ dependencies = [ [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", @@ -164,39 +176,33 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] [[package]] name = "asn1-rs-derive" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", "synstructure", ] [[package]] name = "asn1-rs-impl" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - [[package]] name = "async-attributes" version = "1.1.2" @@ -220,28 +226,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ - "async-lock 3.4.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.2.0", + "fastrand", + "futures-lite", "slab", ] @@ -251,61 +255,32 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ - "async-channel 2.1.1", + "async-channel 2.3.1", "async-executor", - "async-io 2.2.2", - "async-lock 3.4.0", + "async-io", + "async-lock", "blocking", - "futures-lite 2.2.0", + "futures-lite", "once_cell", ] [[package]] name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.2.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock 3.4.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.2.0", + "futures-lite", "parking", - "polling 3.3.1", - "rustix 0.38.28", + "polling", + "rustix", "slab", "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "windows-sys 0.59.0", ] [[package]] @@ -314,27 +289,27 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", - "event-listener-strategy 0.5.2", + "event-listener 5.4.0", + "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-std" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" dependencies = [ "async-attributes", "async-channel 1.9.0", "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 1.13.0", + "futures-lite", "gloo-timers", "kv-log-macro", "log", @@ -348,43 +323,41 @@ dependencies = [ [[package]] name = "async-task" -version = "4.7.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] -name = "atomic-waker" -version = "1.1.2" +name = "async-watch" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +checksum = "a078faf4e27c0c6cc0efb20e5da59dcccc04968ebf2801d8e0b2195124cdcdb2" +dependencies = [ + "event-listener 2.5.3", +] [[package]] -name = "atty" -version = "0.2.14" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backend_api" @@ -402,23 +375,22 @@ dependencies = [ "async-std", "backend_api", "backend_macros", - "base64 0.22.0", + "base64 0.22.1", "candid", "candid_parser", "chrono", "external_canisters", + "fastrand", "hex", - "ic-cdk", - "ic-cdk-macros", - "ic-cdk-timers", + "ic-cdk 0.12.2", + "ic-cdk-macros 0.8.4", + "ic-cdk-timers 0.6.0", "ic-http-certification", "ic-nns-common", "ic-nns-governance", "ic-stable-structures", "lazy_static", "mockall 0.12.1", - "rand", - "rand_chacha", "rstest", "serde", "serde_cbor", @@ -431,12 +403,12 @@ version = "0.1.0" dependencies = [ "anyhow", "backend_api", - "base64 0.22.0", + "base64 0.22.1", "candid", "chrono", - "clap 4.5.13", + "clap", "ic-agent", - "ic-cdk", + "ic-cdk 0.12.2", "opentelemetry", "opentelemetry-otlp", "opentelemetry-semantic-conventions", @@ -452,7 +424,7 @@ version = "0.1.0" dependencies = [ "backend_api", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -461,24 +433,24 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.11", + "getrandom", "instant", "rand", ] [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", + "windows-targets", ] [[package]] @@ -501,9 +473,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" @@ -566,15 +538,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" [[package]] name = "bitvec" @@ -608,25 +574,22 @@ dependencies = [ [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.1.1", - "async-lock 3.4.0", + "async-channel 2.3.1", "async-task", - "fastrand 2.0.1", "futures-io", - "futures-lite 2.2.0", + "futures-lite", "piper", - "tracing", ] [[package]] name = "borsh" -version = "1.5.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe5b10e214954177fb1dc9fbd20a1a2608fe99e6c832033bdc7cea287a20d77" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "borsh-derive", "cfg_aliases", @@ -634,16 +597,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a8646f94ab393e43e8b35a2558b1624bed28b97ee09c5d15456e3c9463f46d" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.48", - "syn_derive", + "syn 2.0.96", ] [[package]] @@ -680,7 +642,7 @@ name = "build-info-common" version = "0.0.27" source = "git+https://github.com/dfinity-lab/build-info?rev=701a696844fba5c87df162fbbc1ccef96f27c9d7#701a696844fba5c87df162fbbc1ccef96f27c9d7" dependencies = [ - "derive_more 0.99.17", + "derive_more", "semver", "serde", ] @@ -707,9 +669,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "by_address" @@ -757,20 +719,20 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cached" -version = "0.41.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec6d20b3d24b6c74e2c5331d2d3d8d1976a9883c7da179aa851afa4c90d62e36" +checksum = "8e8e463fceca5674287f32d252fb1d94083758b8709c160efae66d263e5f4eba" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.14.5", "instant", "once_cell", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -780,26 +742,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8466736fe5dbcaf8b8ee24f9bbefe43c884dc3e9ff7178da70f55bffca1133c" dependencies = [ "ahash 0.8.11", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "instant", "once_cell", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "camino" -version = "1.1.6" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] name = "candid" -version = "0.10.7" +version = "0.10.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818394610ed32d9e4c81025f97c8580698b69542527efde18514cf9ad1f8f5f0" +checksum = "d04aa85a9ba2542bded33d1eff0ffb17cb98b1be8117e0a25e1ad8c62bedc881" dependencies = [ "anyhow", "binread", @@ -815,7 +777,7 @@ dependencies = [ "serde", "serde_bytes", "stacker", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -827,14 +789,14 @@ dependencies = [ "lazy_static", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "candid_parser" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36381de3ba8a312deb028552c0d63f7c7fe6e204f44bae4c58a3643308cfa9d5" +checksum = "48a3da76f989cd350b7342c64c6c6008341bb6186f6832ef04e56dc50ba0fd76" dependencies = [ "anyhow", "candid", @@ -846,14 +808,14 @@ dependencies = [ "logos", "num-bigint", "pretty", - "thiserror", + "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", ] @@ -873,9 +835,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" dependencies = [ "shlex", ] @@ -888,21 +850,21 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[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.31" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", "serde", - "windows-targets 0.48.5", + "windows-targets", ] [[package]] @@ -934,82 +896,43 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags 1.3.2", - "clap_derive 3.2.25", - "clap_lex 0.2.4", - "indexmap 1.9.3", - "once_cell", - "strsim 0.10.0", - "termcolor", - "textwrap", -] - -[[package]] -name = "clap" -version = "4.5.13" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", - "clap_derive 4.5.13", + "clap_derive", ] [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstream", "anstyle", - "clap_lex 0.7.2", + "clap_lex", "strsim 0.11.1", ] [[package]] name = "clap_derive" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "clap_derive" -version = "4.5.13" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.48", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", + "syn 2.0.96", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "codespan-reporting" @@ -1023,15 +946,15 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "comparable" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb513ee8037bf08c5270ecefa48da249f4c58e57a71ccfce0a5b0877d2a20eb2" +checksum = "8606f9aa5b5a2df738584b139c79413d0c1545ed0ffd16e76e0944d1de7388c0" dependencies = [ "comparable_derive", "comparable_helper", @@ -1041,9 +964,9 @@ dependencies = [ [[package]] name = "comparable_derive" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a54b9c40054eb8999c5d1d36fdc90e4e5f7ff0d1d9621706f360b3cbc8beb828" +checksum = "41f36ea7383b9a2a9ae0a4e225d8a9c1c3aeadde78c59cdc35bad5c02b4dad01" dependencies = [ "convert_case 0.4.0", "proc-macro2", @@ -1053,9 +976,9 @@ dependencies = [ [[package]] name = "comparable_helper" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5437e327e861081c91270becff184859f706e3e50f5301a9d4dc8eb50752c3" +checksum = "71c9b60259084f32c14d32476f3a299b4997e3c186e1473bd972ff8a8c83d1b4" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -1065,9 +988,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1095,36 +1018,42 @@ 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 = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" -dependencies = [ - "cfg-if", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" @@ -1139,7 +1068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "subtle", "zeroize", ] @@ -1156,9 +1085,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" dependencies = [ "csv-core", "itoa", @@ -1177,17 +1106,33 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.2.0" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "group", + "rand_core", + "rustc_version", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "curve25519-dalek-ng" version = "4.1.1" @@ -1196,7 +1141,7 @@ checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" dependencies = [ "byteorder", "digest 0.9.0", - "rand_core 0.6.4", + "rand_core", "subtle-ng", "zeroize", ] @@ -1204,7 +1149,7 @@ dependencies = [ [[package]] name = "cycles-minting-canister" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "base64 0.13.1", @@ -1222,6 +1167,7 @@ dependencies = [ "ic-ledger-core", "ic-management-canister-types", "ic-metrics-encoder", + "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", "ic-nervous-system-governance", "ic-nns-common", @@ -1233,12 +1179,12 @@ dependencies = [ "icrc-ledger-types", "lazy_static", "on_wire", - "prost 0.12.4", + "prost", "rand", "serde", "serde_cbor", - "sha2 0.9.9", - "yansi", + "sha2 0.10.8", + "yansi 0.5.1", ] [[package]] @@ -1276,11 +1222,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "dary_heap" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" + [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "der" @@ -1295,9 +1247,9 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.2.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ "asn1-rs", "displaydoc", @@ -1318,31 +1270,21 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.8-alpha.0" -source = "git+https://github.com/dfinity-lab/derive_more?rev=9f1b894e6fde640da4e9ea71a8fc0e4dd98d01da#9f1b894e6fde640da4e9ea71a8fc0e4dd98d01da" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] name = "dfn_candid" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "dfn_core", @@ -1354,7 +1296,7 @@ dependencies = [ [[package]] name = "dfn_core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-base-types", "on_wire", @@ -1363,7 +1305,7 @@ dependencies = [ [[package]] name = "dfn_http" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "dfn_candid", @@ -1375,11 +1317,12 @@ dependencies = [ [[package]] name = "dfn_http_metrics" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "dfn_candid", "dfn_core", "dfn_http", + "ic-canisters-http-types", "ic-metrics-encoder", "serde_bytes", ] @@ -1387,10 +1330,10 @@ dependencies = [ [[package]] name = "dfn_protobuf" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "on_wire", - "prost 0.12.4", + "prost", ] [[package]] @@ -1399,12 +1342,6 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - [[package]] name = "digest" version = "0.9.0" @@ -1449,13 +1386,13 @@ 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.48", + "syn 2.0.96", ] [[package]] @@ -1484,6 +1421,16 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + [[package]] name = "ed25519-consensus" version = "2.1.0" @@ -1492,18 +1439,35 @@ checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" dependencies = [ "curve25519-dalek-ng", "hex", - "rand_core 0.6.4", + "rand_core", "serde", "sha2 0.9.9", - "thiserror", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek", + "ed25519", + "merlin", + "rand_core", + "serde", + "sha2 0.10.8", + "signature", + "subtle", "zeroize", ] [[package]] name = "either" -version = "1.9.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" @@ -1514,12 +1478,12 @@ dependencies = [ "base16ct", "crypto-bigint", "digest 0.10.7", - "ff 0.13.0", + "ff", "generic-array", - "group 0.13.0", + "group", "pem-rfc7468", "pkcs8", - "rand_core 0.6.4", + "rand_core", "sec1", "subtle", "zeroize", @@ -1527,9 +1491,9 @@ dependencies = [ [[package]] name = "ena" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" dependencies = [ "log", ] @@ -1551,12 +1515,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1567,43 +1531,22 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.3" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", "pin-project-lite", ] -[[package]] -name = "event-listener" -version = "5.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "pin-project-lite", ] @@ -1612,31 +1555,28 @@ name = "external_canisters" version = "0.1.0" dependencies = [ "candid", - "ic-cdk", + "ic-cdk 0.12.2", "ic-nns-governance", "serde", "serde_bytes", ] [[package]] -name = "fastrand" -version = "1.9.0" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fe-derive" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "hex", "num-bigint-dig", @@ -1648,23 +1588,19 @@ dependencies = [ [[package]] name = "ff" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core 0.6.4", + "rand_core", "subtle", ] [[package]] -name = "ff" -version = "0.13.0" +name = "fiat-crypto" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "fixedbitset" @@ -1672,15 +1608,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - [[package]] name = "fnv" version = "1.0.7" @@ -1710,9 +1637,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1725,9 +1652,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1735,15 +1662,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1752,32 +1679,17 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "1.13.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" -dependencies = [ - "fastrand 2.0.1", + "fastrand", "futures-core", "futures-io", "parking", @@ -1786,38 +1698,38 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1844,43 +1756,45 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi", + "wasm-bindgen", ] [[package]] -name = "getrandom" -version = "0.2.11" +name = "gimli" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "fallible-iterator", + "indexmap 1.9.3", + "stable_deref_trait", ] [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "gloo-timers" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" dependencies = [ "futures-channel", "futures-core", @@ -1888,25 +1802,14 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "group" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff 0.13.0", - "rand_core 0.6.4", + "ff", + "rand_core", "subtle", ] @@ -1937,40 +1840,41 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash 0.8.11", "allocator-api2", + "serde", ] [[package]] -name = "heck" -version = "0.4.1" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" -version = "0.5.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -1988,30 +1892,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] -name = "hmac" -version = "0.12.1" +name = "hkdf" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "digest 0.10.7", + "hmac", ] [[package]] -name = "http" -version = "0.2.12" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "bytes", - "fnv", - "itoa", + "digest 0.10.7", ] [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -2025,7 +1927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -2036,7 +1938,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http", "http-body", "pin-project-lite", ] @@ -2049,14 +1951,14 @@ checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http", "http-body", "httparse", "itoa", @@ -2068,12 +1970,12 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", + "http", "hyper", "hyper-util", "rustls", @@ -2086,29 +1988,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http", "http-body", "hyper", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2129,12 +2030,15 @@ dependencies = [ [[package]] name = "ic-agent" -version = "0.39.0" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0783cc46e082dc4b016ff693a45207db55e552e8e6f5e3e2552514761a285f6d" +checksum = "1ba408987ca48fc3eee6a613e760d076a9046cccbbb5ba29efbada339ab28ed9" dependencies = [ - "async-lock 3.4.0", + "arc-swap", + "async-channel 1.9.0", + "async-lock", "async-trait", + "async-watch", "backoff", "cached 0.52.0", "candid", @@ -2144,9 +2048,9 @@ dependencies = [ "elliptic-curve", "futures-util", "hex", - "http 1.1.0", + "http", "http-body", - "ic-certification 2.6.0", + "ic-certification", "ic-transport-types", "ic-verify-bls-signature", "k256", @@ -2164,7 +2068,8 @@ dependencies = [ "serde_repr", "sha2 0.10.8", "simple_asn1", - "thiserror", + "stop-token", + "thiserror 2.0.11", "time", "tokio", "tower-service", @@ -2174,24 +2079,27 @@ dependencies = [ [[package]] name = "ic-base-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "byte-unit", "bytes", "candid", "comparable", + "hex", "ic-crypto-sha2", "ic-protobuf", - "ic-stable-structures", "phantom_newtype", - "prost 0.12.4", + "prost", "serde", + "strum", + "strum_macros", ] [[package]] name = "ic-btc-interface" -version = "0.1.0" -source = "git+https://github.com/dfinity/bitcoin-canister?rev=9b239d1d67253eb14a35be6061e3967d5ec9db9d#9b239d1d67253eb14a35be6061e3967d5ec9db9d" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0152e14e697b0e988dbfdcb3f7e352d1c76a65b7d2d75c5d76bad22c3aca10d" dependencies = [ "candid", "serde", @@ -2199,9 +2107,9 @@ dependencies = [ ] [[package]] -name = "ic-btc-types-internal" +name = "ic-btc-replica-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-btc-interface", @@ -2214,13 +2122,11 @@ dependencies = [ [[package]] name = "ic-canister-client-sender" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "ed25519-consensus", "ic-base-types", - "ic-crypto-ecdsa-secp256k1", - "ic-crypto-internal-types", - "ic-crypto-utils-basic-sig", + "ic-crypto-ed25519", + "ic-crypto-secp256k1", "ic-types", "rand", "rand_chacha", @@ -2229,7 +2135,7 @@ dependencies = [ [[package]] name = "ic-canister-log" version = "0.2.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "serde", ] @@ -2237,7 +2143,7 @@ dependencies = [ [[package]] name = "ic-canister-profiler" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-metrics-encoder", "ic0 0.18.11", @@ -2246,40 +2152,109 @@ dependencies = [ [[package]] name = "ic-canisters-http-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "candid", + "dfn_candid", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-cdk" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e908da565d9e304e83732500069ebb959e3d2cad80f894889ea37207112c7a0" dependencies = [ "candid", + "ic-cdk-macros 0.8.4", + "ic0 0.21.1", "serde", "serde_bytes", ] [[package]] name = "ic-cdk" -version = "0.12.0" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ec8231f413b8a4d74b99d7df26d6e917d6528a6245abde27f251210dcf9b72" +checksum = "3b1da6a25b045f9da3c9459c0cb2b0700ac368ee16382975a17185a23b9c18ab" dependencies = [ "candid", - "ic-cdk-macros", + "ic-cdk-macros 0.13.2", "ic0 0.21.1", "serde", "serde_bytes", ] +[[package]] +name = "ic-cdk" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8ecacd682fa05a985253592963306cb9799622d7b1cce4b1edb89c6ec85be1" +dependencies = [ + "candid", + "ic-cdk-macros 0.16.0", + "ic0 0.23.0", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-cdk-macros" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5a618e4020cea88e933d8d2f8c7f86d570ec06213506a80d4f2c520a9bba512" +dependencies = [ + "candid", + "proc-macro2", + "quote", + "serde", + "serde_tokenstream 0.1.7", + "syn 1.0.109", +] + +[[package]] +name = "ic-cdk-macros" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fde5ca6ef1e69825c68916ff1bf7256b8f7ed69ac5ea3f1756f6e57f1503e27" +dependencies = [ + "candid", + "proc-macro2", + "quote", + "serde", + "serde_tokenstream 0.1.7", + "syn 1.0.109", +] + [[package]] name = "ic-cdk-macros" -version = "0.8.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff30a6ddb3b50f1b7df689d203d2135b037706678368b1d73a9a98e17f87a9b4" +checksum = "a45800053d80a6df839a71aaea5797e723188c0b992618208ca3b941350c7355" dependencies = [ "candid", "proc-macro2", "quote", "serde", - "serde_tokenstream", + "serde_tokenstream 0.1.7", "syn 1.0.109", ] +[[package]] +name = "ic-cdk-macros" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4d857135deef20cc7ea8f3869a30cd9cfeb1392b3a81043790b2cd82adc3e0" +dependencies = [ + "candid", + "proc-macro2", + "quote", + "serde", + "serde_tokenstream 0.2.2", + "syn 2.0.96", +] + [[package]] name = "ic-cdk-timers" version = "0.6.0" @@ -2287,7 +2262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c43b9706fef3ad10c4192a14801d16bd9539068239f0f06f257857441364329" dependencies = [ "futures", - "ic-cdk", + "ic-cdk 0.12.2", "ic0 0.21.1", "serde", "serde_bytes", @@ -2295,21 +2270,24 @@ dependencies = [ ] [[package]] -name = "ic-certification" -version = "2.5.0" -source = "git+https://github.com/dfinity/response-verification#600b3d5339381bbfe3454ce870a04afa79005c3d" +name = "ic-cdk-timers" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054727a3a1c486528b96349817d54290ff70df6addf417def456ea708a16f7fb" dependencies = [ - "hex", + "futures", + "ic-cdk 0.13.5", + "ic0 0.21.1", "serde", "serde_bytes", - "sha2 0.10.8", + "slotmap", ] [[package]] name = "ic-certification" -version = "2.6.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64ee3d8b6e81b51f245716d3e0badb63c283c00f3c9fb5d5219afc30b5bf821" +checksum = "9eae40f26fcac9c141cad54d9aa5f423efffde78ac371057c53d275ebbcad443" dependencies = [ "hex", "serde", @@ -2329,52 +2307,46 @@ dependencies = [ ] [[package]] -name = "ic-constants" +name = "ic-crypto-ed25519" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" - -[[package]] -name = "ic-crypto-ecdsa-secp256k1" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "k256", - "lazy_static", - "num-bigint", + "curve25519-dalek", + "ed25519-dalek", + "hkdf", "pem 1.1.1", "rand", - "simple_asn1", + "thiserror 2.0.11", "zeroize", ] [[package]] name = "ic-crypto-getrandom-for-wasm" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "getrandom 0.2.11", + "getrandom", ] [[package]] name = "ic-crypto-internal-basic-sig-der-utils" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "hex", "ic-types", "simple_asn1", - "zeroize", ] [[package]] name = "ic-crypto-internal-basic-sig-ed25519" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "base64 0.13.1", "curve25519-dalek", - "ed25519-consensus", "hex", + "ic-crypto-ed25519", "ic-crypto-internal-basic-sig-der-utils", "ic-crypto-internal-seed", "ic-crypto-internal-types", @@ -2391,17 +2363,17 @@ dependencies = [ [[package]] name = "ic-crypto-internal-bls12-381-type" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "hex", - "ic_bls12_381 0.8.0", + "ic_bls12_381", "itertools 0.12.1", "lazy_static", - "pairing 0.22.0", + "pairing", "paste", "rand", "rand_chacha", - "sha2 0.9.9", + "sha2 0.10.8", "subtle", "zeroize", ] @@ -2409,7 +2381,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-hmac" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-crypto-internal-sha2", ] @@ -2417,7 +2389,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-multi-sig-bls12381" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "base64 0.13.1", "hex", @@ -2436,7 +2408,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-seed" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "hex", "ic-crypto-sha2", @@ -2449,7 +2421,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-sha2" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "sha2 0.10.8", ] @@ -2457,14 +2429,13 @@ dependencies = [ [[package]] name = "ic-crypto-internal-threshold-sig-bls12381" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "base64 0.13.1", - "cached 0.41.0", + "cached 0.49.3", "hex", "ic-crypto-internal-bls12-381-type", "ic-crypto-internal-seed", - "ic-crypto-internal-threshold-sig-bls12381-der", "ic-crypto-internal-types", "ic-crypto-secrets-containers", "ic-crypto-sha2", @@ -2482,19 +2453,13 @@ dependencies = [ ] [[package]] -name = "ic-crypto-internal-threshold-sig-bls12381-der" +name = "ic-crypto-internal-threshold-sig-canister-threshold-sig" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" -dependencies = [ - "simple_asn1", -] - -[[package]] -name = "ic-crypto-internal-threshold-sig-ecdsa" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ + "curve25519-dalek", "fe-derive", + "group", "hex", "hex-literal", "ic-crypto-internal-hmac", @@ -2520,9 +2485,9 @@ dependencies = [ [[package]] name = "ic-crypto-internal-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "hex", "ic-protobuf", "phantom_newtype", @@ -2530,21 +2495,21 @@ dependencies = [ "serde_cbor", "strum", "strum_macros", - "thiserror", + "thiserror 2.0.11", "zeroize", ] [[package]] name = "ic-crypto-node-key-validation" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" 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-ecdsa", + "ic-crypto-internal-threshold-sig-canister-threshold-sig", "ic-crypto-internal-types", "ic-crypto-tls-cert-validation", "ic-protobuf", @@ -2553,39 +2518,46 @@ dependencies = [ ] [[package]] -name = "ic-crypto-secrets-containers" +name = "ic-crypto-secp256k1" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "serde", + "hmac", + "k256", + "lazy_static", + "num-bigint", + "pem 1.1.1", + "rand", + "rand_chacha", + "sha2 0.10.8", + "simple_asn1", "zeroize", ] [[package]] -name = "ic-crypto-sha2" +name = "ic-crypto-secrets-containers" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "ic-crypto-internal-sha2", + "serde", + "zeroize", ] [[package]] -name = "ic-crypto-test-utils-reproducible-rng" +name = "ic-crypto-sha2" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "rand", - "rand_chacha", + "ic-crypto-internal-sha2", ] [[package]] name = "ic-crypto-tls-cert-validation" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "hex", "ic-crypto-internal-basic-sig-ed25519", - "ic-crypto-test-utils-reproducible-rng", "ic-protobuf", "ic-types", "serde", @@ -2595,36 +2567,30 @@ dependencies = [ [[package]] name = "ic-crypto-tree-hash" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "assert_matches", "ic-crypto-internal-types", "ic-crypto-sha2", "ic-protobuf", "serde", "serde_bytes", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "ic-crypto-utils-basic-sig" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ - "base64 0.13.1", - "ed25519-consensus", "ic-base-types", - "ic-crypto-internal-basic-sig-der-utils", - "ic-crypto-internal-basic-sig-ed25519", - "ic-crypto-internal-types", + "ic-crypto-ed25519", "ic-protobuf", - "simple_asn1", ] [[package]] name = "ic-crypto-utils-ni-dkg" -version = "0.8.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-crypto-internal-types", "ic-protobuf", @@ -2634,8 +2600,9 @@ dependencies = [ [[package]] name = "ic-error-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ + "ic-protobuf", "ic-utils", "serde", "strum", @@ -2644,28 +2611,32 @@ dependencies = [ [[package]] name = "ic-http-certification" -version = "2.5.0" -source = "git+https://github.com/dfinity/response-verification#600b3d5339381bbfe3454ce870a04afa79005c3d" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479941fca8e68c2267cddf686d34ed6fb491168667ff259c08a3d65d28bd26d2" dependencies = [ + "base64 0.22.1", "candid", - "http 0.2.12", - "ic-certification 2.5.0", + "http", + "ic-certification", "ic-representation-independent-hash", "serde", - "thiserror", + "serde_cbor", + "thiserror 1.0.69", "urlencoding", ] [[package]] name = "ic-icrc1" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ciborium", "hex", "ic-base-types", "ic-crypto-sha2", + "ic-icrc1-tokens-u64", "ic-ledger-canister-core", "ic-ledger-core", "ic-ledger-hash-of", @@ -2674,39 +2645,13 @@ dependencies = [ "num-traits", "serde", "serde_bytes", - "tempfile", - "thiserror", -] - -[[package]] -name = "ic-icrc1-index" -version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" -dependencies = [ - "async-trait", - "candid", - "ciborium", - "ic-base-types", - "ic-canister-profiler", - "ic-canisters-http-types", - "ic-cdk", - "ic-cdk-macros", - "ic-cdk-timers", - "ic-icrc1", - "ic-icrc1-ledger", - "ic-icrc1-tokens-u64", - "ic-ledger-hash-of", - "ic-metrics-encoder", - "icrc-ledger-types", - "num-traits", - "scopeguard", - "serde", + "thiserror 2.0.11", ] [[package]] name = "ic-icrc1-index-ng" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ciborium", @@ -2714,12 +2659,13 @@ dependencies = [ "ic-canister-log", "ic-canister-profiler", "ic-canisters-http-types", - "ic-cdk", - "ic-cdk-macros", - "ic-cdk-timers", + "ic-cdk 0.16.0", + "ic-cdk-macros 0.9.0", + "ic-cdk-timers 0.7.0", "ic-crypto-sha2", "ic-icrc1", "ic-icrc1-tokens-u64", + "ic-ledger-canister-core", "ic-ledger-core", "ic-metrics-encoder", "ic-stable-structures", @@ -2733,7 +2679,7 @@ dependencies = [ [[package]] name = "ic-icrc1-ledger" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", @@ -2742,8 +2688,10 @@ dependencies = [ "ic-base-types", "ic-canister-log", "ic-canisters-http-types", - "ic-cdk", - "ic-cdk-macros", + "ic-cdk 0.16.0", + "ic-cdk-macros 0.9.0", + "ic-cdk-timers 0.7.0", + "ic-certification", "ic-crypto-tree-hash", "ic-icrc1", "ic-icrc1-tokens-u64", @@ -2751,8 +2699,10 @@ dependencies = [ "ic-ledger-core", "ic-ledger-hash-of", "ic-metrics-encoder", - "icrc-ledger-client", + "ic-stable-structures", "icrc-ledger-types", + "leb128", + "minicbor", "num-traits", "serde", "serde_bytes", @@ -2760,12 +2710,13 @@ dependencies = [ [[package]] name = "ic-icrc1-tokens-u64" -version = "0.1.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-ledger-core", "ic-stable-structures", + "minicbor", "num-traits", "serde", ] @@ -2773,28 +2724,29 @@ dependencies = [ [[package]] name = "ic-ledger-canister-core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", "ic-base-types", "ic-canister-log", - "ic-constants", "ic-ledger-core", "ic-ledger-hash-of", + "ic-limits", "ic-management-canister-types", "ic-utils", - "num-traits", "serde", ] [[package]] name = "ic-ledger-core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-ledger-hash-of", + "ic-stable-structures", + "minicbor", "num-traits", "serde", "serde_bytes", @@ -2803,24 +2755,30 @@ dependencies = [ [[package]] name = "ic-ledger-hash-of" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "hex", "serde", ] +[[package]] +name = "ic-limits" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" + [[package]] name = "ic-management-canister-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-base-types", "ic-btc-interface", - "ic-btc-types-internal", + "ic-btc-replica-types", "ic-error-types", "ic-protobuf", + "ic-utils", "num-traits", "serde", "serde_bytes", @@ -2836,39 +2794,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b5c7628eac357aecda461130f8074468be5aa4d258a002032d82d817f79f1f8" [[package]] -name = "ic-nervous-system-clients" -version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +name = "ic-nervous-system-canisters" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", "dfn_core", "ic-base-types", - "ic-error-types", - "ic-management-canister-types", - "ic-nervous-system-proxied-canister-calls-tracker", + "ic-ledger-core", + "ic-nervous-system-common", "ic-nervous-system-runtime", - "num-traits", - "serde", + "ic-nns-constants", + "icp-ledger", + "icrc-ledger-types", ] [[package]] -name = "ic-nervous-system-collections-union-multi-map" +name = "ic-nervous-system-clients" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "async-trait", + "candid", + "dfn_candid", + "dfn_core", + "ic-base-types", + "ic-error-types", + "ic-ledger-core", + "ic-management-canister-types", + "ic-nervous-system-common", + "ic-nervous-system-proxied-canister-calls-tracker", + "ic-nervous-system-runtime", + "ic-utils", + "icrc-ledger-client", + "icrc-ledger-types", + "num-traits", + "serde", +] + +[[package]] +name = "ic-nervous-system-collections-union-multi-map" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" [[package]] name = "ic-nervous-system-common" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", + "base64 0.13.1", "build-info", "build-info-build", "by_address", "bytes", "dfn_core", - "dfn_protobuf", "ic-base-types", "ic-canister-log", "ic-canisters-http-types", @@ -2883,10 +2864,10 @@ dependencies = [ "json5", "lazy_static", "maplit", - "mockall 0.11.4", + "mockall 0.13.1", "num-traits", "priority-queue", - "prost 0.12.4", + "prost", "rust_decimal", "serde", "serde_json", @@ -2895,12 +2876,12 @@ dependencies = [ [[package]] name = "ic-nervous-system-common-build-metadata" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" [[package]] name = "ic-nervous-system-common-test-keys" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-base-types", "ic-canister-client-sender", @@ -2910,33 +2891,78 @@ dependencies = [ "rand_chacha", ] +[[package]] +name = "ic-nervous-system-common-validation" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" + [[package]] name = "ic-nervous-system-governance" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-base-types", "ic-stable-structures", + "ic_principal", "maplit", "num-traits", ] +[[package]] +name = "ic-nervous-system-initial-supply" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "async-trait", + "candid", + "ic-base-types", + "ic-nervous-system-runtime", + "icrc-ledger-types", + "lazy_static", + "num-bigint", +] + +[[package]] +name = "ic-nervous-system-linear-map" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "rust_decimal", +] + +[[package]] +name = "ic-nervous-system-lock" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" + +[[package]] +name = "ic-nervous-system-long-message" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "candid", + "ic-cdk 0.16.0", + "ic-nervous-system-temporary", + "serde", +] + [[package]] name = "ic-nervous-system-proto" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "comparable", "ic-base-types", - "prost 0.12.4", + "prost", + "rust_decimal", "serde", ] [[package]] name = "ic-nervous-system-proxied-canister-calls-tracker" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-base-types", ] @@ -2944,11 +2970,11 @@ dependencies = [ [[package]] name = "ic-nervous-system-root" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "dfn_core", - "ic-cdk", + "ic-cdk 0.16.0", "ic-crypto-sha2", "ic-management-canister-types", "ic-nervous-system-clients", @@ -2960,25 +2986,38 @@ dependencies = [ [[package]] name = "ic-nervous-system-runtime" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", "dfn_candid", "dfn_core", "ic-base-types", - "ic-cdk", + "ic-cdk 0.16.0", ] [[package]] name = "ic-nervous-system-string" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" + +[[package]] +name = "ic-nervous-system-temporary" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" + +[[package]] +name = "ic-nervous-system-timestamp" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "time", +] [[package]] name = "ic-neurons-fund" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-nervous-system-common", "lazy_static", @@ -2991,7 +3030,7 @@ dependencies = [ [[package]] name = "ic-nns-common" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "comparable", @@ -3008,23 +3047,25 @@ dependencies = [ "lazy_static", "num-traits", "on_wire", - "prost 0.12.4", + "prost", "serde", - "sha2 0.9.9", + "serde_bytes", + "sha2 0.10.8", ] [[package]] name = "ic-nns-constants" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-base-types", + "maplit", ] [[package]] name = "ic-nns-governance" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "build-info", @@ -3034,28 +3075,38 @@ dependencies = [ "comparable", "csv", "cycles-minting-canister", - "dfn_candid", - "dfn_core", "dfn_http_metrics", - "dfn_protobuf", "dyn-clone", + "futures", "ic-base-types", + "ic-canisters-http-types", + "ic-cdk 0.16.0", + "ic-cdk-macros 0.9.0", + "ic-cdk-timers 0.7.0", "ic-crypto-getrandom-for-wasm", "ic-crypto-sha2", "ic-ledger-core", + "ic-management-canister-types", "ic-metrics-encoder", + "ic-nervous-system-canisters", "ic-nervous-system-clients", "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", "ic-nervous-system-common-test-keys", "ic-nervous-system-governance", + "ic-nervous-system-linear-map", + "ic-nervous-system-long-message", "ic-nervous-system-proto", "ic-nervous-system-root", "ic-nervous-system-runtime", + "ic-nervous-system-temporary", "ic-neurons-fund", "ic-nns-common", "ic-nns-constants", + "ic-nns-governance-api", + "ic-nns-governance-init", "ic-nns-gtc-accounts", + "ic-nns-handler-root-interface", "ic-protobuf", "ic-sns-init", "ic-sns-root", @@ -3063,41 +3114,89 @@ dependencies = [ "ic-sns-wasm", "ic-stable-structures", "ic-types", + "ic-utils", "icp-ledger", "itertools 0.12.1", "lazy_static", "maplit", - "mockall 0.11.4", + "mockall 0.13.1", "num-traits", "on_wire", "pretty_assertions", - "prost 0.12.4", + "prometheus-parse", + "prost", "rand", "rand_chacha", "registry-canister", "rust_decimal", "rust_decimal_macros", "serde", + "serde_bytes", "serde_json", "strum", "strum_macros", ] +[[package]] +name = "ic-nns-governance-api" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "bytes", + "candid", + "comparable", + "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", + "strum", + "strum_macros", +] + +[[package]] +name = "ic-nns-governance-init" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +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", + "icp-ledger", + "rand", + "rand_chacha", +] + [[package]] name = "ic-nns-gtc-accounts" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" [[package]] name = "ic-nns-handler-root-interface" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", - "dfn_candid", - "dfn_core", "ic-base-types", + "ic-cdk 0.16.0", "ic-nervous-system-clients", "ic-nns-constants", "serde", @@ -3106,22 +3205,32 @@ dependencies = [ [[package]] name = "ic-protobuf" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "bincode", "candid", "erased-serde", - "maplit", - "prost 0.12.4", + "prost", "serde", "serde_json", "slog", ] +[[package]] +name = "ic-registry-canister-api" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "candid", + "ic-base-types", + "serde", + "thiserror 2.0.11", +] + [[package]] name = "ic-registry-keys" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-base-types", @@ -3130,10 +3239,19 @@ dependencies = [ "serde", ] +[[package]] +name = "ic-registry-node-provider-rewards" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "ic-base-types", + "ic-protobuf", +] + [[package]] name = "ic-registry-routing-table" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-base-types", @@ -3144,7 +3262,7 @@ dependencies = [ [[package]] name = "ic-registry-subnet-features" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-management-canister-types", @@ -3155,7 +3273,7 @@ dependencies = [ [[package]] name = "ic-registry-subnet-type" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-protobuf", @@ -3167,19 +3285,20 @@ dependencies = [ [[package]] name = "ic-registry-transport" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "ic-base-types", "ic-protobuf", - "prost 0.12.4", + "prost", "serde", ] [[package]] name = "ic-representation-independent-hash" -version = "2.5.0" -source = "git+https://github.com/dfinity/response-verification#600b3d5339381bbfe3454ce870a04afa79005c3d" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3643f12824280580d31e47d380f1be23abee29944a1430c3ed22b164ac8e68db" dependencies = [ "leb128", "sha2 0.10.8", @@ -3188,53 +3307,87 @@ dependencies = [ [[package]] name = "ic-sns-governance" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "base64 0.13.1", "build-info", "build-info-build", "candid", - "clap 3.2.25", + "clap", "comparable", - "dfn_candid", - "dfn_core", + "futures", "hex", "ic-base-types", "ic-canister-log", "ic-canister-profiler", "ic-canisters-http-types", + "ic-cdk 0.16.0", + "ic-cdk-macros 0.9.0", + "ic-cdk-timers 0.7.0", "ic-crypto-sha2", "ic-icrc1-ledger", "ic-ledger-core", "ic-management-canister-types", "ic-metrics-encoder", + "ic-nervous-system-canisters", "ic-nervous-system-clients", "ic-nervous-system-collections-union-multi-map", "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", + "ic-nervous-system-common-validation", "ic-nervous-system-governance", + "ic-nervous-system-linear-map", + "ic-nervous-system-lock", "ic-nervous-system-proto", "ic-nervous-system-root", "ic-nervous-system-runtime", + "ic-nervous-system-timestamp", "ic-nns-constants", "ic-protobuf", + "ic-sns-governance-api", "ic-sns-governance-proposal-criticality", + "ic-sns-governance-proposals-amount-total-limit", "ic-sns-governance-token-valuation", - "ic-sns-governance-treasury-transfer-limit", + "ic-utils", "icp-ledger", "icrc-ledger-client", "icrc-ledger-types", "lazy_static", "maplit", "num-traits", - "prost 0.12.4", + "prost", "prost-build", "rand", "rand_chacha", "rust_decimal", "rust_decimal_macros", "serde", + "serde_bytes", + "strum", + "strum_macros", +] + +[[package]] +name = "ic-sns-governance-api" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "bytes", + "candid", + "clap", + "comparable", + "ic-base-types", + "ic-nervous-system-proto", + "ic-nns-common", + "ic-protobuf", + "ic-types", + "ic-utils", + "icp-ledger", + "itertools 0.12.1", + "prost", + "serde", + "serde_bytes", "strum", "strum_macros", ] @@ -3242,52 +3395,52 @@ dependencies = [ [[package]] name = "ic-sns-governance-proposal-criticality" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "ic-nervous-system-proto", ] +[[package]] +name = "ic-sns-governance-proposals-amount-total-limit" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "ic-sns-governance-token-valuation", + "num-traits", + "rust_decimal", + "rust_decimal_macros", +] + [[package]] name = "ic-sns-governance-token-valuation" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", "cycles-minting-canister", "futures", "ic-base-types", - "ic-cdk", + "ic-cdk 0.16.0", "ic-nervous-system-common", + "ic-nervous-system-initial-supply", "ic-nervous-system-runtime", - "ic-nervous-system-string", "ic-nns-constants", "ic-sns-swap-proto-library", "icrc-ledger-types", - "mockall 0.11.4", - "rust_decimal", -] - -[[package]] -name = "ic-sns-governance-treasury-transfer-limit" -version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" -dependencies = [ - "ic-sns-governance-token-valuation", + "mockall 0.13.1", "num-traits", "rust_decimal", - "rust_decimal_macros", ] [[package]] name = "ic-sns-init" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "base64 0.13.1", "candid", "ic-base-types", - "ic-icrc1-index", "ic-icrc1-index-ng", "ic-icrc1-ledger", "ic-ledger-canister-core", @@ -3295,6 +3448,7 @@ dependencies = [ "ic-nervous-system-common", "ic-nervous-system-proto", "ic-nns-constants", + "ic-nns-governance-api", "ic-sns-governance", "ic-sns-root", "ic-sns-swap", @@ -3302,7 +3456,7 @@ dependencies = [ "isocountry", "lazy_static", "maplit", - "prost 0.12.4", + "prost", "serde", "serde_yaml", ] @@ -3310,7 +3464,7 @@ dependencies = [ [[package]] name = "ic-sns-root" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "build-info", @@ -3321,39 +3475,43 @@ dependencies = [ "ic-base-types", "ic-canister-log", "ic-canisters-http-types", - "ic-cdk", - "ic-cdk-macros", + "ic-cdk 0.16.0", + "ic-cdk-macros 0.9.0", + "ic-cdk-timers 0.7.0", "ic-management-canister-types", "ic-metrics-encoder", "ic-nervous-system-clients", "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", + "ic-nervous-system-proto", "ic-nervous-system-root", "ic-nervous-system-runtime", "ic-sns-swap", "icrc-ledger-types", - "prost 0.12.4", + "prost", "serde", ] [[package]] name = "ic-sns-swap" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "build-info", "build-info-build", "candid", "comparable", - "dfn_candid", - "dfn_core", "hex", "ic-base-types", "ic-canister-log", "ic-canisters-http-types", + "ic-cdk 0.16.0", + "ic-cdk-macros 0.9.0", + "ic-cdk-timers 0.7.0", "ic-ledger-core", "ic-metrics-encoder", + "ic-nervous-system-canisters", "ic-nervous-system-clients", "ic-nervous-system-common", "ic-nervous-system-proto", @@ -3361,33 +3519,38 @@ dependencies = [ "ic-neurons-fund", "ic-sns-governance", "ic-stable-structures", + "ic-utils", "icp-ledger", "icrc-ledger-types", "itertools 0.12.1", "lazy_static", "maplit", - "prost 0.12.4", + "prost", "rust_decimal", + "rust_decimal_macros", "serde", + "serde_bytes", ] [[package]] name = "ic-sns-swap-proto-library" version = "0.0.1" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "comparable", "ic-base-types", "ic-nervous-system-proto", - "prost 0.12.4", + "ic-utils", + "prost", "serde", + "serde_bytes", ] [[package]] name = "ic-sns-wasm" version = "1.0.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", @@ -3397,7 +3560,7 @@ dependencies = [ "futures", "hex", "ic-base-types", - "ic-cdk", + "ic-cdk 0.16.0", "ic-crypto-sha2", "ic-management-canister-types", "ic-metrics-encoder", @@ -3411,65 +3574,69 @@ dependencies = [ "ic-sns-init", "ic-sns-root", "ic-types", + "ic-utils", + "ic-wasm", "icrc-ledger-types", "maplit", - "prost 0.12.4", + "prost", "serde", + "serde_bytes", "serde_json", ] [[package]] name = "ic-stable-structures" -version = "0.6.4" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e2282054c8ddf0cb2a7abf5c174c373917b4345c9a096ae4aa7f7185cdcdc7" +checksum = "b492c5a16455ae78623eaa12ead96dda6c69a83c535b1b00789f19b381c8a24c" dependencies = [ "ic_principal", ] [[package]] name = "ic-transport-types" -version = "0.39.0" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90400f5f1371fda054a07e23717d38813f15093e193b8f21a36fd3e2c62a7179" +checksum = "21e2418868dd5857d2a5bac3f1cb6de1aecf2316d380997ef842aec3d8a79d4e" dependencies = [ "candid", "hex", - "ic-certification 2.6.0", + "ic-certification", "leb128", "serde", "serde_bytes", "serde_cbor", "serde_repr", "sha2 0.10.8", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "ic-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "base64 0.13.1", "bincode", "candid", "chrono", - "derive_more 0.99.8-alpha.0", "hex", "ic-base-types", - "ic-btc-types-internal", - "ic-constants", + "ic-btc-replica-types", "ic-crypto-internal-types", "ic-crypto-sha2", "ic-crypto-tree-hash", "ic-error-types", + "ic-limits", "ic-management-canister-types", "ic-protobuf", "ic-utils", + "ic-validate-eq", + "ic-validate-eq-derive", "maplit", "once_cell", "phantom_newtype", - "prost 0.12.4", + "prost", "serde", "serde_bytes", "serde_cbor", @@ -3477,19 +3644,37 @@ dependencies = [ "serde_with", "strum", "strum_macros", - "thiserror", + "thiserror 2.0.11", "thousands", ] [[package]] name = "ic-utils" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "hex", - "prost 0.12.4", "scoped_threadpool", "serde", + "serde_bytes", +] + +[[package]] +name = "ic-validate-eq" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "ic-validate-eq-derive", +] + +[[package]] +name = "ic-validate-eq-derive" +version = "0.9.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -3499,13 +3684,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d420b25c0091059f6c3c23a21427a81915e6e0aca3b79e0d403ed767f286a3b9" dependencies = [ "hex", - "ic_bls12_381 0.10.0", + "ic_bls12_381", "lazy_static", - "pairing 0.23.0", + "pairing", "rand", "sha2 0.10.8", ] +[[package]] +name = "ic-wasm" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fabaeecfe37f24b433c62489242fc54503d98d4cc8d0f9ef7544dfdfc0ddcb" +dependencies = [ + "anyhow", + "candid", + "clap", + "libflate", + "rustc-demangle", + "serde", + "serde_json", + "thiserror 1.0.69", + "walrus", +] + [[package]] name = "ic-xrc-types" version = "1.2.0" @@ -3529,19 +3731,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a54b5297861c651551676e8c43df805dad175cc33bc97dbd992edbbb85dcbcdf" [[package]] -name = "ic_bls12_381" -version = "0.8.0" +name = "ic0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c682cb199cd8fcb582a6023325d571a6464edda26c8063fe04b6f6082a1a363c" -dependencies = [ - "digest 0.9.0", - "ff 0.12.1", - "group 0.12.1", - "pairing 0.22.0", - "rand_core 0.6.4", - "subtle", - "zeroize", -] +checksum = "8de254dd67bbd58073e23dc1c8553ba12fa1dc610a19de94ad2bbcd0460c067f" [[package]] name = "ic_bls12_381" @@ -3550,11 +3743,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22c65787944f32af084dffd0c68c1e544237b76e215654ddea8cd9f527dd8b69" dependencies = [ "digest 0.10.7", - "ff 0.13.0", - "group 0.13.0", - "pairing 0.23.0", - "rand_core 0.6.4", + "ff", + "group", + "pairing", + "rand_core", "subtle", + "zeroize", ] [[package]] @@ -3568,13 +3762,13 @@ dependencies = [ "data-encoding", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "icp-ledger" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", "comparable", @@ -3584,16 +3778,16 @@ dependencies = [ "dfn_protobuf", "hex", "ic-base-types", + "ic-cdk 0.16.0", "ic-crypto-sha2", "ic-ledger-canister-core", "ic-ledger-core", "ic-ledger-hash-of", + "ic-stable-structures", "icrc-ledger-types", "lazy_static", - "num-traits", "on_wire", - "prost 0.12.4", - "prost-derive 0.12.4", + "prost", "serde", "serde_bytes", "serde_cbor", @@ -3601,10 +3795,21 @@ dependencies = [ "strum_macros", ] +[[package]] +name = "icrc-cbor" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" +dependencies = [ + "candid", + "minicbor", + "num-bigint", + "num-traits", +] + [[package]] name = "icrc-ledger-client" version = "0.1.2" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "async-trait", "candid", @@ -3614,20 +3819,151 @@ dependencies = [ [[package]] name = "icrc-ledger-types" -version = "0.1.5" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +version = "0.1.7" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "base32", "candid", "crc32fast", "hex", + "ic-stable-structures", + "icrc-cbor", + "itertools 0.12.1", + "minicbor", "num-bigint", "num-traits", "serde", "serde_bytes", "sha2 0.10.8", + "strum", + "strum_macros", + "time", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "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.96", +] + +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "ident_case" version = "1.0.1" @@ -3636,12 +3972,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -3656,50 +4003,29 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.15.2", + "serde", ] [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" -dependencies = [ - "hermit-abi 0.3.9", - "rustix 0.38.28", - "windows-sys 0.52.0", -] +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is_terminal_polyfill" @@ -3714,16 +4040,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ea1dc4bf0fb4904ba83ffdb98af3d9c325274e92e6e295e4151e86c96363e04" dependencies = [ "serde", - "thiserror", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", + "thiserror 1.0.69", ] [[package]] @@ -3744,18 +4061,28 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -3784,6 +4111,15 @@ dependencies = [ "signature", ] +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -3795,43 +4131,42 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ "ascii-canvas", "bit-set", - "diff", "ena", - "is-terminal", - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop-util", "petgraph", "pico-args", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.5", "string_cache", "term", "tiny-keccak", "unicode-xid", + "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "regex", + "regex-automata", ] [[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 0.5.2", + "spin", ] [[package]] @@ -3842,44 +4177,67 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libflate" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" +dependencies = [ + "adler32", + "core2", + "crc32fast", + "dary_heap", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" +dependencies = [ + "core2", + "hashbrown 0.14.5", + "rle-decode-fast", +] [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.1", + "bitflags", "libc", - "redox_syscall", ] [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] -name = "linux-raw-sys" -version = "0.4.12" +name = "litemap" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -3887,9 +4245,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "3d6ea2a48c204030ee31a7d7fc72c93294c92fe87ecb1789881c9543516e1a0d" dependencies = [ "value-bag", ] @@ -3914,7 +4272,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.6.29", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -3945,9 +4303,21 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "merlin" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core", + "zeroize", +] [[package]] name = "mime" @@ -3955,6 +4325,26 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minicbor" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7005aaf257a59ff4de471a9d5538ec868a21586534fff7f85dd97d4043a6139" +dependencies = [ + "minicbor-derive", +] + +[[package]] +name = "minicbor-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1154809406efdb7982841adb6311b3d095b46f78342dd646736122fe6b19e267" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -3963,77 +4353,75 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys 0.52.0", ] [[package]] name = "mockall" -version = "0.11.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" dependencies = [ "cfg-if", "downcast", "fragile", "lazy_static", - "mockall_derive 0.11.4", - "predicates 2.1.5", + "mockall_derive 0.12.1", + "predicates", "predicates-tree", ] [[package]] name = "mockall" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", "fragile", - "lazy_static", - "mockall_derive 0.12.1", - "predicates 3.0.4", + "mockall_derive 0.13.1", + "predicates", "predicates-tree", ] [[package]] name = "mockall_derive" -version = "0.11.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] name = "mockall_derive" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -4044,9 +4432,9 @@ checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "new_debug_unreachable" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nom" @@ -4058,19 +4446,12 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "normalize-line-endings" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" - [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", "serde", @@ -4101,19 +4482,18 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -4122,27 +4502,28 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "oid-registry" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ "asn1-rs", ] @@ -4150,13 +4531,13 @@ dependencies = [ [[package]] name = "on_wire" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -4175,7 +4556,7 @@ dependencies = [ "js-sys", "once_cell", "pin-project-lite", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4186,7 +4567,7 @@ checksum = "6351496aeaa49d7c267fb480678d85d1cd30c5edb20b497c48c56f62a8c14b99" dependencies = [ "async-trait", "bytes", - "http 1.1.0", + "http", "opentelemetry", "reqwest", ] @@ -4199,15 +4580,15 @@ checksum = "29e1f9c8b032d4f635c730c0efcf731d5e2530ea13fa8bef7939ddc8420696bd" dependencies = [ "async-trait", "futures-core", - "http 1.1.0", + "http", "opentelemetry", "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.13.3", + "prost", "reqwest", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4219,7 +4600,7 @@ dependencies = [ "hex", "opentelemetry", "opentelemetry_sdk", - "prost 0.13.3", + "prost", "serde", "tonic", ] @@ -4246,17 +4627,11 @@ dependencies = [ "percent-encoding", "rand", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] -[[package]] -name = "os_str_bytes" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" - [[package]] name = "p256" version = "0.13.2" @@ -4269,35 +4644,26 @@ dependencies = [ "sha2 0.10.8", ] -[[package]] -name = "pairing" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" -dependencies = [ - "group 0.12.1", -] - [[package]] name = "pairing" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" dependencies = [ - "group 0.13.0", + "group", ] [[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.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -4305,22 +4671,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets", ] [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pem" @@ -4337,7 +4703,7 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "serde", ] @@ -4358,20 +4724,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.10" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.11", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.10" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -4379,22 +4745,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.10" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "pest_meta" -version = "2.7.10" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", @@ -4403,20 +4769,21 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.7.0", ] [[package]] name = "phantom_newtype" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "candid", + "num-traits", "serde", "slog", ] @@ -4438,29 +4805,29 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.6" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.6" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -4470,12 +4837,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand", "futures-io", ] @@ -4491,38 +4858,23 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "polling" -version = "2.8.0" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" -version = "3.3.1" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", - "rustix 0.38.28", + "rustix", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4533,9 +4885,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -4545,40 +4900,25 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "predicates" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" -dependencies = [ - "difflib", - "float-cmp", - "itertools 0.10.5", - "normalize-line-endings", - "predicates-core", - "regex", -] - -[[package]] -name = "predicates" -version = "3.0.4" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ "anstyle", - "itertools 0.11.0", "predicates-core", ] [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" dependencies = [ "predicates-core", "termtree", @@ -4597,22 +4937,22 @@ dependencies = [ [[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.17" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +checksum = "483f8c21f64f3ea09fe0f30f5d48c3e8eefe5dac9129f0075f76593b4c1da705" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -4636,9 +4976,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ "toml_edit", ] @@ -4675,94 +5015,82 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] -name = "prost" -version = "0.12.4" +name = "prometheus-parse" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" +checksum = "811031bea65e5a401fb2e1f37d802cca6601e204ac463809a3189352d13b78a5" dependencies = [ - "bytes", - "prost-derive 0.12.4", + "chrono", + "itertools 0.12.1", + "once_cell", + "regex", ] [[package]] name = "prost" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "prost-derive 0.13.3", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.12.4" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1" +checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.12.1", + "itertools 0.13.0", "log", "multimap", "once_cell", "petgraph", "prettyplease", - "prost 0.12.4", + "prost", "prost-types", "regex", - "syn 2.0.48", + "syn 2.0.96", "tempfile", ] [[package]] name = "prost-derive" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48" -dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "prost-derive" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "prost-types" -version = "0.12.4" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ - "prost 0.12.4", + "prost", ] [[package]] name = "psm" -version = "0.1.21" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ "cc", ] @@ -4789,9 +5117,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", @@ -4799,47 +5127,51 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.5.7", - "thiserror", + "socket2", + "thiserror 2.0.11", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring", "rustc-hash", "rustls", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.11", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ + "cfg_aliases", "libc", "once_cell", - "socket2 0.5.7", + "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -4858,7 +5190,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -4868,16 +5200,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -4886,7 +5209,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", + "getrandom", ] [[package]] @@ -4897,45 +5220,45 @@ checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.11", + "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.2" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", ] [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", ] [[package]] @@ -4946,31 +5269,24 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "registry-canister" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?tag=release-2024-02-21_23-01#2e921c9adfc71f3edc96a9eb5d85fc742e7d8a9f" +source = "git+https://github.com/dfinity/ic?tag=release-2025-01-09_03-19-base#aa705aaa621c2e0d4f146f3a1de801edcb0fa0d5" dependencies = [ "build-info", "build-info-build", "candid", - "cycles-minting-canister", "dfn_candid", "dfn_core", "dfn_http_metrics", "futures", "ic-base-types", - "ic-cdk", + "ic-cdk 0.16.0", "ic-certified-map", "ic-crypto-node-key-validation", "ic-crypto-sha2", @@ -4978,31 +5294,36 @@ dependencies = [ "ic-crypto-utils-ni-dkg", "ic-management-canister-types", "ic-metrics-encoder", + "ic-nervous-system-canisters", "ic-nervous-system-common", "ic-nervous-system-common-build-metadata", + "ic-nervous-system-string", "ic-nns-common", "ic-nns-constants", "ic-protobuf", + "ic-registry-canister-api", "ic-registry-keys", + "ic-registry-node-provider-rewards", "ic-registry-routing-table", "ic-registry-subnet-features", "ic-registry-subnet-type", "ic-registry-transport", "ic-types", + "idna", "ipnet", "lazy_static", "leb128", "on_wire", - "prost 0.12.4", + "prost", "serde", "url", ] [[package]] name = "relative-path" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "rend" @@ -5015,16 +5336,16 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "bytes", "futures-channel", "futures-core", "futures-util", - "http 1.1.0", + "http", "http-body", "http-body-util", "hyper", @@ -5048,6 +5369,7 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-util", + "tower", "tower-service", "url", "wasm-bindgen", @@ -5055,7 +5377,7 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots", - "winreg", + "windows-registry", ] [[package]] @@ -5076,18 +5398,18 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.11", + "getrandom", "libc", - "spin 0.9.8", + "spin", "untrusted", "windows-sys 0.52.0", ] [[package]] name = "rkyv" -version = "0.7.44" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", @@ -5103,15 +5425,21 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.44" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + [[package]] name = "rstest" version = "0.18.2" @@ -5137,17 +5465,17 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.48", + "syn 2.0.96", "unicode-ident", ] [[package]] name = "rust_decimal" -version = "1.35.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a" +checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "borsh", "bytes", "num-traits", @@ -5159,9 +5487,9 @@ dependencies = [ [[package]] name = "rust_decimal_macros" -version = "1.34.2" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e418701588729bef95e7a655f2b483ad64bb97c46e8e79fde83efd92aaab6d82" +checksum = "da991f231869f34268415a49724c6578e740ad697ba0999199d6f22b3949332c" dependencies = [ "quote", "rust_decimal", @@ -5175,15 +5503,15 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[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", ] @@ -5199,36 +5527,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.28" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.4.1", + "bitflags", "errno", "libc", - "linux-raw-sys 0.4.12", - "windows-sys 0.52.0", + "linux-raw-sys", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "once_cell", "ring", @@ -5249,9 +5563,12 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -5266,15 +5583,24 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] [[package]] name = "scoped_threadpool" @@ -5310,27 +5636,27 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.195" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] @@ -5347,22 +5673,23 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -5375,7 +5702,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -5389,6 +5716,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "serde_tokenstream" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64060d864397305347a78851c51588fd283767e7e7589829e8121d65512340f1" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.96", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5425,11 +5764,11 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.30" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.7.0", "itoa", "ryu", "serde", @@ -5482,14 +5821,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core 0.6.4", + "rand_core", ] [[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" @@ -5499,7 +5838,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -5544,29 +5883,13 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +] [[package]] name = "spin" @@ -5584,17 +5907,35 @@ dependencies = [ "der", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "stacker" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" dependencies = [ "cc", "cfg-if", "libc", "psm", - "winapi", + "windows-sys 0.59.0", +] + +[[package]] +name = "stop-token" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af91f480ee899ab2d9f8435bfdfc14d08a5754bd9d3fef1f1a1c23336aad6c8b" +dependencies = [ + "async-channel 1.9.0", + "cfg-if", + "futures-core", + "pin-project-lite", ] [[package]] @@ -5624,31 +5965,31 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subtle-ng" @@ -5669,9 +6010,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -5679,33 +6020,23 @@ dependencies = [ ] [[package]] -name = "syn_derive" -version = "0.1.8" +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.48", + "futures-core", ] -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" - [[package]] name = "synstructure" -version = "0.12.6" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "unicode-xid", + "syn 2.0.96", ] [[package]] @@ -5716,15 +6047,16 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "redox_syscall", - "rustix 0.38.28", - "windows-sys 0.52.0", + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] [[package]] @@ -5740,43 +6072,57 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[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 = "textwrap" -version = "0.16.1" +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] [[package]] name = "thiserror" -version = "1.0.56" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -5787,9 +6133,9 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -5808,9 +6154,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -5825,11 +6171,21 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -5842,9 +6198,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -5853,38 +6209,37 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2", "tokio-macros", "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -5893,9 +6248,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -5906,17 +6261,17 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.7.0", "toml_datetime", "winnow", ] @@ -5928,14 +6283,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-trait", - "base64 0.22.0", + "base64 0.22.1", "bytes", - "http 1.1.0", + "http", "http-body", "http-body-util", "percent-encoding", "pin-project", - "prost 0.13.3", + "prost", "tokio-stream", "tower-layer", "tower-service", @@ -5944,14 +6299,14 @@ dependencies = [ [[package]] name = "tower" -version = "0.4.13" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "pin-project", "pin-project-lite", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -5971,9 +6326,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -5982,20 +6337,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -6020,48 +6375,33 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[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" @@ -6077,13 +6417,14 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -6092,12 +6433,24 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -6106,30 +6459,62 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.6.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4" dependencies = [ "serde", ] [[package]] name = "value-bag" -version = "1.4.3" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ce5bb364b23e66b528d03168df78b38c0f7b6fe17386928f29d5ab2e7cb2f7" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[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 = "waker-fn" -version = "1.1.1" +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "walrus" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501ace8ec3492754a9b3c4b59eac7159ceff8414f9e43a05029fe8ef43b9218f" +dependencies = [ + "anyhow", + "gimli 0.26.2", + "id-arena", + "leb128", + "log", + "walrus-macro", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "walrus-macro" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "want" @@ -6140,12 +6525,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -6154,46 +6533,47 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6201,28 +6581,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" + +[[package]] +name = "wasm-encoder" +version = "0.212.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501940df4418b8929eb6d52f1aade1fdd15a5b86c92453cb696e3c906bd3fc33" +dependencies = [ + "leb128", +] [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -6231,11 +6620,35 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasmparser" +version = "0.212.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d28bc49ba1e5c5b61ffa7a2eace10820443c4b7d1c0b144109261d14570fdf8" +dependencies = [ + "ahash 0.8.11", + "bitflags", + "hashbrown 0.14.5", + "indexmap 2.7.0", + "semver", + "serde", +] + [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -6243,9 +6656,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -6268,11 +6681,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -6287,159 +6700,141 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-registry" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-targets 0.48.5", + "windows-result", + "windows-strings", + "windows-targets", ] [[package]] -name = "windows-sys" -version = "0.52.0" +name = "windows-result" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-strings" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-result", + "windows-targets", ] [[package]] -name = "windows-targets" +name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows-targets", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +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", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "windows_i686_msvc" -version = "0.48.5" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] [[package]] -name = "winreg" -version = "0.52.0" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wyz" @@ -6452,19 +6847,18 @@ dependencies = [ [[package]] name = "x509-parser" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ "asn1-rs", - "base64 0.13.1", "data-encoding", "der-parser", "lazy_static", "nom", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -6483,12 +6877,43 @@ 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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] @@ -6500,14 +6925,35 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -6520,5 +6966,27 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index 2cc7950a..ea632900 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,8 +19,8 @@ ic-cdk = "0.12" ic-cdk-macros = "0.8" ic-cdk-timers = "0.6" ic-stable-structures = "0.6" -ic-nns-governance = { git = "https://github.com/dfinity/ic", tag = "release-2024-02-21_23-01", version = "0.9.0" } -ic-nns-common = { git = "https://github.com/dfinity/ic", tag = "release-2024-02-21_23-01", version = "0.9.0" } +ic-nns-governance = { git = "https://github.com/dfinity/ic", tag = "release-2025-01-09_03-19-base" } +ic-nns-common = { git = "https://github.com/dfinity/ic", tag = "release-2025-01-09_03-19-base" } candid = "0.10" candid_parser = "0.1" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 5a3bd5b0..af431bcd 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.75.0" +channel = "1.84.0" components = ["rustfmt", "clippy"] targets = ["wasm32-unknown-unknown"] profile = "minimal" diff --git a/src/backend/impl/Cargo.toml b/src/backend/impl/Cargo.toml index 82931808..31719468 100644 --- a/src/backend/impl/Cargo.toml +++ b/src/backend/impl/Cargo.toml @@ -20,9 +20,7 @@ ic-cdk-timers.workspace = true ic-stable-structures.workspace = true ic-nns-governance.workspace = true ic-nns-common.workspace = true -ic-http-certification = { git = "https://github.com/dfinity/response-verification", features = [ - "serde", -] } +ic-http-certification = "3" candid.workspace = true candid_parser.workspace = true @@ -35,8 +33,7 @@ hex = "0.4" lazy_static = "1.4" base64.workspace = true -rand = { version = "0.8", default-features = false } -rand_chacha = { version = "0.3", default-features = false } +fastrand = "2" [dev-dependencies] mockall.workspace = true diff --git a/src/backend/impl/src/controllers/http_controller.rs b/src/backend/impl/src/controllers/http_controller.rs index 9e254ffb..9c867716 100644 --- a/src/backend/impl/src/controllers/http_controller.rs +++ b/src/backend/impl/src/controllers/http_controller.rs @@ -35,7 +35,7 @@ impl HttpController { } } - fn handle_http_request(&self, req: HttpRequest) -> HttpResponse { + fn handle_http_request(&self, req: HttpRequest) -> HttpResponse<'static> { let req_path = req.get_path().expect("Missing path in request"); if req_path.starts_with(IMAGES_BASE_PATH) { diff --git a/src/backend/impl/src/controllers/init_controller.rs b/src/backend/impl/src/controllers/init_controller.rs index 277ee46e..c7ce3b8e 100644 --- a/src/backend/impl/src/controllers/init_controller.rs +++ b/src/backend/impl/src/controllers/init_controller.rs @@ -15,7 +15,7 @@ fn init() { let calling_principal = caller(); set_timer(Duration::from_secs(0), move || { - spawn(init_admin(calling_principal)) + init_admin(calling_principal) }); InitController::default().init_http_certification(); @@ -28,7 +28,7 @@ fn post_upgrade() { let calling_principal = caller(); set_timer(Duration::from_secs(0), move || { - spawn(init_admin(calling_principal)) + init_admin(calling_principal) }); InitController::default().init_http_certification(); @@ -36,8 +36,8 @@ fn post_upgrade() { jobs::start_jobs(); } -async fn init_admin(calling_principal: Principal) { - if let Err(err) = InitController::default().init(calling_principal).await { +fn init_admin(calling_principal: Principal) { + if let Err(err) = InitController::default().init(calling_principal) { ic_cdk::trap(&format!("Failed to initialize canister: {:?}", err)); } } @@ -73,8 +73,8 @@ impl InitController { } } - async fn init(&self, calling_principal: Principal) -> Result<(), ApiError> { - self.init_service.init(calling_principal).await + fn init(&self, calling_principal: Principal) -> Result<(), ApiError> { + self.init_service.init(calling_principal) } fn init_http_certification(&self) { diff --git a/src/backend/impl/src/controllers/proposal_review_commit_controller.rs b/src/backend/impl/src/controllers/proposal_review_commit_controller.rs index 418b0c51..e033aea0 100644 --- a/src/backend/impl/src/controllers/proposal_review_commit_controller.rs +++ b/src/backend/impl/src/controllers/proposal_review_commit_controller.rs @@ -19,22 +19,19 @@ use crate::{ #[update] #[log_errors(crate::services::log_update_call_error)] -async fn create_proposal_review_commit( +fn create_proposal_review_commit( request: CreateProposalReviewCommitRequest, ) -> ApiResult { let calling_principal = caller(); ProposalReviewCommitController::default() .create_proposal_review_commit(calling_principal, request) - .await .into() } #[update] #[log_errors(crate::services::log_update_call_error)] -async fn update_proposal_review_commit( - request: UpdateProposalReviewCommitRequest, -) -> ApiResult<()> { +fn update_proposal_review_commit(request: UpdateProposalReviewCommitRequest) -> ApiResult<()> { let calling_principal = caller(); ProposalReviewCommitController::default() @@ -44,9 +41,7 @@ async fn update_proposal_review_commit( #[update] #[log_errors(crate::services::log_update_call_error)] -async fn delete_proposal_review_commit( - request: DeleteProposalReviewCommitRequest, -) -> ApiResult<()> { +fn delete_proposal_review_commit(request: DeleteProposalReviewCommitRequest) -> ApiResult<()> { let calling_principal = caller(); ProposalReviewCommitController::default() @@ -89,7 +84,7 @@ impl ProposalReviewComm } } - async fn create_proposal_review_commit( + fn create_proposal_review_commit( &self, calling_principal: Principal, request: CreateProposalReviewCommitRequest, @@ -99,7 +94,6 @@ impl ProposalReviewComm self.proposal_review_commit_service .create_proposal_review_commit(calling_principal, request) - .await } fn update_proposal_review_commit( @@ -138,7 +132,7 @@ mod tests { use rstest::*; #[rstest] - async fn create_proposal_review_commit() { + fn create_proposal_review_commit() { let calling_principal = fixtures::principal_a(); let request = CreateProposalReviewCommitRequest { proposal_review_id: "proposal_review_id".to_string(), @@ -172,14 +166,13 @@ mod tests { let result = controller .create_proposal_review_commit(calling_principal, request) - .await .unwrap(); assert_eq!(result, response); } #[rstest] - async fn create_proposal_review_commit_unauthorized() { + fn create_proposal_review_commit_unauthorized() { let calling_principal = fixtures::principal_a(); let request = CreateProposalReviewCommitRequest { proposal_review_id: "proposal_review_id".to_string(), @@ -209,7 +202,6 @@ mod tests { let result = controller .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!(result, error); diff --git a/src/backend/impl/src/controllers/proposal_review_controller.rs b/src/backend/impl/src/controllers/proposal_review_controller.rs index 316b39a9..c35f11a0 100644 --- a/src/backend/impl/src/controllers/proposal_review_controller.rs +++ b/src/backend/impl/src/controllers/proposal_review_controller.rs @@ -22,14 +22,13 @@ use ic_cdk::*; #[update] #[log_errors(crate::services::log_update_call_error)] -async fn create_proposal_review( +fn create_proposal_review( request: CreateProposalReviewRequest, ) -> ApiResult { let calling_principal = caller(); ProposalReviewController::default() .create_proposal_review(calling_principal, request) - .await .into() } @@ -65,14 +64,13 @@ fn get_proposal_review(request: GetProposalReviewRequest) -> ApiResult ApiResult { let calling_principal = caller(); ProposalReviewController::default() .create_proposal_review_image(calling_principal, request) - .await .into() } @@ -142,7 +140,7 @@ impl ProposalReviewController } } - async fn create_proposal_review( + fn create_proposal_review( &self, calling_principal: Principal, request: CreateProposalReviewRequest, @@ -152,8 +150,7 @@ impl ProposalReviewController let proposal_review = self .proposal_review_service - .create_proposal_review(calling_principal, request) - .await?; + .create_proposal_review(calling_principal, request)?; Ok(proposal_review) } @@ -188,7 +185,7 @@ impl ProposalReviewController .get_proposal_review(calling_principal, request) } - async fn create_proposal_review_image( + fn create_proposal_review_image( &self, calling_principal: Principal, request: CreateProposalReviewImageRequest, @@ -198,7 +195,6 @@ impl ProposalReviewController self.proposal_review_service .create_proposal_review_image(calling_principal, request) - .await } fn get_my_proposal_review( @@ -254,7 +250,7 @@ mod tests { use rstest::*; #[rstest] - async fn create_proposal_review() { + fn create_proposal_review() { let calling_principal = fixtures::principal_a(); let request = CreateProposalReviewRequest { proposal_id: "proposal_id".to_string(), @@ -289,14 +285,13 @@ mod tests { let result = controller .create_proposal_review(calling_principal, request) - .await .unwrap(); assert_eq!(result, response); } #[rstest] - async fn create_proposal_review_unauthorized() { + fn create_proposal_review_unauthorized() { let calling_principal = fixtures::principal_a(); let request = CreateProposalReviewRequest { proposal_id: "proposal_id".to_string(), @@ -328,7 +323,6 @@ mod tests { let result = controller .create_proposal_review(calling_principal, request) - .await .unwrap_err(); assert_eq!(result, error); @@ -409,7 +403,7 @@ mod tests { } #[rstest] - async fn create_proposal_review_image() { + fn create_proposal_review_image() { let calling_principal = fixtures::principal_a(); let request = CreateProposalReviewImageRequest { proposal_id: fixtures::proposal_id().to_string(), @@ -441,14 +435,13 @@ mod tests { let result = controller .create_proposal_review_image(calling_principal, request) - .await .unwrap(); assert_eq!(result, response); } #[rstest] - async fn create_proposal_review_image_unauthorized() { + fn create_proposal_review_image_unauthorized() { let calling_principal = fixtures::principal_a(); let request = CreateProposalReviewImageRequest { proposal_id: fixtures::proposal_id().to_string(), @@ -479,14 +472,13 @@ mod tests { let result = controller .create_proposal_review_image(calling_principal, request) - .await .unwrap_err(); assert_eq!(result, error); } #[rstest] - async fn delete_proposal_review_image() { + fn delete_proposal_review_image() { let calling_principal = fixtures::principal_a(); let request = DeleteProposalReviewImageRequest { proposal_id: fixtures::proposal_id().to_string(), @@ -518,7 +510,7 @@ mod tests { } #[rstest] - async fn delete_proposal_review_image_unauthorized() { + fn delete_proposal_review_image_unauthorized() { let calling_principal = fixtures::principal_a(); let request = DeleteProposalReviewImageRequest { proposal_id: fixtures::proposal_id().to_string(), diff --git a/src/backend/impl/src/controllers/user_profile_controller.rs b/src/backend/impl/src/controllers/user_profile_controller.rs index ac885eb7..50085e34 100644 --- a/src/backend/impl/src/controllers/user_profile_controller.rs +++ b/src/backend/impl/src/controllers/user_profile_controller.rs @@ -40,12 +40,11 @@ fn get_my_user_profile_history() -> ApiResult { #[update] #[log_errors(crate::services::log_update_call_error)] -async fn create_my_user_profile() -> ApiResult { +fn create_my_user_profile() -> ApiResult { let calling_principal = caller(); UserProfileController::default() .create_my_user_profile(calling_principal) - .await .into() } @@ -61,7 +60,7 @@ fn update_my_user_profile(request: UpdateMyUserProfileRequest) -> ApiResult<()> #[update] #[log_errors(crate::services::log_update_call_error)] -async fn update_user_profile(request: UpdateUserProfileRequest) -> ApiResult<()> { +fn update_user_profile(request: UpdateUserProfileRequest) -> ApiResult<()> { let calling_principal = caller(); UserProfileController::default() @@ -130,7 +129,7 @@ impl UserProfileController Ok(profile_history) } - async fn create_my_user_profile( + fn create_my_user_profile( &self, calling_principal: Principal, ) -> Result { @@ -139,8 +138,7 @@ impl UserProfileController let profile = self .user_profile_service - .create_my_user_profile(calling_principal) - .await?; + .create_my_user_profile(calling_principal)?; Ok(profile) } @@ -369,7 +367,7 @@ mod tests { } #[rstest] - async fn create_my_user_profile() { + fn create_my_user_profile() { let calling_principal = fixtures::principal_a(); let profile = CreateMyUserProfileResponse { id: "id".to_string(), @@ -396,14 +394,13 @@ mod tests { let result = controller .create_my_user_profile(calling_principal) - .await .unwrap(); assert_eq!(result, profile); } #[rstest] - async fn create_my_user_profile_anonymous_principal() { + fn create_my_user_profile_anonymous_principal() { let calling_principal = Principal::anonymous(); let mut access_control_service_mock = MockAccessControlService::new(); @@ -420,7 +417,6 @@ mod tests { let result = controller .create_my_user_profile(calling_principal) - .await .unwrap_err(); assert_eq!(result, ApiError::unauthenticated()); diff --git a/src/backend/impl/src/helpers/http.rs b/src/backend/impl/src/helpers/http.rs index be867e6c..2605a2a4 100644 --- a/src/backend/impl/src/helpers/http.rs +++ b/src/backend/impl/src/helpers/http.rs @@ -4,17 +4,16 @@ use super::{IC_CERTIFICATE_EXPRESSION_HEADER, RESPONSE_ONLY_CEL_EXPR}; pub const NOT_FOUND_PATH: &str = ""; -pub fn response_404() -> HttpResponse { - HttpResponse { - status_code: 404, - headers: vec![ +pub fn response_404() -> HttpResponse<'static> { + HttpResponse::not_found( + b"Not found", + vec![ ("Content-Type".to_string(), "text/plain".to_string()), ( IC_CERTIFICATE_EXPRESSION_HEADER.to_string(), RESPONSE_ONLY_CEL_EXPR.to_string(), ), ], - body: "Not found".as_bytes().to_vec(), - upgrade: None, - } + ) + .build() } diff --git a/src/backend/impl/src/helpers/image.rs b/src/backend/impl/src/helpers/image.rs index 4424e05f..50226ff1 100644 --- a/src/backend/impl/src/helpers/image.rs +++ b/src/backend/impl/src/helpers/image.rs @@ -4,8 +4,8 @@ use crate::repositories::Image; use super::{IC_CERTIFICATE_EXPRESSION_HEADER, RESPONSE_ONLY_CEL_EXPR}; -pub fn create_image_http_response(image: &Image) -> HttpResponse { - let body = &image.content_bytes; +pub fn create_image_http_response<'a>(image: Image) -> HttpResponse<'a> { + let body = image.content_bytes; let headers = vec![ ("strict-transport-security".to_string(), "max-age=31536000; includeSubDomains".to_string()), ("x-frame-options".to_string(), "DENY".to_string()), @@ -25,10 +25,5 @@ pub fn create_image_http_response(image: &Image) -> HttpResponse { ("content-type".to_string(), image.content_type.clone()), ]; - HttpResponse { - status_code: 200, - headers, - body: body.to_vec(), - upgrade: None, - } + HttpResponse::ok(body, headers).build() } diff --git a/src/backend/impl/src/repositories/certification_repository.rs b/src/backend/impl/src/repositories/certification_repository.rs index ec613b2b..aee76562 100644 --- a/src/backend/impl/src/repositories/certification_repository.rs +++ b/src/backend/impl/src/repositories/certification_repository.rs @@ -10,16 +10,16 @@ use crate::helpers::{cbor_encode, IC_CERTIFICATE_HEADER, NOT_FOUND_PATH, RESPONS #[cfg_attr(test, mockall::automock)] pub trait CertificationRepository { - fn certify_http_response(&self, request_path: &str, res: &HttpResponse); + fn certify_http_response(&self, request_path: &str, res: &HttpResponse<'static>); - fn remove_http_response_certificate(&self, request_path: &str, res: &HttpResponse); + fn remove_http_response_certificate(&self, request_path: &str, res: &HttpResponse<'static>); fn get_certified_http_response( &self, request_path: &str, responding_tree_path: &str, - res: HttpResponse, - ) -> HttpResponse; + res: HttpResponse<'static>, + ) -> HttpResponse<'static>; } pub struct CertificationRepositoryImpl {} @@ -55,8 +55,8 @@ impl CertificationRepository for CertificationRepositoryImpl { &self, request_path: &str, responding_tree_path: &str, - mut res: HttpResponse, - ) -> HttpResponse { + mut res: HttpResponse<'static>, + ) -> HttpResponse<'static> { let res_tree_path = Self::response_tree_path(responding_tree_path); let entry = Self::response_entry(&res_tree_path, &res); @@ -108,7 +108,7 @@ impl CertificationRepositoryImpl { }); let expr_path = cbor_encode(&expr_path); - response.headers.push(( + response.headers_mut().push(( IC_CERTIFICATE_HEADER.to_string(), format!( "certificate=:{}:, tree=:{}:, expr_path=:{}:, version=2", diff --git a/src/backend/impl/src/repositories/image_repository.rs b/src/backend/impl/src/repositories/image_repository.rs index 432f52d9..df04c974 100644 --- a/src/backend/impl/src/repositories/image_repository.rs +++ b/src/backend/impl/src/repositories/image_repository.rs @@ -10,7 +10,7 @@ pub trait ImageRepository { fn get_all_images(&self) -> Vec<(ImageId, Image)>; - async fn create_image(&self, image: Image) -> Result; + fn create_image(&self, image: Image) -> ImageId; fn delete_image(&self, image_id: &ImageId) -> Result; } @@ -32,14 +32,14 @@ impl ImageRepository for ImageRepositoryImpl { STATE.with_borrow(|s| s.images.range(ImageId::min()..).collect()) } - async fn create_image(&self, image: Image) -> Result { - let image_id = ImageId::new().await?; + fn create_image(&self, image: Image) -> ImageId { + let image_id = ImageId::new(); STATE.with_borrow_mut(|s| { s.images.insert(image_id, image.clone()); }); - Ok(image_id) + image_id } fn delete_image(&self, image_id: &ImageId) -> Result { @@ -47,7 +47,7 @@ impl ImageRepository for ImageRepositoryImpl { .with_borrow_mut(|s| s.images.remove(image_id)) .ok_or(ApiError::not_found(&format!( "Image with id {} not found", - image_id.to_string() + image_id ))) } } @@ -86,11 +86,11 @@ mod tests { #[rstest] #[case::image_with_subpath(fixtures::image_with_subpath())] #[case::image_without_subpath(fixtures::image_without_subpath())] - async fn create_and_get_image_by_id(#[case] image: Image) { + fn create_and_get_image_by_id(#[case] image: Image) { STATE.set(ImageRepositoryState::default()); let repository = ImageRepositoryImpl::default(); - let image_id = repository.create_image(image.clone()).await.unwrap(); + let image_id = repository.create_image(image.clone()); let result = repository.get_image_by_id(&image_id); @@ -98,16 +98,13 @@ mod tests { } #[rstest] - async fn delete_image() { + fn delete_image() { STATE.set(ImageRepositoryState::default()); let original_image = fixtures::image_with_subpath(); let repository = ImageRepositoryImpl::default(); - let image_id = repository - .create_image(original_image.clone()) - .await - .unwrap(); + let image_id = repository.create_image(original_image.clone()); let deleted_image = repository.delete_image(&image_id).unwrap(); @@ -120,12 +117,12 @@ mod tests { let result = repository.delete_image(&image_id).unwrap_err(); assert_eq!( result, - ApiError::not_found(&format!("Image with id {} not found", image_id.to_string())) + ApiError::not_found(&format!("Image with id {} not found", image_id)) ); } #[rstest] - async fn get_all_images() { + fn get_all_images() { STATE.set(ImageRepositoryState::default()); let repository = ImageRepositoryImpl::default(); @@ -134,7 +131,7 @@ mod tests { for _ in 0..10 { let image = fixtures::image_with_subpath(); - let image_id = repository.create_image(image.clone()).await.unwrap(); + let image_id = repository.create_image(image.clone()); expected_images.insert(image_id, image); } diff --git a/src/backend/impl/src/repositories/proposal_repository.rs b/src/backend/impl/src/repositories/proposal_repository.rs index 82bb8b8b..414756de 100644 --- a/src/backend/impl/src/repositories/proposal_repository.rs +++ b/src/backend/impl/src/repositories/proposal_repository.rs @@ -26,7 +26,7 @@ pub trait ProposalRepository { state: Option, ) -> Result, ApiError>; - async fn create_proposal(&self, proposal: Proposal) -> Result; + fn create_proposal(&self, proposal: Proposal) -> Result; fn update_proposal(&self, proposal_id: ProposalId, proposal: Proposal) -> Result<(), ApiError>; @@ -121,16 +121,13 @@ impl ProposalRepository for ProposalRepositoryImpl { current_time: DateTime, ) -> Result<(), ApiError> { let proposal = self.get_proposal_by_id(&proposal_id).ok_or_else(|| { - ApiError::not_found(&format!( - "Proposal with Id {} not found", - proposal_id.to_string() - )) + ApiError::not_found(&format!("Proposal with Id {} not found", proposal_id)) })?; if proposal.is_completed() { return Err(ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_id.to_string() + proposal_id ))); } @@ -145,8 +142,8 @@ impl ProposalRepository for ProposalRepositoryImpl { ) } - async fn create_proposal(&self, proposal: Proposal) -> Result { - let proposal_id = ProposalId::new().await?; + fn create_proposal(&self, proposal: Proposal) -> Result { + let proposal_id = ProposalId::new(); let proposal_proposed_at = proposal.proposed_at()?; let proposal_status_key = ProposalStatusTimestampKey::new( proposal.state.into(), @@ -189,10 +186,7 @@ impl ProposalRepository for ProposalRepositoryImpl { fn update_proposal(&self, proposal_id: ProposalId, proposal: Proposal) -> Result<(), ApiError> { let existing_proposal = self.get_proposal_by_id(&proposal_id).ok_or_else(|| { - ApiError::not_found(&format!( - "Proposal with id {} not found", - proposal_id.to_string() - )) + ApiError::not_found(&format!("Proposal with id {} not found", proposal_id)) })?; if existing_proposal.nervous_system.nervous_system_id() @@ -273,11 +267,11 @@ mod tests { #[rstest] #[case::nns_proposal(fixtures::nns_replica_version_management_proposal(None, None))] - async fn create_and_get_proposal_by_id(#[case] proposal: Proposal) { + fn create_and_get_proposal_by_id(#[case] proposal: Proposal) { STATE.set(ProposalState::default()); let repository = ProposalRepositoryImpl::default(); - let proposal_id = repository.create_proposal(proposal.clone()).await.unwrap(); + let proposal_id = repository.create_proposal(proposal.clone()).unwrap(); let result = repository.get_proposal_by_id(&proposal_id).unwrap(); @@ -286,16 +280,13 @@ mod tests { #[rstest] #[case::nns_proposal(fixtures::nns_replica_version_management_proposal(None, None))] - async fn create_proposal_duplicate(#[case] proposal: Proposal) { + fn create_proposal_duplicate(#[case] proposal: Proposal) { STATE.set(ProposalState::default()); let repository = ProposalRepositoryImpl::default(); - repository.create_proposal(proposal.clone()).await.unwrap(); + repository.create_proposal(proposal.clone()).unwrap(); - let result = repository - .create_proposal(proposal.clone()) - .await - .unwrap_err(); + let result = repository.create_proposal(proposal.clone()).unwrap_err(); assert_eq!( result, @@ -313,7 +304,7 @@ mod tests { #[case::unsorted_proposals_in_progress((unsorted_proposals(), Some(ReviewPeriodStateKey::InProgress)))] #[case::sorted_proposals_completed((sorted_proposals(), Some(ReviewPeriodStateKey::Completed)))] #[case::unsorted_proposals_completed((unsorted_proposals(), Some(ReviewPeriodStateKey::Completed)))] - async fn get_proposals(#[case] inputs: (Vec, Option)) { + fn get_proposals(#[case] inputs: (Vec, Option)) { STATE.set(ProposalState::default()); let (input_proposals, state) = inputs; @@ -321,7 +312,7 @@ mod tests { let repository = ProposalRepositoryImpl::default(); for proposal in input_proposals { - repository.create_proposal(proposal.clone()).await.unwrap(); + repository.create_proposal(proposal.clone()).unwrap(); } let result = repository.get_proposals(state).unwrap(); @@ -365,7 +356,7 @@ mod tests { } #[rstest] - async fn get_proposal_by_nervous_system_id() { + fn get_proposal_by_nervous_system_id() { STATE.set(ProposalState::default()); let proposals = fixtures::nns_proposals(); @@ -374,7 +365,7 @@ mod tests { let mut proposals_with_ids: Vec<(ProposalId, Proposal)> = vec![]; for proposal in proposals { - let proposal_id = repository.create_proposal(proposal.clone()).await.unwrap(); + let proposal_id = repository.create_proposal(proposal.clone()).unwrap(); proposals_with_ids.push((proposal_id, proposal)); } @@ -390,7 +381,7 @@ mod tests { } #[rstest] - async fn complete_pending_proposals() { + fn complete_pending_proposals() { STATE.set(ProposalState::default()); let repository = ProposalRepositoryImpl::default(); @@ -398,7 +389,7 @@ mod tests { let proposals = proposals_with_pending(); for proposal in proposals { - repository.create_proposal(proposal).await.unwrap(); + repository.create_proposal(proposal).unwrap(); } repository.complete_pending_proposals(current_time).unwrap(); @@ -468,7 +459,7 @@ mod tests { } #[rstest] - async fn update_proposal() { + fn update_proposal() { STATE.set(ProposalState::default()); let repository = ProposalRepositoryImpl::default(); @@ -481,7 +472,7 @@ mod tests { ..proposal.clone() }; - let proposal_id = repository.create_proposal(proposal.clone()).await.unwrap(); + let proposal_id = repository.create_proposal(proposal.clone()).unwrap(); repository .update_proposal(proposal_id, updated_proposal.clone()) .unwrap(); @@ -493,13 +484,13 @@ mod tests { #[rstest] #[case::nervous_system_proposal_id_change(proposal_update_nervous_system_proposal_id_change())] - async fn update_proposal_invalid(#[case] inputs: (Proposal, Proposal, ApiError)) { + fn update_proposal_invalid(#[case] inputs: (Proposal, Proposal, ApiError)) { let (proposal, updated_proposal, expected_error) = inputs; STATE.set(ProposalState::default()); let repository = ProposalRepositoryImpl::default(); - let proposal_id = repository.create_proposal(proposal).await.unwrap(); + let proposal_id = repository.create_proposal(proposal).unwrap(); let result = repository .update_proposal(proposal_id, updated_proposal) .unwrap_err(); diff --git a/src/backend/impl/src/repositories/proposal_review_commit_repository.rs b/src/backend/impl/src/repositories/proposal_review_commit_repository.rs index 49812263..659b4e6a 100644 --- a/src/backend/impl/src/repositories/proposal_review_commit_repository.rs +++ b/src/backend/impl/src/repositories/proposal_review_commit_repository.rs @@ -35,7 +35,7 @@ pub trait ProposalReviewCommitRepository { proposal_review_id: ProposalReviewId, ) -> Result, ApiError>; - async fn create_proposal_review_commit( + fn create_proposal_review_commit( &self, proposal_review_commit: ProposalReviewCommit, ) -> Result; @@ -140,11 +140,11 @@ impl ProposalReviewCommitRepository for ProposalReviewCommitRepositoryImpl { Ok(proposal_review_commits) } - async fn create_proposal_review_commit( + fn create_proposal_review_commit( &self, proposal_review_commit: ProposalReviewCommit, ) -> Result { - let proposal_review_commit_id = ProposalReviewCommitId::new().await?; + let proposal_review_commit_id = ProposalReviewCommitId::new(); let proposal_review_user_key = ProposalReviewCommitProposalReviewUserKey::new( proposal_review_commit.proposal_review_id, proposal_review_commit.user_id, @@ -171,7 +171,7 @@ impl ProposalReviewCommitRepository for ProposalReviewCommitRepositoryImpl { .ok_or_else(|| { ApiError::not_found(&format!( "Proposal review commit with id {} not found", - proposal_review_commit_id.to_string() + proposal_review_commit_id )) })?; @@ -191,7 +191,7 @@ impl ProposalReviewCommitRepository for ProposalReviewCommitRepositoryImpl { .ok_or_else(|| { ApiError::not_found(&format!( "Proposal review commit with id {} not found", - proposal_review_commit_id.to_string() + proposal_review_commit_id )) })?; @@ -240,15 +240,12 @@ mod tests { #[rstest] #[case::reviewed(fixtures::proposal_review_commit_reviewed())] #[case::not_reviewed(fixtures::proposal_review_commit_not_reviewed())] - async fn create_and_get_proposal_review_by_id( - #[case] proposal_review_commit: ProposalReviewCommit, - ) { + fn create_and_get_proposal_review_by_id(#[case] proposal_review_commit: ProposalReviewCommit) { STATE.set(ProposalReviewCommitState::default()); let repository = ProposalReviewCommitRepositoryImpl::default(); let proposal_review_id = repository .create_proposal_review_commit(proposal_review_commit.clone()) - .await .unwrap(); let result = repository.get_proposal_review_commit_by_id(&proposal_review_id); @@ -257,7 +254,7 @@ mod tests { } #[rstest] - async fn get_proposal_review_commits_by_proposal_review_id() { + fn get_proposal_review_commits_by_proposal_review_id() { STATE.set(ProposalReviewCommitState::default()); let proposal_review_commits = proposal_review_commits_fixed_proposal_review_id(); @@ -267,7 +264,6 @@ mod tests { for proposal_review_commit in proposal_review_commits { repository .create_proposal_review_commit(proposal_review_commit) - .await .unwrap(); } @@ -295,7 +291,7 @@ mod tests { } #[rstest] - async fn get_proposal_review_commits_by_proposal_review_id_and_user_id() { + fn get_proposal_review_commits_by_proposal_review_id_and_user_id() { STATE.set(ProposalReviewCommitState::default()); let proposal_review_commits = @@ -306,7 +302,6 @@ mod tests { for proposal_review_commit in proposal_review_commits { repository .create_proposal_review_commit(proposal_review_commit) - .await .unwrap(); } @@ -336,7 +331,7 @@ mod tests { } #[rstest] - async fn get_proposal_review_commit_by_proposal_review_id_user_id_commit_sha() { + fn get_proposal_review_commit_by_proposal_review_id_user_id_commit_sha() { STATE.set(ProposalReviewCommitState::default()); let proposal_review_commits = @@ -347,7 +342,6 @@ mod tests { for proposal_review_commit in proposal_review_commits { repository .create_proposal_review_commit(proposal_review_commit) - .await .unwrap(); } @@ -378,7 +372,7 @@ mod tests { } #[rstest] - async fn update_proposal_review_commit() { + fn update_proposal_review_commit() { STATE.set(ProposalReviewCommitState::default()); let original_proposal_review_commit = fixtures::proposal_review_commit_not_reviewed(); @@ -387,7 +381,6 @@ mod tests { let repository = ProposalReviewCommitRepositoryImpl::default(); let proposal_review_commit_id = repository .create_proposal_review_commit(original_proposal_review_commit) - .await .unwrap(); repository @@ -405,7 +398,7 @@ mod tests { } #[rstest] - async fn delete_proposal_review_commit() { + fn delete_proposal_review_commit() { STATE.set(ProposalReviewCommitState::default()); let original_proposal_review_commit = fixtures::proposal_review_commit_reviewed(); @@ -413,7 +406,6 @@ mod tests { let repository = ProposalReviewCommitRepositoryImpl::default(); let proposal_review_commit_id = repository .create_proposal_review_commit(original_proposal_review_commit) - .await .unwrap(); repository diff --git a/src/backend/impl/src/repositories/proposal_review_repository.rs b/src/backend/impl/src/repositories/proposal_review_repository.rs index e805e139..b8856bf3 100644 --- a/src/backend/impl/src/repositories/proposal_review_repository.rs +++ b/src/backend/impl/src/repositories/proposal_review_repository.rs @@ -33,7 +33,7 @@ pub trait ProposalReviewRepository { user_id: UserId, ) -> Result, ApiError>; - async fn create_proposal_review( + fn create_proposal_review( &self, proposal_review: ProposalReview, ) -> Result; @@ -125,11 +125,11 @@ impl ProposalReviewRepository for ProposalReviewRepositoryImpl { Ok(proposal_reviews) } - async fn create_proposal_review( + fn create_proposal_review( &self, proposal_review: ProposalReview, ) -> Result { - let proposal_review_id = ProposalReviewId::new().await?; + let proposal_review_id = ProposalReviewId::new(); let proposal_user_key = ProposalReviewProposalUserKey::new( proposal_review.proposal_id, proposal_review.user_id, @@ -157,7 +157,7 @@ impl ProposalReviewRepository for ProposalReviewRepositoryImpl { .ok_or_else(|| { ApiError::not_found(&format!( "Proposal review with id {} not found", - proposal_review_id.to_string() + proposal_review_id )) })?; @@ -208,13 +208,12 @@ mod tests { #[rstest] #[case::proposal_review_draft(fixtures::proposal_review_draft())] #[case::proposal_review_published(fixtures::proposal_review_published())] - async fn create_and_get_proposal_review_by_id(#[case] proposal_review: ProposalReview) { + fn create_and_get_proposal_review_by_id(#[case] proposal_review: ProposalReview) { STATE.set(ProposalReviewState::default()); let repository = ProposalReviewRepositoryImpl::default(); let proposal_review_id = repository .create_proposal_review(proposal_review.clone()) - .await .unwrap(); let result = repository.get_proposal_review_by_id(&proposal_review_id); @@ -223,7 +222,7 @@ mod tests { } #[rstest] - async fn get_proposal_reviews_by_proposal_id() { + fn get_proposal_reviews_by_proposal_id() { STATE.set(ProposalReviewState::default()); let proposal_reviews = proposal_reviews_fixed_proposal_id(); @@ -231,10 +230,7 @@ mod tests { let repository = ProposalReviewRepositoryImpl::default(); for proposal_review in proposal_reviews { - repository - .create_proposal_review(proposal_review) - .await - .unwrap(); + repository.create_proposal_review(proposal_review).unwrap(); } let result = repository @@ -247,18 +243,18 @@ mod tests { vec![ ProposalReview { proposal_id: uuid_a(), - ..fixtures::proposal_review_draft() + ..fixtures::proposal_review_published() }, ProposalReview { proposal_id: uuid_a(), - ..fixtures::proposal_review_published() + ..fixtures::proposal_review_draft() }, ] ); } #[rstest] - async fn get_proposal_reviews_by_proposal_id_and_user_id() { + fn get_proposal_reviews_by_proposal_id_and_user_id() { STATE.set(ProposalReviewState::default()); let proposal_reviews = proposal_reviews_fixed_proposal_id_and_user_id(); @@ -266,10 +262,7 @@ mod tests { let repository = ProposalReviewRepositoryImpl::default(); for proposal_review in proposal_reviews { - repository - .create_proposal_review(proposal_review) - .await - .unwrap(); + repository.create_proposal_review(proposal_review).unwrap(); } for (proposal_id, user_id) in [ @@ -294,7 +287,7 @@ mod tests { } #[rstest] - async fn get_proposal_reviews_by_user_id() { + fn get_proposal_reviews_by_user_id() { STATE.set(ProposalReviewState::default()); let proposal_reviews = proposal_reviews_fixed_user_id(); @@ -302,10 +295,7 @@ mod tests { let repository = ProposalReviewRepositoryImpl::default(); for proposal_review in proposal_reviews { - repository - .create_proposal_review(proposal_review) - .await - .unwrap(); + repository.create_proposal_review(proposal_review).unwrap(); } let result = repository @@ -318,18 +308,18 @@ mod tests { vec![ ProposalReview { user_id: uuid_a(), - ..fixtures::proposal_review_draft() + ..fixtures::proposal_review_published() }, ProposalReview { user_id: uuid_a(), - ..fixtures::proposal_review_published() + ..fixtures::proposal_review_draft() }, ] ); } #[rstest] - async fn update_proposal_review() { + fn update_proposal_review() { STATE.set(ProposalReviewState::default()); let original_proposal_review = fixtures::proposal_review_draft(); @@ -338,7 +328,6 @@ mod tests { let repository = ProposalReviewRepositoryImpl::default(); let proposal_review_id = repository .create_proposal_review(original_proposal_review) - .await .unwrap(); repository diff --git a/src/backend/impl/src/repositories/types/commit_sha.rs b/src/backend/impl/src/repositories/types/commit_sha.rs index 674bcafe..5b669047 100644 --- a/src/backend/impl/src/repositories/types/commit_sha.rs +++ b/src/backend/impl/src/repositories/types/commit_sha.rs @@ -1,3 +1,4 @@ +use core::fmt::{Display, Formatter}; use std::borrow::Cow; use backend_api::ApiError; @@ -65,9 +66,9 @@ impl TryFrom> for CommitSha { } } -impl ToString for CommitSha { - fn to_string(&self) -> String { - hex::encode(self.0) +impl Display for CommitSha { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", hex::encode(self.0)) } } diff --git a/src/backend/impl/src/repositories/types/date_time.rs b/src/backend/impl/src/repositories/types/date_time.rs index 5332bf28..31e9d82f 100644 --- a/src/backend/impl/src/repositories/types/date_time.rs +++ b/src/backend/impl/src/repositories/types/date_time.rs @@ -3,7 +3,11 @@ use candid::{ types::{Type, TypeInner}, CandidType, Deserialize, }; -use chrono::{Datelike, NaiveDateTime, TimeZone, Timelike, Utc}; +use chrono::{Datelike, TimeZone, Timelike, Utc}; +use core::{ + fmt::{Display, Formatter}, + str::from_utf8, +}; use ic_stable_structures::{storable::Bound, Storable}; use std::{borrow::Cow, str::FromStr}; @@ -26,9 +30,12 @@ impl DateTime { micros, err )) })?; - let dt = NaiveDateTime::from_timestamp_micros(micros).ok_or(ApiError::internal( - &format!("Failed to convert timestamp {} to date time", micros), - ))?; + let dt = chrono::DateTime::from_timestamp_micros(micros) + .ok_or(ApiError::internal(&format!( + "Failed to convert timestamp {} to date time", + micros + )))? + .naive_utc(); Self::new(Utc.from_utc_datetime(&dt)) } @@ -57,9 +64,13 @@ impl DateTime { } } -impl ToString for DateTime { - fn to_string(&self) -> String { - self.0.to_rfc3339_opts(chrono::SecondsFormat::Secs, false) +impl Display for DateTime { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}", + self.0.to_rfc3339_opts(chrono::SecondsFormat::Secs, false) + ) } } @@ -96,7 +107,7 @@ impl Storable for DateTime { } fn from_bytes(bytes: Cow<[u8]>) -> Self { - Self(chrono::DateTime::from_str(&String::from_utf8(bytes.into_owned()).unwrap()).unwrap()) + Self(chrono::DateTime::from_str(from_utf8(&bytes).unwrap()).unwrap()) } const BOUND: Bound = Bound::Bounded { diff --git a/src/backend/impl/src/repositories/types/image.rs b/src/backend/impl/src/repositories/types/image.rs index 2bd08726..7d9134de 100644 --- a/src/backend/impl/src/repositories/types/image.rs +++ b/src/backend/impl/src/repositories/types/image.rs @@ -117,7 +117,7 @@ mod tests { sub_path: Some(PathBuf::from("logos")), ..fixtures::image_without_subpath() }, - format!("{}logos/{}", IMAGES_BASE_PATH, uuid_a().to_string()), + format!("{}logos/{}", IMAGES_BASE_PATH, uuid_a()), ), ( uuid_a(), @@ -125,7 +125,7 @@ mod tests { sub_path: Some(PathBuf::from("logos/")), ..fixtures::image_without_subpath() }, - format!("{}logos/{}", IMAGES_BASE_PATH, uuid_a().to_string()), + format!("{}logos/{}", IMAGES_BASE_PATH, uuid_a()), ), ( uuid_a(), @@ -133,7 +133,7 @@ mod tests { sub_path: Some(PathBuf::from("logos/subpath")), ..fixtures::image_without_subpath() }, - format!("{}logos/subpath/{}", IMAGES_BASE_PATH, uuid_a().to_string()), + format!("{}logos/subpath/{}", IMAGES_BASE_PATH, uuid_a()), ), ( uuid_a(), @@ -141,12 +141,12 @@ mod tests { sub_path: Some(PathBuf::from("")), ..fixtures::image_without_subpath() }, - format!("{}{}", IMAGES_BASE_PATH, uuid_a().to_string()), + format!("{}{}", IMAGES_BASE_PATH, uuid_a()), ), ( uuid_b(), fixtures::image_without_subpath(), - format!("{}{}", IMAGES_BASE_PATH, uuid_b().to_string()), + format!("{}{}", IMAGES_BASE_PATH, uuid_b()), ), ] } diff --git a/src/backend/impl/src/repositories/types/uuid.rs b/src/backend/impl/src/repositories/types/uuid.rs index 0b79fdc4..805bb93d 100644 --- a/src/backend/impl/src/repositories/types/uuid.rs +++ b/src/backend/impl/src/repositories/types/uuid.rs @@ -3,6 +3,7 @@ use candid::{ types::{Serializer, Type, TypeInner}, CandidType, Deserialize, }; +use core::fmt::{Display, Formatter}; use ic_stable_structures::{storable::Bound, Storable}; use std::borrow::Cow; use uuid::{Builder, Uuid as UuidImpl}; @@ -18,8 +19,8 @@ impl Uuid { pub const MIN: Uuid = Self(UuidImpl::from_bytes([0; UUID_SIZE])); pub const MAX: Uuid = Self(UuidImpl::from_bytes([255; UUID_SIZE])); - pub async fn new() -> Result { - with_random_bytes(|bytes: [u8; UUID_SIZE]| Self::from_random_bytes(bytes)).await + pub fn new() -> Self { + with_random_bytes(|bytes: [u8; UUID_SIZE]| Self::from_random_bytes(bytes)) } pub fn from_random_bytes(bytes: [u8; UUID_SIZE]) -> Self { @@ -47,9 +48,9 @@ impl TryFrom<&str> for Uuid { } } -impl ToString for Uuid { - fn to_string(&self) -> String { - self.0.to_string() +impl Display for Uuid { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) } } diff --git a/src/backend/impl/src/repositories/user_profile_repository.rs b/src/backend/impl/src/repositories/user_profile_repository.rs index 8e65c014..f14fa701 100644 --- a/src/backend/impl/src/repositories/user_profile_repository.rs +++ b/src/backend/impl/src/repositories/user_profile_repository.rs @@ -25,7 +25,7 @@ pub trait UserProfileRepository { fn get_user_id_by_principal(&self, principal: &Principal) -> Option; - async fn create_user_profile( + fn create_user_profile( &self, calling_principal: Principal, user_profile: UserProfile, @@ -85,12 +85,12 @@ impl UserProfileRepository for UserProfileRepositoryImpl { STATE.with_borrow(|s| s.principal_index.get(principal)) } - async fn create_user_profile( + fn create_user_profile( &self, calling_principal: Principal, user_profile: UserProfile, ) -> Result { - let user_id = UserId::new().await?; + let user_id = UserId::new(); let history_entry_id = Self::get_next_history_id()?; STATE.with_borrow_mut(|s| { @@ -202,21 +202,18 @@ mod tests { use rstest::*; #[rstest] - async fn get_all_reviewer_profiles() { + fn get_all_reviewer_profiles() { STATE.set(UserProfileState::default()); let repository = UserProfileRepositoryImpl::default(); repository .create_user_profile(fixtures::principal_a(), fixtures::anonymous_user_profile()) - .await .unwrap(); repository .create_user_profile(fixtures::principal_b(), fixtures::admin_user_profile()) - .await .unwrap(); let reviewer_id = repository .create_user_profile(fixtures::principal_c(), fixtures::reviewer_user_profile()) - .await .unwrap(); let result = repository.get_all_reviewer_profiles(); @@ -229,7 +226,7 @@ mod tests { #[case::anonymous_user(fixtures::anonymous_user_profile())] #[case::reviewer(fixtures::reviewer_user_profile())] #[case::admin(fixtures::admin_user_profile())] - async fn create_and_get_user_profile_by_principal(#[case] profile: UserProfile) { + fn create_and_get_user_profile_by_principal(#[case] profile: UserProfile) { STATE.set(UserProfileState::default()); let principal = fixtures::principal_a(); let date_time = get_date_time().unwrap(); @@ -237,7 +234,6 @@ mod tests { let repository = UserProfileRepositoryImpl::default(); let user_id = repository .create_user_profile(principal, profile.clone()) - .await .unwrap(); let result = repository.get_user_profile_by_principal(&principal); @@ -263,7 +259,7 @@ mod tests { #[case::anonymous_user(fixtures::anonymous_user_profile(), updated_anonymous_user_profile())] #[case::anonymous_user(fixtures::reviewer_user_profile(), updated_reviewer_user_profile())] #[case::anonymous_user(fixtures::admin_user_profile(), updated_admin_user_profile())] - async fn update_and_get_user_profile_by_user_id( + fn update_and_get_user_profile_by_user_id( #[case] original_profile: UserProfile, #[case] updated_profile: UserProfile, ) { @@ -274,7 +270,6 @@ mod tests { let repository = UserProfileRepositoryImpl::default(); let user_id = repository .create_user_profile(principal, original_profile.clone()) - .await .unwrap(); repository diff --git a/src/backend/impl/src/services/http_service.rs b/src/backend/impl/src/services/http_service.rs index 59a851fe..2386d746 100644 --- a/src/backend/impl/src/services/http_service.rs +++ b/src/backend/impl/src/services/http_service.rs @@ -6,7 +6,7 @@ use ic_http_certification::HttpResponse; #[cfg_attr(test, mockall::automock)] pub trait HttpService { - fn http_response_404(&self, request_path: &str) -> HttpResponse; + fn http_response_404(&self, request_path: &str) -> HttpResponse<'static>; /// Certifies default responses, such as 404. /// @@ -25,7 +25,7 @@ impl Default for HttpServiceImpl { } impl HttpService for HttpServiceImpl { - fn http_response_404(&self, request_path: &str) -> HttpResponse { + fn http_response_404(&self, request_path: &str) -> HttpResponse<'static> { self.certification_repository.get_certified_http_response( request_path, NOT_FOUND_PATH, diff --git a/src/backend/impl/src/services/image_service.rs b/src/backend/impl/src/services/image_service.rs index 815e078d..1e71098e 100644 --- a/src/backend/impl/src/services/image_service.rs +++ b/src/backend/impl/src/services/image_service.rs @@ -10,7 +10,10 @@ use crate::{ #[cfg_attr(test, mockall::automock)] pub trait ImageService { - fn get_image_http_response(&self, req: &HttpRequest) -> Option; + fn get_image_http_response<'a>( + &self, + req: &'a HttpRequest<'a>, + ) -> Option>; /// Certifies all images responses. /// @@ -33,7 +36,7 @@ impl Default for ImageServiceImpl ImageService for ImageServiceImpl { - fn get_image_http_response(&self, req: &HttpRequest) -> Option { + fn get_image_http_response(&self, req: &HttpRequest) -> Option> { let req_path = req.get_path().expect("Missing path in request"); let image_id = req_path @@ -42,7 +45,7 @@ impl ImageService for ImageServi .and_then(|s| ImageId::try_from(s).ok())?; let image = self.image_repository.get_image_by_id(&image_id)?; - let image_http_response = create_image_http_response(&image); + let image_http_response = create_image_http_response(image); let certified_response = self.certification_repository.get_certified_http_response( &req_path, @@ -55,9 +58,10 @@ impl ImageService for ImageServi fn certify_all_http_responses(&self) { for (image_id, image) in self.image_repository.get_all_images() { - let image_http_response = create_image_http_response(&image); + let image_path = image.path(&image_id); + let image_http_response = create_image_http_response(image); self.certification_repository - .certify_http_response(&image.path(&image_id), &image_http_response); + .certify_http_response(&image_path, &image_http_response); } } } diff --git a/src/backend/impl/src/services/init_service.rs b/src/backend/impl/src/services/init_service.rs index 35513d2d..5be12937 100644 --- a/src/backend/impl/src/services/init_service.rs +++ b/src/backend/impl/src/services/init_service.rs @@ -5,7 +5,7 @@ use crate::repositories::{UserProfile, UserProfileRepository, UserProfileReposit #[cfg_attr(test, mockall::automock)] pub trait InitService { - async fn init(&self, calling_principal: Principal) -> Result<(), ApiError>; + fn init(&self, calling_principal: Principal) -> Result<(), ApiError>; } pub struct InitServiceImpl { @@ -19,7 +19,7 @@ impl Default for InitServiceImpl { } impl InitService for InitServiceImpl { - async fn init(&self, calling_principal: Principal) -> Result<(), ApiError> { + fn init(&self, calling_principal: Principal) -> Result<(), ApiError> { if self .user_profile_repository .get_user_id_by_principal(&calling_principal) @@ -31,8 +31,7 @@ impl InitService for InitServiceImpl { let profile = UserProfile::new_admin(); self.user_profile_repository - .create_user_profile(calling_principal, profile) - .await?; + .create_user_profile(calling_principal, profile)?; Ok(()) } @@ -54,7 +53,7 @@ mod tests { use rstest::*; #[rstest] - async fn init_with_new_principal() { + fn init_with_new_principal() { let calling_principal = fixtures::principal_a(); let id = fixtures::user_id(); let profile = UserProfile::new_admin(); @@ -73,11 +72,11 @@ mod tests { let service = InitServiceImpl::new(repository_mock); - service.init(calling_principal).await.unwrap(); + service.init(calling_principal).unwrap(); } #[rstest] - async fn init_with_existing_principal() { + fn init_with_existing_principal() { let calling_principal = fixtures::principal_a(); let id = fixtures::user_id(); @@ -91,6 +90,6 @@ mod tests { let service = InitServiceImpl::new(repository_mock); - service.init(calling_principal).await.unwrap(); + service.init(calling_principal).unwrap(); } } diff --git a/src/backend/impl/src/services/log_service.rs b/src/backend/impl/src/services/log_service.rs index 8fa6e864..9a3daef8 100644 --- a/src/backend/impl/src/services/log_service.rs +++ b/src/backend/impl/src/services/log_service.rs @@ -18,6 +18,7 @@ pub trait LogService { fn log_info(&self, message: String, context: Option) -> Result<(), ApiError>; + #[allow(dead_code)] fn log_warn(&self, message: String, context: Option) -> Result<(), ApiError>; fn log_error(&self, message: String, context: Option) -> Result<(), ApiError>; diff --git a/src/backend/impl/src/services/proposal_review_commit_service.rs b/src/backend/impl/src/services/proposal_review_commit_service.rs index 44246b52..ff59dfd2 100644 --- a/src/backend/impl/src/services/proposal_review_commit_service.rs +++ b/src/backend/impl/src/services/proposal_review_commit_service.rs @@ -20,7 +20,7 @@ const MAX_PROPOSAL_REVIEW_COMMIT_COMMENT_CHARS: usize = 1000; #[cfg_attr(test, mockall::automock)] pub trait ProposalReviewCommitService { - async fn create_proposal_review_commit( + fn create_proposal_review_commit( &self, calling_principal: Principal, request: CreateProposalReviewCommitRequest, @@ -76,7 +76,7 @@ impl< P: ProposalRepository, > ProposalReviewCommitService for ProposalReviewCommitServiceImpl { - async fn create_proposal_review_commit( + fn create_proposal_review_commit( &self, calling_principal: Principal, request: CreateProposalReviewCommitRequest, @@ -108,9 +108,9 @@ impl< { return Err(ApiError::conflict(&format!( "User with Id {} has already created {} proposal review commits for proposal review with Id {}", - user_id.to_string(), + user_id, MAX_PROPOSAL_REVIEW_COMMITS_PER_PROPOSAL_REVIEW_PER_USER, - proposal_review_id.to_string() + proposal_review_id ))); } @@ -125,9 +125,9 @@ impl< { return Err(ApiError::conflict(&format!( "User with Id {} has already created a commit review for proposal review with Id {} and commit sha {}", - user_id.to_string(), - proposal_review_id.to_string(), - commit_sha.to_string() + user_id, + proposal_review_id, + commit_sha ))); } @@ -146,8 +146,7 @@ impl< let id = self .proposal_review_commit_repository - .create_proposal_review_commit(proposal_review_commit.clone()) - .await?; + .create_proposal_review_commit(proposal_review_commit.clone())?; Ok(map_proposal_review_commit(id, proposal_review_commit)) } @@ -266,14 +265,13 @@ impl< .get_proposal_review_commit_by_id(proposal_review_commit_id) .ok_or(ApiError::not_found(&format!( "Proposal review commit with Id {} not found", - proposal_review_commit_id.to_string() + proposal_review_commit_id )))?; if proposal_review_commit.user_id.ne(user_id) { return Err(ApiError::permission_denied(&format!( "Proposal review commit with Id {} does not belong to user with Id {}", - proposal_review_commit_id.to_string(), - user_id.to_string(), + proposal_review_commit_id, user_id, ))); } @@ -293,15 +291,14 @@ impl< if proposal_review.is_published() { return Err(ApiError::conflict(&format!( "Proposal review with Id {} is already published", - proposal_review_id.to_string() + proposal_review_id ))); } if proposal_review.user_id.ne(user_id) { return Err(ApiError::permission_denied(&format!( "Proposal review with Id {} does not belong to user with Id {}", - proposal_review_id.to_string(), - user_id.to_string(), + proposal_review_id, user_id, ))); } @@ -310,7 +307,7 @@ impl< None => { return Err(ApiError::not_found(&format!( "Proposal review with Id {} not found", - proposal_review_id.to_string() + proposal_review_id ))) } }; @@ -320,7 +317,7 @@ impl< if proposal.is_completed() { return Err(ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_id.to_string() + proposal_id ))); } } @@ -348,7 +345,7 @@ mod tests { #[rstest] #[case::not_reviewed(proposal_review_commit_create_not_reviewed())] #[case::reviewed(proposal_review_commit_create_reviewed())] - async fn create_proposal_review( + fn create_proposal_review( #[case] fixture: ( ProposalReviewCommit, ProposalReview, @@ -408,7 +405,6 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap(); assert_eq!( @@ -421,7 +417,7 @@ mod tests { } #[rstest] - async fn create_proposal_review_commit_no_user() { + fn create_proposal_review_commit_no_user() { let calling_principal = fixtures::principal_a(); let (_, _, _, request) = proposal_review_commit_create_not_reviewed(); @@ -458,7 +454,6 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!( @@ -471,7 +466,7 @@ mod tests { } #[rstest] - async fn create_proposal_review_commit_too_many() { + fn create_proposal_review_commit_too_many() { let calling_principal = fixtures::principal_a(); let (proposal_review_commit, _, _, request) = proposal_review_commit_create_not_reviewed(); let user_id = proposal_review_commit.user_id; @@ -518,22 +513,21 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!( result, ApiError::conflict(&format!( "User with Id {} has already created {} proposal review commits for proposal review with Id {}", - user_id.to_string(), + user_id, MAX_PROPOSAL_REVIEW_COMMITS_PER_PROPOSAL_REVIEW_PER_USER, - proposal_review_id.to_string() + proposal_review_id )) ); } #[rstest] - async fn create_proposal_review_commit_already_created() { + fn create_proposal_review_commit_already_created() { let calling_principal = fixtures::principal_a(); let (proposal_review_commit, _, _, request) = proposal_review_commit_create_reviewed(); let user_id = proposal_review_commit.user_id; @@ -577,16 +571,15 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!( result, ApiError::conflict(&format!( "User with Id {} has already created a commit review for proposal review with Id {} and commit sha {}", - user_id.to_string(), - proposal_review_id.to_string(), - commit_sha.to_string() + user_id, + proposal_review_id, + commit_sha )) ); } @@ -595,7 +588,7 @@ mod tests { #[case::not_found(proposal_review_commit_create_proposal_review_not_found())] #[case::published(proposal_review_commit_create_proposal_review_published())] #[case::another_user(proposal_review_commit_create_proposal_review_another_user())] - async fn create_proposal_review_proposal_review_invalid( + fn create_proposal_review_proposal_review_invalid( #[case] fixture: ( ProposalReviewCommit, Option, @@ -649,14 +642,13 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!(result, expected_result); } #[rstest] - async fn create_proposal_review_commit_proposal_completed() { + fn create_proposal_review_commit_proposal_completed() { let calling_principal = fixtures::principal_a(); let (proposal_review_commit, proposal_review, proposal, request) = proposal_review_commit_create_proposal_completed(); @@ -707,14 +699,13 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!( result, ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_review.proposal_id.to_string() + proposal_review.proposal_id )) ); } @@ -722,7 +713,7 @@ mod tests { #[rstest] #[case::comment_empty(proposal_review_commit_create_comment_empty())] #[case::comment_too_long(proposal_review_commit_create_comment_too_long())] - async fn create_proposal_review_commit_comment_invalid_fields( + fn create_proposal_review_commit_comment_invalid_fields( #[case] fixture: (CreateProposalReviewCommitRequest, ApiError), ) { let calling_principal = fixtures::principal_a(); @@ -757,7 +748,6 @@ mod tests { let result = service .create_proposal_review_commit(calling_principal, request) - .await .unwrap_err(); assert_eq!(result, expected_result); @@ -845,7 +835,7 @@ mod tests { request, ApiError::not_found(&format!( "Proposal review with Id {} not found", - proposal_review_id.to_string() + proposal_review_id )), ) } @@ -871,7 +861,7 @@ mod tests { request, ApiError::conflict(&format!( "Proposal review with Id {} is already published", - proposal_review_id.to_string() + proposal_review_id )), ) } @@ -894,8 +884,7 @@ mod tests { request, ApiError::permission_denied(&format!( "Proposal review with Id {} does not belong to user with Id {}", - prc.proposal_review_id.to_string(), - prc.user_id.to_string(), + prc.proposal_review_id, prc.user_id, )), ) } @@ -1168,8 +1157,7 @@ mod tests { result, ApiError::permission_denied(&format!( "Proposal review commit with Id {} does not belong to user with Id {}", - request.id, - user_id.to_string(), + request.id, user_id, )) ); } @@ -1282,7 +1270,7 @@ mod tests { result, ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_review.proposal_id.to_string() + proposal_review.proposal_id )) ) } @@ -1427,7 +1415,7 @@ mod tests { request, ApiError::not_found(&format!( "Proposal review with Id {} not found", - prc.proposal_review_id.to_string(), + prc.proposal_review_id, )), ) } @@ -1452,7 +1440,7 @@ mod tests { request, ApiError::conflict(&format!( "Proposal review with Id {} is already published", - prc.proposal_review_id.to_string(), + prc.proposal_review_id, )), ) } @@ -1475,8 +1463,7 @@ mod tests { request, ApiError::permission_denied(&format!( "Proposal review with Id {} does not belong to user with Id {}", - prc.proposal_review_id.to_string(), - prc.user_id.to_string(), + prc.proposal_review_id, prc.user_id, )), ) } @@ -1688,10 +1675,7 @@ mod tests { assert_eq!( result, - ApiError::not_found(&format!( - "Proposal review commit with Id {} not found", - id.to_string() - )) + ApiError::not_found(&format!("Proposal review commit with Id {} not found", id)) ) } @@ -1746,8 +1730,7 @@ mod tests { result, ApiError::permission_denied(&format!( "Proposal review commit with Id {} does not belong to user with Id {}", - id.to_string(), - user_id.to_string(), + id, user_id, )) ) } @@ -1867,7 +1850,7 @@ mod tests { result, ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_review.proposal_id.to_string() + proposal_review.proposal_id )) ) } @@ -1888,7 +1871,7 @@ mod tests { None, ApiError::not_found(&format!( "Proposal review with Id {} not found", - proposal_review_commit.proposal_review_id.to_string(), + proposal_review_commit.proposal_review_id, )), ) } @@ -1913,7 +1896,7 @@ mod tests { Some(proposal_review), ApiError::conflict(&format!( "Proposal review with Id {} is already published", - proposal_review_commit.proposal_review_id.to_string(), + proposal_review_commit.proposal_review_id, )), ) } @@ -1942,8 +1925,7 @@ mod tests { Some(proposal_review), ApiError::permission_denied(&format!( "Proposal review with Id {} does not belong to user with Id {}", - proposal_review_commit.proposal_review_id.to_string(), - user_id.to_string(), + proposal_review_commit.proposal_review_id, user_id, )), ) } diff --git a/src/backend/impl/src/services/proposal_review_service.rs b/src/backend/impl/src/services/proposal_review_service.rs index ffe48d43..29c06c8b 100644 --- a/src/backend/impl/src/services/proposal_review_service.rs +++ b/src/backend/impl/src/services/proposal_review_service.rs @@ -27,7 +27,7 @@ const PROPOSAL_REVIEW_IMAGES_SUB_PATH: &str = "reviews"; #[cfg_attr(test, mockall::automock)] pub trait ProposalReviewService { - async fn create_proposal_review( + fn create_proposal_review( &self, calling_principal: Principal, request: CreateProposalReviewRequest, @@ -51,7 +51,7 @@ pub trait ProposalReviewService { request: GetProposalReviewRequest, ) -> Result; - async fn create_proposal_review_image( + fn create_proposal_review_image( &self, calling_principal: Principal, request: CreateProposalReviewImageRequest, @@ -123,7 +123,7 @@ impl< C: CertificationRepository, > ProposalReviewService for ProposalReviewServiceImpl { - async fn create_proposal_review( + fn create_proposal_review( &self, calling_principal: Principal, request: CreateProposalReviewRequest, @@ -147,7 +147,7 @@ impl< if proposal.is_completed() { return Err(ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_id.to_string() + proposal_id ))); } } @@ -166,8 +166,7 @@ impl< { return Err(ApiError::conflict(&format!( "User with Id {} has already submitted a review for proposal with Id {}", - user_id.to_string(), - proposal_id.to_string() + user_id, proposal_id ))); } @@ -189,8 +188,7 @@ impl< let id = self .proposal_review_repository - .create_proposal_review(proposal_review.clone()) - .await?; + .create_proposal_review(proposal_review.clone())?; Ok(map_proposal_review(id, proposal_review, vec![], vec![])) } @@ -327,7 +325,7 @@ impl< self.map_proposal_review(proposal_review_id, proposal_review) } - async fn create_proposal_review_image( + fn create_proposal_review_image( &self, calling_principal: Principal, request: CreateProposalReviewImageRequest, @@ -361,11 +359,12 @@ impl< content_bytes: request.content_bytes(), }; - let image_id = self.image_repository.create_image(image.clone()).await?; + let image_id = self.image_repository.create_image(image.clone()); + let image_path = image.path(&image_id); // certify the image response let image_http_request_path = image.path(&image_id); - let image_http_response = create_image_http_response(&image); + let image_http_response = create_image_http_response(image); self.certification_repository .certify_http_response(&image_http_request_path, &image_http_response); @@ -373,9 +372,7 @@ impl< self.save_proposal_review(id, current_proposal_review)?; - Ok(CreateProposalReviewImageResponse { - path: image.path(&image_id), - }) + Ok(CreateProposalReviewImageResponse { path: image_path }) } fn delete_proposal_review_image( @@ -407,7 +404,7 @@ impl< let deleted_image = self.image_repository.delete_image(&existing_image_id)?; let image_http_request_path = deleted_image.path(&existing_image_id); - let image_http_response = create_image_http_response(&deleted_image); + let image_http_response = create_image_http_response(deleted_image); self.certification_repository .remove_http_response_certificate(&image_http_request_path, &image_http_response); } else { @@ -656,10 +653,7 @@ impl< .get_proposal_by_id(&proposal_id) .ok_or_else(|| { // this should never happen, as the proposal review is associated with a proposal that must exist - ApiError::not_found(&format!( - "Proposal with Id {} not found", - proposal_id.to_string() - )) + ApiError::not_found(&format!("Proposal with Id {} not found", proposal_id)) })?; Ok((id, current_proposal_review, proposal, user_id)) @@ -808,9 +802,7 @@ mod tests { #[rstest] #[case::empty(proposal_review_create_empty())] #[case::full(proposal_review_create())] - async fn create_proposal_review( - #[case] fixture: (ProposalReview, CreateProposalReviewRequest), - ) { + fn create_proposal_review(#[case] fixture: (ProposalReview, CreateProposalReviewRequest)) { let calling_principal = fixtures::principal_a(); let user_id = fixtures::user_id(); let (proposal_review, request) = fixture; @@ -857,7 +849,6 @@ mod tests { let result = service .create_proposal_review(calling_principal, request) - .await .unwrap(); assert_eq!( @@ -872,9 +863,7 @@ mod tests { #[rstest] #[case::summary_empty(proposal_review_create_summary_empty())] #[case::summary_too_long(proposal_review_create_summary_too_long())] - async fn create_proposal_review_invalid( - #[case] fixture: (CreateProposalReviewRequest, ApiError), - ) { + fn create_proposal_review_invalid(#[case] fixture: (CreateProposalReviewRequest, ApiError)) { let calling_principal = fixtures::principal_a(); let (request, api_error) = fixture; @@ -902,14 +891,13 @@ mod tests { let result = service .create_proposal_review(calling_principal, request) - .await .unwrap_err(); assert_eq!(result, api_error); } #[rstest] - async fn create_proposal_review_no_user() { + fn create_proposal_review_no_user() { let calling_principal = fixtures::principal_a(); let (_, request) = proposal_review_create(); @@ -941,7 +929,6 @@ mod tests { let result = service .create_proposal_review(calling_principal, request) - .await .unwrap_err(); assert_eq!( @@ -954,7 +941,7 @@ mod tests { } #[rstest] - async fn create_proposal_review_no_proposal() { + fn create_proposal_review_no_proposal() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::user_id(); let (_, request) = proposal_review_create(); @@ -992,7 +979,6 @@ mod tests { let result = service .create_proposal_review(calling_principal, request.clone()) - .await .unwrap_err(); assert_eq!( @@ -1005,7 +991,7 @@ mod tests { } #[rstest] - async fn create_proposal_review_proposal_already_completed() { + fn create_proposal_review_proposal_already_completed() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::user_id(); let (_, request) = proposal_review_create(); @@ -1045,20 +1031,19 @@ mod tests { let result = service .create_proposal_review(calling_principal, request) - .await .unwrap_err(); assert_eq!( result, ApiError::conflict(&format!( "Proposal with Id {} is already completed", - proposal_id.to_string() + proposal_id )) ); } #[rstest] - async fn create_proposal_review_already_created() { + fn create_proposal_review_already_created() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::user_id(); let (_, request) = proposal_review_create(); @@ -1101,15 +1086,13 @@ mod tests { let result = service .create_proposal_review(calling_principal, request.clone()) - .await .unwrap_err(); assert_eq!( result, ApiError::conflict(&format!( "User with Id {} has already submitted a review for proposal with Id {}", - user_id.to_string(), - request.proposal_id + user_id, request.proposal_id )) ); } @@ -1806,7 +1789,7 @@ mod tests { } #[rstest] - async fn create_proposal_review_image() { + fn create_proposal_review_image() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::uuid_a(); let ( @@ -1850,13 +1833,13 @@ mod tests { .expect_create_image() .once() .with(eq(image.clone())) - .return_const(Ok(image_id)); + .return_const(image_id); let mut certification_repository_mock = MockCertificationRepository::new(); certification_repository_mock .expect_certify_http_response() .with( eq(image.path(&image_id)), - eq(create_image_http_response(&image)), + eq(create_image_http_response(image)), ) .once() .return_const(()); @@ -1872,14 +1855,13 @@ mod tests { let result = service .create_proposal_review_image(calling_principal, request) - .await .unwrap(); assert_eq!(result, expected_response); } #[rstest] - async fn create_proposal_review_image_already_exists() { + fn create_proposal_review_image_already_exists() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::uuid_a(); let (id, original_proposal_review, image_id, _, request, _, _) = @@ -1930,7 +1912,6 @@ mod tests { let result = service .create_proposal_review_image(calling_principal, request.clone()) - .await .unwrap_err(); assert_eq!( @@ -1943,7 +1924,7 @@ mod tests { } #[rstest] - async fn delete_proposal_review_image() { + fn delete_proposal_review_image() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::uuid_a(); let (id, original_proposal_review, request, updated_proposal_review) = @@ -1996,7 +1977,7 @@ mod tests { .expect_remove_http_response_certificate() .with( eq(image_to_delete.path(&image_id_to_delete)), - eq(create_image_http_response(&image_to_delete)), + eq(create_image_http_response(image_to_delete)), ) .once() .return_const(()); @@ -2016,7 +1997,7 @@ mod tests { } #[rstest] - async fn delete_proposal_review_image_not_found() { + fn delete_proposal_review_image_not_found() { let calling_principal = fixtures::principal_a(); let user_id = fixtures::uuid_a(); let (id, original_proposal_review, request, _) = proposal_review_update_image_delete(); @@ -2194,7 +2175,7 @@ mod tests { proposal_id: original_proposal_review.proposal_id.to_string(), image_path: format!( "{IMAGES_BASE_PATH}{PROPOSAL_REVIEW_IMAGES_SUB_PATH}/{}", - image_id.to_string() + image_id ), }, ProposalReview { diff --git a/src/backend/impl/src/services/proposal_service.rs b/src/backend/impl/src/services/proposal_service.rs index fd92380b..fed50e59 100644 --- a/src/backend/impl/src/services/proposal_service.rs +++ b/src/backend/impl/src/services/proposal_service.rs @@ -8,10 +8,7 @@ use crate::{ }, system_api::get_date_time, }; -use backend_api::{ - ApiError, GetProposalResponse, ListProposalsRequest, ListProposalsResponse, - SyncProposalsResponse, -}; +use backend_api::{ApiError, ListProposalsRequest, ListProposalsResponse, SyncProposalsResponse}; use candid::Principal; use external_canisters::nns::GovernanceCanisterService; use ic_nns_common::pb::v1::ProposalId as NnsProposalId; @@ -32,7 +29,7 @@ async fn fetch_open_nns_proposals( limit: LIST_PROPOSALS_LIMIT, // only fetch for: // - NetworkCanisterManagement - // - ReplicaVersionManagement + // - IcOsVersionElection exclude_topic: vec![ Topic::Unspecified, Topic::NeuronManagement, @@ -44,10 +41,11 @@ async fn fetch_open_nns_proposals( Topic::SubnetManagement, Topic::Kyc, Topic::NodeProviderRewards, - Topic::SnsDecentralizationSale, - Topic::SubnetReplicaVersionManagement, + Topic::IcOsVersionDeployment, Topic::SnsAndCommunityFund, Topic::ApiBoundaryNodeManagement, + Topic::ProtocolCanisterManagement, + Topic::ServiceNervousSystemManagement, ] .into_iter() .map(Into::into) @@ -59,7 +57,17 @@ async fn fetch_open_nns_proposals( .collect(), }) .await - .map(|res| res.proposal_info) + .map(|res| { + // since the NNS can add new proposal topics, our `exclude_topic` list may not be exhaustive. + // therefore, we filter out the proposals here as well + res.proposal_info + .into_iter() + .filter(|res| { + res.topic == Topic::NetworkCanisterManagement as i32 + || res.topic == Topic::IcOsVersionElection as i32 + }) + .collect() + }) .map_err(|err| ApiError::internal(&format!("Failed to fetch proposals: {:?}", err))) } @@ -75,8 +83,6 @@ const LIST_PROPOSALS_LIMIT: u32 = 50; #[cfg_attr(test, mockall::automock)] pub trait ProposalService { - fn get_proposal(&self, id: ProposalId) -> Result; - fn list_proposals( &self, request: ListProposalsRequest, @@ -99,17 +105,6 @@ impl Default for ProposalServiceImpl ProposalService for ProposalServiceImpl { - fn get_proposal(&self, id: ProposalId) -> Result { - let proposal = self - .proposal_repository - .get_proposal_by_id(&id) - .ok_or_else(|| { - ApiError::not_found(&format!("Proposal with id {} not found", &id.to_string())) - })?; - - map_get_proposal_response(id, proposal) - } - fn list_proposals( &self, request: ListProposalsRequest, @@ -170,15 +165,11 @@ impl ProposalService for ProposalServiceIm )?; } None => { - if let Err(err) = self - .proposal_repository - .create_proposal(Proposal { - nervous_system, - synced_at: current_time, - state: ReviewPeriodState::InProgress, - }) - .await - { + if let Err(err) = self.proposal_repository.create_proposal(Proposal { + nervous_system, + synced_at: current_time, + state: ReviewPeriodState::InProgress, + }) { let _ = self.log_service.log_error( format!("Failed to create proposal: {err}"), Some("fetch_and_save_nns_proposals".to_string()), @@ -236,7 +227,7 @@ impl ProposalServiceImpl { let proposal_id = proposal.nervous_system.proposal_id(); let already_exists = nns_proposals .iter() - .any(|p| p.id.map_or(false, |nns_id| nns_id.id == proposal_id)); + .any(|p| p.id.is_some_and(|nns_id| nns_id.id == proposal_id)); if already_exists { None } else { @@ -286,57 +277,6 @@ mod tests { use mockall::predicate::*; use rstest::*; - #[rstest] - async fn get_proposal() { - let proposal_id = fixtures::proposal_id(); - let proposal = fixtures::nns_replica_version_management_proposal(None, None); - - let mut repository_mock = MockProposalRepository::new(); - repository_mock - .expect_get_proposal_by_id() - .once() - .with(eq(proposal_id)) - .return_const(Some(proposal.clone())); - let log_service_mock = MockLogService::new(); - - let service = ProposalServiceImpl::new(repository_mock, log_service_mock); - - let result = service.get_proposal(proposal_id).unwrap(); - - assert_eq!( - result, - GetProposalResponse { - id: proposal_id.to_string(), - proposal: proposal.try_into().unwrap(), - }, - ) - } - - #[rstest] - async fn get_proposal_not_found() { - let proposal_id = fixtures::proposal_id(); - - let mut repository_mock = MockProposalRepository::new(); - repository_mock - .expect_get_proposal_by_id() - .once() - .with(eq(proposal_id)) - .return_const(None); - let log_service_mock = MockLogService::new(); - - let service = ProposalServiceImpl::new(repository_mock, log_service_mock); - - let result = service.get_proposal(proposal_id).unwrap_err(); - - assert_eq!( - result, - ApiError::not_found(&format!( - "Proposal with id {} not found", - &proposal_id.to_string() - )) - ) - } - #[rstest] fn list_proposals() { let mut repository_mock = MockProposalRepository::new(); diff --git a/src/backend/impl/src/services/user_profile_service.rs b/src/backend/impl/src/services/user_profile_service.rs index eaf72154..a83dabef 100644 --- a/src/backend/impl/src/services/user_profile_service.rs +++ b/src/backend/impl/src/services/user_profile_service.rs @@ -28,7 +28,7 @@ pub trait UserProfileService { calling_principal: Principal, ) -> Result; - async fn create_my_user_profile( + fn create_my_user_profile( &self, calling_principal: Principal, ) -> Result; @@ -97,7 +97,7 @@ impl UserProfileService for UserProfileServiceImpl Ok(map_get_my_user_profile_history_response(history)) } - async fn create_my_user_profile( + fn create_my_user_profile( &self, calling_principal: Principal, ) -> Result { @@ -115,8 +115,7 @@ impl UserProfileService for UserProfileServiceImpl let profile = UserProfile::new_anonymous(); let id = self .user_profile_repository - .create_user_profile(calling_principal, profile.clone()) - .await?; + .create_user_profile(calling_principal, profile.clone())?; Ok(map_create_my_user_profile_response(id, profile)) } @@ -213,7 +212,7 @@ impl UserProfileService for UserProfileServiceImpl .ok_or_else(|| { ApiError::not_found(&format!( "User profile for user with id {} not found", - user_id.to_string() + user_id )) })?; @@ -313,7 +312,7 @@ mod tests { use rstest::*; #[rstest] - async fn list_reviewer_profiles() { + fn list_reviewer_profiles() { let profiles = vec![(fixtures::user_id(), fixtures::reviewer_user_profile())]; let mut repository_mock = MockUserProfileRepository::new(); @@ -330,7 +329,7 @@ mod tests { } #[rstest] - async fn get_my_user_profile() { + fn get_my_user_profile() { let calling_principal = fixtures::principal_a(); let id = fixtures::user_id(); let profile = fixtures::admin_user_profile(); @@ -357,7 +356,7 @@ mod tests { } #[rstest] - async fn get_my_user_profile_no_profile() { + fn get_my_user_profile_no_profile() { let calling_principal = fixtures::principal_a(); let mut repository_mock = MockUserProfileRepository::new(); @@ -441,7 +440,7 @@ mod tests { } #[rstest] - async fn create_my_user_profile() { + fn create_my_user_profile() { let calling_principal = fixtures::principal_a(); let id = fixtures::user_id(); let profile = UserProfile::new_anonymous(); @@ -460,10 +459,7 @@ mod tests { let service = UserProfileServiceImpl::new(repository_mock); - let result = service - .create_my_user_profile(calling_principal) - .await - .unwrap(); + let result = service.create_my_user_profile(calling_principal).unwrap(); assert_eq!( result, @@ -476,7 +472,7 @@ mod tests { } #[rstest] - async fn create_my_user_profile_existing_profile() { + fn create_my_user_profile_existing_profile() { let calling_principal = fixtures::principal_a(); let id = fixtures::user_id(); @@ -492,7 +488,6 @@ mod tests { let result = service .create_my_user_profile(calling_principal) - .await .unwrap_err(); assert_eq!( @@ -882,7 +877,7 @@ mod tests { result, ApiError::not_found(&format!( "User profile for user with id {} not found", - user_id.to_string() + user_id )) ) } diff --git a/src/backend/impl/src/system_api/rand.rs b/src/backend/impl/src/system_api/rand.rs index 4cd10616..6ad35b6e 100644 --- a/src/backend/impl/src/system_api/rand.rs +++ b/src/backend/impl/src/system_api/rand.rs @@ -1,67 +1,39 @@ -use backend_api::ApiError; -use rand::prelude::*; -use rand_chacha::ChaCha20Rng; +use fastrand::Rng; use std::cell::RefCell; -#[cfg(target_family = "wasm")] -use ic_cdk::api::management_canister::main::raw_rand; - thread_local! { - static RNG: RefCell> = RefCell::new(None); + static RNG: RefCell = create_rng(); } -async fn with_rng(cb: impl FnOnce(&mut ChaCha20Rng) -> T) -> Result { - let is_init = RNG.with_borrow(|rng| rng.is_some()); - - if !is_init { - let seed = get_seed().await?; - - let rng = ChaCha20Rng::from_seed(seed); - RNG.with(|option_rng| { - option_rng.borrow_mut().get_or_insert(rng); - }); - } - - RNG.with_borrow_mut(|rng| { - let rng = rng - .as_mut() - .ok_or_else(|| ApiError::internal("Failed to initialize random number generator"))?; +fn create_rng() -> RefCell { + let seed = get_seed(); + let rng = Rng::with_seed(seed); - Ok(cb(rng)) - }) + RefCell::new(rng) } -async fn get_seed() -> Result<[u8; 32], ApiError> { +fn get_seed() -> u64 { #[cfg(target_family = "wasm")] { - let (seed,) = raw_rand().await.map_err(|(code, msg)| { - ApiError::internal(&format!( - "System API call to `raw_rand` failed: ({:?}) {}", - code, msg - )) - })?; - - seed.try_into().map_err(|err| { - ApiError::internal(&format!( - "System API call to `raw_rand` did not return 32 bytes: ({:?})", - err - )) - }) + ic_cdk::api::time() } // fallback seed for non-wasm targets, e.g. unit tests #[cfg(not(target_family = "wasm"))] - Ok([0u8; 32]) + { + 0 + } +} + +fn with_rng(cb: impl FnOnce(&mut Rng) -> T) -> T { + RNG.with_borrow_mut(cb) } -pub async fn with_random_bytes( - cb: impl FnOnce([u8; N]) -> T, -) -> Result { +pub fn with_random_bytes(cb: impl FnOnce([u8; N]) -> T) -> T { with_rng(|rng| { let mut bytes = [0u8; N]; - rng.fill_bytes(&mut bytes); + rng.fill(&mut bytes); cb(bytes) }) - .await } diff --git a/src/backend/integration/src/tests/list_proposal_reviews.spec.ts b/src/backend/integration/src/tests/list_proposal_reviews.spec.ts index 2b589a54..c35635a1 100644 --- a/src/backend/integration/src/tests/list_proposal_reviews.spec.ts +++ b/src/backend/integration/src/tests/list_proposal_reviews.spec.ts @@ -281,17 +281,17 @@ describe('list proposal reviews', () => { expect(resProposal1Ok.proposal_reviews.length).toEqual(2); validateProposalReview(resProposal1Ok.proposal_reviews[0], { proposalId: proposal1Id, - userId: aliceId, - reviewStatus: { published: null }, - commits: { commitSha: [VALID_COMMIT_SHA_A, VALID_COMMIT_SHA_B] }, - lastUpdatedAt: expect.any(String), + userId: bobId, + reviewStatus: { draft: null }, + commits: { commitSha: [VALID_COMMIT_SHA_A] }, vote: { yes: null }, }); validateProposalReview(resProposal1Ok.proposal_reviews[1], { proposalId: proposal1Id, - userId: bobId, - reviewStatus: { draft: null }, - commits: { commitSha: [VALID_COMMIT_SHA_A] }, + userId: aliceId, + reviewStatus: { published: null }, + commits: { commitSha: [VALID_COMMIT_SHA_A, VALID_COMMIT_SHA_B] }, + lastUpdatedAt: expect.any(String), vote: { yes: null }, }); @@ -302,13 +302,6 @@ describe('list proposal reviews', () => { const resProposal2Ok = extractOkResponse(resProposal2); expect(resProposal2Ok.proposal_reviews.length).toEqual(2); validateProposalReview(resProposal2Ok.proposal_reviews[0], { - proposalId: proposal2Id, - userId: aliceId, - reviewStatus: { draft: null }, - commits: { commitSha: [VALID_COMMIT_SHA_A] }, - vote: { yes: null }, - }); - validateProposalReview(resProposal2Ok.proposal_reviews[1], { proposalId: proposal2Id, userId: bobId, reviewStatus: { published: null }, @@ -316,6 +309,13 @@ describe('list proposal reviews', () => { lastUpdatedAt: expect.any(String), vote: { yes: null }, }); + validateProposalReview(resProposal2Ok.proposal_reviews[1], { + proposalId: proposal2Id, + userId: aliceId, + reviewStatus: { draft: null }, + commits: { commitSha: [VALID_COMMIT_SHA_A] }, + vote: { yes: null }, + }); }); it('should return an empty list when the proposal does not exist', async () => { diff --git a/src/backend/logs/src/fetcher.rs b/src/backend/logs/src/fetcher.rs index 66295e0f..ea11ef2a 100644 --- a/src/backend/logs/src/fetcher.rs +++ b/src/backend/logs/src/fetcher.rs @@ -62,6 +62,7 @@ impl LogFetcher { .create(true) .read(true) .write(true) + .truncate(false) .open(path)?; let mut last_fetch_timestamp = String::new(); file.read_to_string(&mut last_fetch_timestamp)?;