From c578927f457aa6ad97cc5e97f1c68c9d0e62d9f9 Mon Sep 17 00:00:00 2001 From: gregorydemay Date: Mon, 23 Mar 2026 09:52:51 +0100 Subject: [PATCH 1/7] DEFI-2565: cargo update --- Cargo.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3f1e02a..96e7da0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" +checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6" dependencies = [ "rustversion", ] @@ -276,9 +276,9 @@ dependencies = [ [[package]] name = "candid" -version = "0.10.24" +version = "0.10.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601b519700ec333a2a2c7eb3e8e1eca89177055e3e1fb24ca42cbbb025986696" +checksum = "846adba6d1b4a00eeb8d4a0e4b88dfab570c25ad150cd52e51dfdc4f9d0a66cd" dependencies = [ "anyhow", "binread", @@ -299,9 +299,9 @@ dependencies = [ [[package]] name = "candid_derive" -version = "0.10.24" +version = "0.10.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f195a40cd3d199191fc8b534165fadd78c08a1f9666222addaf9f58593002a73" +checksum = "4c367110b158be2edc335a4ad70f3467fa588d5c5675e149ef38638a8e281fc4" dependencies = [ "lazy_static", "proc-macro2", @@ -361,9 +361,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.56" +version = "1.2.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" dependencies = [ "find-msvc-tools", "shlex", @@ -1637,9 +1637,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +checksum = "d8e7418f59cc01c88316161279a7f665217ae316b388e58a0d10e29f54f1e5eb" dependencies = [ "memchr", "serde", @@ -1656,9 +1656,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" @@ -1905,9 +1905,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "opaque-debug" @@ -2963,9 +2963,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.26.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", "getrandom 0.4.2", @@ -3079,9 +3079,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -3255,9 +3255,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -3848,18 +3848,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.42" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" +checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.42" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" +checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", From 2a4e1b169aed7aab032d6aef9018f2b44e243aba Mon Sep 17 00:00:00 2001 From: gregorydemay Date: Mon, 23 Mar 2026 10:04:34 +0100 Subject: [PATCH 2/7] DEFI-2565: cargo upgrade compatible --- Cargo.lock | 19 ++++++++++--------- Cargo.toml | 6 +++--- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 96e7da0..bee6a40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -501,9 +501,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -776,7 +776,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -939,9 +939,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -1856,7 +1856,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -2452,7 +2452,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2814,7 +2814,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -2843,6 +2843,7 @@ dependencies = [ "cfg-if", "libc", "psm", + "windows-sys 0.52.0", "windows-sys 0.59.0", ] @@ -2971,7 +2972,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 52d0e67..4b2680a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ readme = "README.md" [workspace.dependencies] assert_matches = "1.5.0" async-trait = "0.1.89" -candid = { version = "0.10.24" } +candid = { version = "0.10.26" } canhttp = { version = "0.5.2", path = "canhttp" } ciborium = "0.2.2" derive_more = { version = "2.1.1", features = ["from", "try_unwrap", "unwrap"] } @@ -50,11 +50,11 @@ sha2 = "0.10.9" strum = { version = "0.28.0", features = ["derive"] } test_fixtures = { path = "test_fixtures" } thiserror = "2.0.18" -tokio = "1.49.0" +tokio = "1.50.0" tower = "0.5.3" tower-layer = "0.3.3" url = "2.5.8" -uuid = "1.21.0" +uuid = "1.22.0" [profile.release] debug = false From 60f2c56d4c70bf97f80bb221c16a3b2d4e2b07c5 Mon Sep 17 00:00:00 2001 From: gregorydemay Date: Mon, 23 Mar 2026 10:17:38 +0100 Subject: [PATCH 3/7] DEFI-2565: cargo upgrade --incompatible Upgrade ic-cdk 0.19.0 -> 0.20.0, ic-agent 0.45.0 -> 0.46.2. Migrate from removed ic_cdk::management_canister module to the new ic-cdk-management-canister crate. Keep ic-management-canister-types at 0.5.0 to remain compatible with pocket-ic v12. Co-Authored-By: Claude Opus 4.6 (1M context) --- Cargo.lock | 566 ++++++++++++++++++++++++++++-- Cargo.toml | 5 +- canhttp/Cargo.toml | 1 + canhttp/src/client/mod.rs | 8 +- canhttp/src/cycles/mod.rs | 6 +- canhttp/src/http/mod.rs | 6 +- canhttp/src/http/request.rs | 2 +- canhttp/src/http/response.rs | 4 +- canhttp/src/http/tests.rs | 2 +- canhttp/src/observability/mod.rs | 4 +- ic-canister-runtime/Cargo.toml | 1 + ic-canister-runtime/src/wallet.rs | 2 +- 12 files changed, 551 insertions(+), 56 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bee6a40..e75eae3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,6 +137,28 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "aws-lc-rs" +version = "1.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "backoff" version = "0.4.0" @@ -259,12 +281,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "801927ee168e17809ab8901d9f01f700cd7d8d6a6527997fee44e4b0327a253c" dependencies = [ "ahash", + "cached_proc_macro", + "cached_proc_macro_types", "hashbrown 0.15.5", "once_cell", "thiserror 2.0.18", "web-time", ] +[[package]] +name = "cached_proc_macro" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9225bdcf4e4a9a4c08bf16607908eb2fbf746828d5e0b5e019726dbf6571f201" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + [[package]] name = "camino" version = "1.2.2" @@ -321,6 +363,7 @@ dependencies = [ "futures-util", "http", "ic-cdk", + "ic-cdk-management-canister", "ic-error-types", "itertools", "maplit", @@ -366,9 +409,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" dependencies = [ "find-msvc-tools", + "jobserver", + "libc", "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "1.0.4" @@ -381,6 +432,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.0", +] + [[package]] name = "ciborium" version = "0.2.2" @@ -408,6 +470,25 @@ dependencies = [ "half 2.7.1", ] +[[package]] +name = "cmake" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +dependencies = [ + "cc", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -432,6 +513,16 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation" version = "0.10.1" @@ -457,6 +548,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -516,7 +616,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", @@ -557,8 +657,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -575,13 +685,37 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", "syn 2.0.117", ] @@ -666,6 +800,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-clone" version = "1.0.20" @@ -754,6 +894,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -776,7 +925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -876,6 +1025,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "futures-channel" version = "0.3.32" @@ -984,6 +1139,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core 0.10.0", "wasip2", "wasip3", ] @@ -1134,7 +1290,7 @@ dependencies = [ "http", "ic-canister-runtime", "ic-cdk", - "ic-management-canister-types", + "ic-management-canister-types 0.5.0", "ic-test-utilities-load-wasm", "pocket-ic", "serde", @@ -1207,16 +1363,18 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] name = "ic-agent" -version = "0.45.0" +version = "0.46.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20a6173286a80fc478462fc45de42faf37a79b0109a489743aeffb3e4a2fc772" +checksum = "223e34e74ee20df849226a45e14f6b47f4d53a97f34d571e7b6111728c965489" dependencies = [ "arc-swap", "async-channel 2.5.0", @@ -1227,7 +1385,6 @@ dependencies = [ "bytes", "cached", "candid", - "der", "ecdsa", "ed25519-consensus", "elliptic-curve", @@ -1238,16 +1395,17 @@ dependencies = [ "http-body-util", "ic-certification", "ic-ed25519", - "ic-transport-types 0.45.0", + "ic-transport-types 0.46.2", "ic-verify-bls-signature", + "ic_principal", "k256", "leb128", "p256", "pem", "pkcs8", - "rand 0.8.5", + "rand 0.10.0", "rangemap", - "reqwest", + "reqwest 0.13.2", "sec1", "serde", "serde_bytes", @@ -1282,6 +1440,7 @@ dependencies = [ "async-trait", "candid", "ic-cdk", + "ic-cdk-management-canister", "ic-error-types", "regex-lite", "serde", @@ -1292,20 +1451,17 @@ dependencies = [ [[package]] name = "ic-cdk" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818d6d5416a8f0212e1b132703b0da51e36c55f2b96677e96f2bbe7702e1bd85" +checksum = "057912339f889013f42b36cc0623585949ed278457efb32aef041bdc48acb111" dependencies = [ "candid", "ic-cdk-executor", "ic-cdk-macros", "ic-error-types", - "ic-management-canister-types", "ic0", "pin-project-lite", "serde", - "serde_bytes", - "slotmap", "thiserror 2.0.18", ] @@ -1322,17 +1478,31 @@ dependencies = [ [[package]] name = "ic-cdk-macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66dad91a214945cb3605bc9ef6901b87e2ac41e3624284c2cabba49d43aa4f43" +checksum = "b140627c01710ac185fbc984ab1fda1781ffef4abbd952e07383350899b0952b" dependencies = [ "candid", - "darling", + "darling 0.23.0", "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "ic-cdk-management-canister" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c1319a274caebf0ab70ab826b8905c29e8563498289356b9a59464f2a85c56" +dependencies = [ + "candid", + "ic-cdk", + "ic-management-canister-types 0.7.1", + "serde", + "serde_bytes", + "thiserror 2.0.18", +] + [[package]] name = "ic-certification" version = "3.1.0" @@ -1347,9 +1517,9 @@ dependencies = [ [[package]] name = "ic-ed25519" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b73f85d01b7a3d538353050f1eda546f827ffe7f3ffa35f8e80faa8cff1da10" +checksum = "6ad3d86f2e35cb99ae7497b3e4fa92ad751a8e8978f0680d37b86dd51ef91714" dependencies = [ "curve25519-dalek", "ed25519-dalek", @@ -1384,6 +1554,17 @@ dependencies = [ "serde_bytes", ] +[[package]] +name = "ic-management-canister-types" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51705516ed4d23f24e8d714a70fe9d7ec17106cfd830d5434a1b29f583ef70ee" +dependencies = [ + "candid", + "serde", + "serde_bytes", +] + [[package]] name = "ic-pocket-canister-runtime" version = "0.4.1" @@ -1431,9 +1612,9 @@ dependencies = [ [[package]] name = "ic-transport-types" -version = "0.45.0" +version = "0.46.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a775244756a5d97ff19b08071a946a4b4896904e35deb036bf215e80f2e703d" +checksum = "26448ff3dd1dc1afbfdd008153b2fde7ab117296e866cd7642c4a0cb9c88e421" dependencies = [ "candid", "hex", @@ -1489,6 +1670,7 @@ checksum = "8b2b6c5941dfd659e77b262342fa58ad49489367ad026255cda8c43682d0c534" dependencies = [ "crc32fast", "data-encoding", + "rangemap", "serde", "sha2 0.10.9", "thiserror 1.0.69", @@ -1660,6 +1842,60 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + [[package]] name = "js-sys" version = "0.3.91" @@ -1705,7 +1941,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -1856,7 +2092,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2056,9 +2292,9 @@ dependencies = [ "flate2", "hex", "ic-certification", - "ic-management-canister-types", + "ic-management-canister-types 0.5.0", "ic-transport-types 0.40.1", - "reqwest", + "reqwest 0.12.28", "schemars", "semver", "serde", @@ -2202,6 +2438,7 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ + "aws-lc-rs", "bytes", "getrandom 0.3.4", "lru-slab", @@ -2273,6 +2510,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.0", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -2311,6 +2559,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" + [[package]] name = "rand_xorshift" version = "0.4.0" @@ -2398,11 +2652,55 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", + "wasm-streams 0.4.2", "web-sys", "webpki-roots", ] +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.5.0", + "web-sys", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -2452,7 +2750,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2461,6 +2759,7 @@ version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ + "aws-lc-rs", "once_cell", "ring", "rustls-pki-types", @@ -2491,12 +2790,40 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -2526,6 +2853,15 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "schannel" version = "0.1.29" @@ -2586,7 +2922,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ "bitflags", - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -2717,7 +3053,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.9.0", "opaque-debug", ] @@ -2729,7 +3065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -2814,7 +3150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2843,7 +3179,6 @@ dependencies = [ "cfg-if", "libc", "psm", - "windows-sys 0.52.0", "windows-sys 0.59.0", ] @@ -2962,6 +3297,27 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tempfile" version = "3.27.0" @@ -2972,7 +3328,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2981,7 +3337,7 @@ version = "1.0.0" dependencies = [ "candid", "ic-canister-runtime", - "ic-management-canister-types", + "ic-management-canister-types 0.5.0", "ic-pocket-canister-runtime", "ic-test-utilities-load-wasm", "pocket-ic", @@ -3385,6 +3741,16 @@ dependencies = [ "libc", ] +[[package]] +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 = "want" version = "0.3.1" @@ -3512,6 +3878,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasmparser" version = "0.244.0" @@ -3544,6 +3923,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "1.0.6" @@ -3553,12 +3941,59 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -3595,6 +4030,21 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -3628,6 +4078,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -3640,6 +4096,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -3652,6 +4114,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3676,6 +4144,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -3688,6 +4162,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -3700,6 +4180,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -3712,6 +4198,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/Cargo.toml b/Cargo.toml index 4b2680a..3ebcbe4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,9 +29,10 @@ derive_more = { version = "2.1.1", features = ["from", "try_unwrap", "unwrap"] } futures-channel = "0.3.32" futures-util = "0.3.32" http = "1.4.0" -ic-agent = "0.45.0" +ic-agent = "0.46.2" ic-canister-runtime = { version = "0.2.1", path = "ic-canister-runtime" } -ic-cdk = "0.19.0" +ic-cdk = "0.20.0" +ic-cdk-management-canister = "0.1.1" ic-error-types = "0.2" ic-management-canister-types = "0.5.0" ic-pocket-canister-runtime = { path = "ic-pocket-canister-runtime" } diff --git a/canhttp/Cargo.toml b/canhttp/Cargo.toml index c1b7771..509bb93 100644 --- a/canhttp/Cargo.toml +++ b/canhttp/Cargo.toml @@ -25,6 +25,7 @@ futures-channel = { workspace = true, optional = true } futures-util = { workspace = true } http = { workspace = true, optional = true } ic-cdk = { workspace = true } +ic-cdk-management-canister = { workspace = true } ic-error-types = { workspace = true } itertools = { workspace = true } num-traits = { workspace = true, optional = true } diff --git a/canhttp/src/client/mod.rs b/canhttp/src/client/mod.rs index ac28ef5..1da7f2a 100644 --- a/canhttp/src/client/mod.rs +++ b/canhttp/src/client/mod.rs @@ -3,7 +3,7 @@ mod tests; use crate::{convert::ConvertError, ConvertServiceBuilder}; use ic_cdk::call::Error as IcCdkError; -use ic_cdk::management_canister::{ +use ic_cdk_management_canister::{ HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse, TransformContext, }; use ic_error_types::RejectCode; @@ -16,7 +16,7 @@ use thiserror::Error; use tower::{BoxError, Service, ServiceBuilder}; use tower_layer::Layer; -/// Thin wrapper around [`ic_cdk::management_canister::http_request`] that implements the +/// Thin wrapper around [`ic_cdk_management_canister::http_request`] that implements the /// [`tower::Service`] trait. Its functionality can be extended by composing so-called /// [tower middlewares](https://docs.rs/tower/latest/tower/#usage). /// @@ -107,14 +107,14 @@ impl Service for Client { } IcCdkError::CandidDecodeFailed(e) => { // This can only happen if there is a bug in the CDK in the implementation - // of `ic_cdk::management_canister::http_request`. + // of `ic_cdk_management_canister::http_request`. panic!("Candid decode failed while performing HTTP outcall: {e}"); } } } Box::pin(async move { - ic_cdk::management_canister::http_request(&request) + ic_cdk_management_canister::http_request(&request) .await .map_err(convert_error) }) diff --git a/canhttp/src/cycles/mod.rs b/canhttp/src/cycles/mod.rs index 6e10cee..7630bbc 100644 --- a/canhttp/src/cycles/mod.rs +++ b/canhttp/src/cycles/mod.rs @@ -45,7 +45,7 @@ use crate::{ convert::{ConvertRequestLayer, Filter}, ConvertServiceBuilder, }; -use ic_cdk::management_canister::HttpRequestArgs; +use ic_cdk_management_canister::HttpRequestArgs; use std::convert::Infallible; use thiserror::Error; use tower::ServiceBuilder; @@ -152,7 +152,7 @@ pub enum ChargeCallerError { } /// A middleware to handle cycles accounting, i.e. verify if sufficiently many cycles are available in a request. -/// The cost of sending the request is calculated by [`ic_cdk::api::cost_http_request`]. +/// The cost of sending the request is calculated by [`ic_cdk_management_canister::cost_http_request`]. #[derive(Clone, Debug)] pub struct CyclesAccounting { charging_policy: ChargingPolicy, @@ -172,7 +172,7 @@ where type Error = ChargingPolicy::Error; fn filter(&mut self, request: HttpRequestArgs) -> Result { - let cycles_to_attach = ic_cdk::management_canister::cost_http_request(&request); + let cycles_to_attach = ic_cdk_management_canister::cost_http_request(&request); self.charging_policy .charge_cycles(&request, cycles_to_attach)?; Ok(request) diff --git a/canhttp/src/http/mod.rs b/canhttp/src/http/mod.rs index ba9d972..1267ac0 100644 --- a/canhttp/src/http/mod.rs +++ b/canhttp/src/http/mod.rs @@ -30,7 +30,7 @@ //! //! ```rust //! use canhttp::{http::{HttpConversionLayer }, MaxResponseBytesRequestExtension}; -//! use ic_cdk::management_canister::{HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse}; +//! use ic_cdk_management_canister::{HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse}; //! use tower::{Service, ServiceBuilder, ServiceExt, BoxError}; //! //! async fn always_200_ok(request: IcHttpRequest) -> Result { @@ -59,8 +59,8 @@ //! # } //! ``` //! -//! [`IcHttpRequest`]: ic_cdk::management_canister::HttpRequestArgs -//! [`IcHttpResponse`]: ic_cdk::management_canister::HttpRequestResult +//! [`IcHttpRequest`]: ic_cdk_management_canister::HttpRequestArgs +//! [`IcHttpResponse`]: ic_cdk_management_canister::HttpRequestResult #[cfg(test)] mod tests; diff --git a/canhttp/src/http/request.rs b/canhttp/src/http/request.rs index d0d1676..a3d00e3 100644 --- a/canhttp/src/http/request.rs +++ b/canhttp/src/http/request.rs @@ -3,7 +3,7 @@ use crate::{ IsReplicatedRequestExtension, MaxResponseBytesRequestExtension, TransformContextRequestExtension, }; -use ic_cdk::management_canister::{ +use ic_cdk_management_canister::{ HttpHeader as IcHttpHeader, HttpMethod as IcHttpMethod, HttpRequestArgs as IcHttpRequest, TransformContext, }; diff --git a/canhttp/src/http/response.rs b/canhttp/src/http/response.rs index 1b0c77e..fa2b3f5 100644 --- a/canhttp/src/http/response.rs +++ b/canhttp/src/http/response.rs @@ -1,5 +1,5 @@ use crate::convert::{Convert, Filter}; -use ic_cdk::management_canister::HttpRequestResult as IcHttpResponse; +use ic_cdk_management_canister::HttpRequestResult as IcHttpResponse; use thiserror::Error; /// HTTP response with a body made of bytes. @@ -40,7 +40,7 @@ impl Convert for HttpResponseConverter { fn try_convert(&mut self, response: IcHttpResponse) -> Result { use http::{HeaderMap, HeaderName, HeaderValue, StatusCode}; - use ic_cdk::management_canister::HttpHeader as IcHttpHeader; + use ic_cdk_management_canister::HttpHeader as IcHttpHeader; use num_traits::ToPrimitive; let status = response diff --git a/canhttp/src/http/tests.rs b/canhttp/src/http/tests.rs index 10413d6..73b4e55 100644 --- a/canhttp/src/http/tests.rs +++ b/canhttp/src/http/tests.rs @@ -10,7 +10,7 @@ use crate::{ use assert_matches::assert_matches; use candid::{Decode, Encode, Principal}; use http::StatusCode; -use ic_cdk::management_canister::{ +use ic_cdk_management_canister::{ HttpHeader as IcHttpHeader, HttpMethod as IcHttpMethod, HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse, TransformContext, TransformFunc, }; diff --git a/canhttp/src/observability/mod.rs b/canhttp/src/observability/mod.rs index ac08557..0de9cfe 100644 --- a/canhttp/src/observability/mod.rs +++ b/canhttp/src/observability/mod.rs @@ -16,7 +16,7 @@ //! //! ```rust //! use canhttp::{IcError, observability::ObservabilityLayer}; -//! use ic_cdk::management_canister::{HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse}; +//! use ic_cdk_management_canister::{HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse}; //! use tower::{Service, ServiceBuilder, ServiceExt}; //! use std::cell::RefCell; //! @@ -76,7 +76,7 @@ //! The previous example can be refined by extracting request data (such as the request URL) to observe the responses/errors: //! ```rust //! use canhttp::{IcError, observability::ObservabilityLayer}; -//! use ic_cdk::management_canister::{HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse}; +//! use ic_cdk_management_canister::{HttpRequestArgs as IcHttpRequest, HttpRequestResult as IcHttpResponse}; //! use maplit::btreemap; //! use tower::{Service, ServiceBuilder, ServiceExt}; //! use std::cell::RefCell; diff --git a/ic-canister-runtime/Cargo.toml b/ic-canister-runtime/Cargo.toml index 0818e8e..cd8dbf6 100644 --- a/ic-canister-runtime/Cargo.toml +++ b/ic-canister-runtime/Cargo.toml @@ -17,6 +17,7 @@ wallet = ["dep:regex-lite", "dep:serde_bytes"] async-trait = { workspace = true } candid = { workspace = true } ic-cdk = { workspace = true } +ic-cdk-management-canister = { workspace = true } ic-error-types = { workspace = true } regex-lite = { workspace = true, optional = true } serde = { workspace = true } diff --git a/ic-canister-runtime/src/wallet.rs b/ic-canister-runtime/src/wallet.rs index 7a80a1e..a3b03d1 100644 --- a/ic-canister-runtime/src/wallet.rs +++ b/ic-canister-runtime/src/wallet.rs @@ -1,7 +1,7 @@ use crate::{IcError, Runtime}; use async_trait::async_trait; use candid::{decode_one, encode_args, utils::ArgumentEncoder, CandidType, Deserialize, Principal}; -use ic_cdk::management_canister::CanisterId; +use ic_cdk_management_canister::CanisterId; use ic_error_types::RejectCode; use regex_lite::Regex; use serde::de::DeserializeOwned; From d960b307e6415941701cc85b2795f43db712ce42 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 10:31:47 +0000 Subject: [PATCH 4/7] chore: release --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- canhttp/CHANGELOG.md | 8 ++++++++ canhttp/Cargo.toml | 2 +- ic-agent-canister-runtime/CHANGELOG.md | 8 ++++++++ ic-agent-canister-runtime/Cargo.toml | 2 +- ic-canister-runtime/CHANGELOG.md | 8 ++++++++ ic-canister-runtime/Cargo.toml | 2 +- ic-pocket-canister-runtime/CHANGELOG.md | 8 ++++++++ ic-pocket-canister-runtime/Cargo.toml | 2 +- 10 files changed, 46 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e75eae3..9f3511b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -353,7 +353,7 @@ dependencies = [ [[package]] name = "canhttp" -version = "0.5.2" +version = "0.5.3" dependencies = [ "assert_matches", "candid", @@ -601,9 +601,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -1094,9 +1094,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -1422,7 +1422,7 @@ dependencies = [ [[package]] name = "ic-agent-canister-runtime" -version = "0.2.1" +version = "0.2.2" dependencies = [ "async-trait", "candid", @@ -1435,7 +1435,7 @@ dependencies = [ [[package]] name = "ic-canister-runtime" -version = "0.2.1" +version = "0.2.2" dependencies = [ "async-trait", "candid", @@ -1567,7 +1567,7 @@ dependencies = [ [[package]] name = "ic-pocket-canister-runtime" -version = "0.4.1" +version = "0.4.2" dependencies = [ "async-trait", "candid", diff --git a/Cargo.toml b/Cargo.toml index 3ebcbe4..ee800f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,14 +23,14 @@ readme = "README.md" assert_matches = "1.5.0" async-trait = "0.1.89" candid = { version = "0.10.26" } -canhttp = { version = "0.5.2", path = "canhttp" } +canhttp = { version = "0.5.3", path = "canhttp" } ciborium = "0.2.2" derive_more = { version = "2.1.1", features = ["from", "try_unwrap", "unwrap"] } futures-channel = "0.3.32" futures-util = "0.3.32" http = "1.4.0" ic-agent = "0.46.2" -ic-canister-runtime = { version = "0.2.1", path = "ic-canister-runtime" } +ic-canister-runtime = { version = "0.2.2", path = "ic-canister-runtime" } ic-cdk = "0.20.0" ic-cdk-management-canister = "0.1.1" ic-error-types = "0.2" diff --git a/canhttp/CHANGELOG.md b/canhttp/CHANGELOG.md index 0f8d235..be0a89b 100644 --- a/canhttp/CHANGELOG.md +++ b/canhttp/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.5.3] - 2026-03-23 + +### Changed + +- Cargo upgrade --incompatible + +[0.5.3]: https://github.com/dfinity/canhttp/compare/0.5.2..0.5.3 + ## [0.5.2] - 2026-03-10 ### Changed diff --git a/canhttp/Cargo.toml b/canhttp/Cargo.toml index 509bb93..d72eeec 100644 --- a/canhttp/Cargo.toml +++ b/canhttp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "canhttp" -version = "0.5.2" +version = "0.5.3" description = "Rust library to issue HTTPs outcalls from a canister on the Internet Computer" license.workspace = true readme.workspace = true diff --git a/ic-agent-canister-runtime/CHANGELOG.md b/ic-agent-canister-runtime/CHANGELOG.md index f443c45..fe3c97c 100644 --- a/ic-agent-canister-runtime/CHANGELOG.md +++ b/ic-agent-canister-runtime/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.2.2] - 2026-03-23 + +### Changed + +- Update Cargo.toml dependencies + +[0.2.2]: https://github.com/dfinity/canhttp/compare/0.2.1..0.2.2 + ## [0.2.1] - 2026-03-10 ### Changed diff --git a/ic-agent-canister-runtime/Cargo.toml b/ic-agent-canister-runtime/Cargo.toml index 1d8ac95..c3ebf69 100644 --- a/ic-agent-canister-runtime/Cargo.toml +++ b/ic-agent-canister-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-agent-canister-runtime" -version = "0.2.1" +version = "0.2.2" description = "Implementation of a canister runtime of the Internet Computer for `ic-agent`" license.workspace = true homepage.workspace = true diff --git a/ic-canister-runtime/CHANGELOG.md b/ic-canister-runtime/CHANGELOG.md index 58a5558..ac339e4 100644 --- a/ic-canister-runtime/CHANGELOG.md +++ b/ic-canister-runtime/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.2.2] - 2026-03-23 + +### Changed + +- Cargo upgrade --incompatible + +[0.2.2]: https://github.com/dfinity/canhttp/compare/0.2.1..0.2.2 + ## [0.2.1] - 2026-03-10 ### Changed diff --git a/ic-canister-runtime/Cargo.toml b/ic-canister-runtime/Cargo.toml index cd8dbf6..0a8f9c3 100644 --- a/ic-canister-runtime/Cargo.toml +++ b/ic-canister-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-canister-runtime" -version = "0.2.1" +version = "0.2.2" description = "Rust library that abstracts the canister runtime on the Internet Computer" license.workspace = true homepage.workspace = true diff --git a/ic-pocket-canister-runtime/CHANGELOG.md b/ic-pocket-canister-runtime/CHANGELOG.md index fabad95..d8ec59c 100644 --- a/ic-pocket-canister-runtime/CHANGELOG.md +++ b/ic-pocket-canister-runtime/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.4.2] - 2026-03-23 + +### Added + +- Support batch JSON-RPC request matching in mocks ([#95](https://github.com/dfinity/canhttp/pull/95)) + +[0.4.2]: https://github.com/dfinity/canhttp/compare/0.4.1..0.4.2 + ## [0.4.1] - 2026-03-10 ### Added diff --git a/ic-pocket-canister-runtime/Cargo.toml b/ic-pocket-canister-runtime/Cargo.toml index 01c0ffc..7c325e7 100644 --- a/ic-pocket-canister-runtime/Cargo.toml +++ b/ic-pocket-canister-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-pocket-canister-runtime" -version = "0.4.1" +version = "0.4.2" description = "Canisters runtime on the Internet Computer using Pocket IC" license.workspace = true homepage.workspace = true From 73a65e799fce0daa907d3b3f646fb84eb32d0679 Mon Sep 17 00:00:00 2001 From: gregorydemay Date: Mon, 23 Mar 2026 11:59:20 +0100 Subject: [PATCH 5/7] DEFI-2565: update changelogs --- canhttp/CHANGELOG.md | 4 ++-- ic-agent-canister-runtime/CHANGELOG.md | 4 ++-- ic-canister-runtime/CHANGELOG.md | 4 ++-- ic-pocket-canister-runtime/CHANGELOG.md | 6 +++++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/canhttp/CHANGELOG.md b/canhttp/CHANGELOG.md index be0a89b..de70965 100644 --- a/canhttp/CHANGELOG.md +++ b/canhttp/CHANGELOG.md @@ -9,9 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Cargo upgrade --incompatible +- Update dependencies ([#97](https://github.com/dfinity/canhttp/pull/97)) -[0.5.3]: https://github.com/dfinity/canhttp/compare/0.5.2..0.5.3 +[0.5.3]: https://github.com/dfinity/canhttp/compare/canhttp-v0.5.2..canhttp-v0.5.3 ## [0.5.2] - 2026-03-10 diff --git a/ic-agent-canister-runtime/CHANGELOG.md b/ic-agent-canister-runtime/CHANGELOG.md index fe3c97c..5e1a3df 100644 --- a/ic-agent-canister-runtime/CHANGELOG.md +++ b/ic-agent-canister-runtime/CHANGELOG.md @@ -9,9 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Update Cargo.toml dependencies +- Update dependencies ([#97](https://github.com/dfinity/canhttp/pull/97)) -[0.2.2]: https://github.com/dfinity/canhttp/compare/0.2.1..0.2.2 +[0.2.2]: https://github.com/dfinity/canhttp/compare/ic-agent-canister-runtime-v0.2.1..ic-agent-canister-runtime-v0.2.2 ## [0.2.1] - 2026-03-10 diff --git a/ic-canister-runtime/CHANGELOG.md b/ic-canister-runtime/CHANGELOG.md index ac339e4..d3625fc 100644 --- a/ic-canister-runtime/CHANGELOG.md +++ b/ic-canister-runtime/CHANGELOG.md @@ -9,9 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Cargo upgrade --incompatible +- Update dependencies ([#97](https://github.com/dfinity/canhttp/pull/97)) -[0.2.2]: https://github.com/dfinity/canhttp/compare/0.2.1..0.2.2 +[0.2.2]: https://github.com/dfinity/canhttp/compare/ic-canister-runtime-v0.2.1..ic-canister-runtime-v0.2.2 ## [0.2.1] - 2026-03-10 diff --git a/ic-pocket-canister-runtime/CHANGELOG.md b/ic-pocket-canister-runtime/CHANGELOG.md index d8ec59c..10acb52 100644 --- a/ic-pocket-canister-runtime/CHANGELOG.md +++ b/ic-pocket-canister-runtime/CHANGELOG.md @@ -11,7 +11,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Support batch JSON-RPC request matching in mocks ([#95](https://github.com/dfinity/canhttp/pull/95)) -[0.4.2]: https://github.com/dfinity/canhttp/compare/0.4.1..0.4.2 +### Changed + +- Update dependencies ([#97](https://github.com/dfinity/canhttp/pull/97)) + +[0.4.2]: https://github.com/dfinity/canhttp/compare/ic-pocket-canister-runtime-v0.4.1..ic-pocket-canister-runtime-v0.4.2 ## [0.4.1] - 2026-03-10 From 9bd60c6505e229969330804e0d68e958c5dd2fe6 Mon Sep 17 00:00:00 2001 From: gregorydemay Date: Mon, 23 Mar 2026 13:04:53 +0100 Subject: [PATCH 6/7] DEFI-2565: canhttp breaking changes --- Cargo.lock | 2 +- Cargo.toml | 2 +- canhttp/CHANGELOG.md | 4 ++-- canhttp/Cargo.toml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 14b49d5..b71b3cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -353,7 +353,7 @@ dependencies = [ [[package]] name = "canhttp" -version = "0.5.3" +version = "0.6.0" dependencies = [ "assert_matches", "candid", diff --git a/Cargo.toml b/Cargo.toml index ee800f9..cecf364 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ readme = "README.md" assert_matches = "1.5.0" async-trait = "0.1.89" candid = { version = "0.10.26" } -canhttp = { version = "0.5.3", path = "canhttp" } +canhttp = { version = "0.6.0", path = "canhttp" } ciborium = "0.2.2" derive_more = { version = "2.1.1", features = ["from", "try_unwrap", "unwrap"] } futures-channel = "0.3.32" diff --git a/canhttp/CHANGELOG.md b/canhttp/CHANGELOG.md index de70965..cb5bf4e 100644 --- a/canhttp/CHANGELOG.md +++ b/canhttp/CHANGELOG.md @@ -5,11 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.5.3] - 2026-03-23 +## [0.6.0] - 2026-03-23 ### Changed -- Update dependencies ([#97](https://github.com/dfinity/canhttp/pull/97)) +- **Breaking:** Update dependencies, including `ic-cdk` to `v0.20.0`. The types `HttpRequestArgs`, `HttpRequestResult`, and `TransformContext` were removed from `ic_cdk` and have been moved to a new crate [`ic-cdk-management-canister`](https://crates.io/crates/ic-cdk-management-canister) ([#97](https://github.com/dfinity/canhttp/pull/97)). [0.5.3]: https://github.com/dfinity/canhttp/compare/canhttp-v0.5.2..canhttp-v0.5.3 diff --git a/canhttp/Cargo.toml b/canhttp/Cargo.toml index d72eeec..2edc673 100644 --- a/canhttp/Cargo.toml +++ b/canhttp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "canhttp" -version = "0.5.3" +version = "0.6.0" description = "Rust library to issue HTTPs outcalls from a canister on the Internet Computer" license.workspace = true readme.workspace = true From cb7c27e274d865c6a02a68eda015e0e4db4cceb2 Mon Sep 17 00:00:00 2001 From: gregorydemay Date: Mon, 23 Mar 2026 13:11:25 +0100 Subject: [PATCH 7/7] DEFI-2565: ic-agent-canister-runtime breaking --- Cargo.lock | 2 +- ic-agent-canister-runtime/CHANGELOG.md | 6 +++--- ic-agent-canister-runtime/Cargo.toml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b71b3cb..d01648d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1422,7 +1422,7 @@ dependencies = [ [[package]] name = "ic-agent-canister-runtime" -version = "0.2.2" +version = "0.3.0" dependencies = [ "async-trait", "candid", diff --git a/ic-agent-canister-runtime/CHANGELOG.md b/ic-agent-canister-runtime/CHANGELOG.md index 5e1a3df..73f9c28 100644 --- a/ic-agent-canister-runtime/CHANGELOG.md +++ b/ic-agent-canister-runtime/CHANGELOG.md @@ -5,13 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.2.2] - 2026-03-23 +## [0.3.0] - 2026-03-23 ### Changed -- Update dependencies ([#97](https://github.com/dfinity/canhttp/pull/97)) +- **Breaking:** Update dependencies, including `ic-agent` to `v0.46.2` ([#97](https://github.com/dfinity/canhttp/pull/97)). -[0.2.2]: https://github.com/dfinity/canhttp/compare/ic-agent-canister-runtime-v0.2.1..ic-agent-canister-runtime-v0.2.2 +[0.2.2]: https://github.com/dfinity/canhttp/compare/ic-agent-canister-runtime-v0.2.1..ic-agent-canister-runtime-v0.3.0 ## [0.2.1] - 2026-03-10 diff --git a/ic-agent-canister-runtime/Cargo.toml b/ic-agent-canister-runtime/Cargo.toml index c3ebf69..04456cf 100644 --- a/ic-agent-canister-runtime/Cargo.toml +++ b/ic-agent-canister-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-agent-canister-runtime" -version = "0.2.2" +version = "0.3.0" description = "Implementation of a canister runtime of the Internet Computer for `ic-agent`" license.workspace = true homepage.workspace = true