diff --git a/Cargo.lock b/Cargo.lock index fb78ef9e37..92b2a4970a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,17 +42,6 @@ dependencies = [ "generic-array 0.14.5", ] -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", -] - [[package]] name = "aes" version = "0.7.5" @@ -60,7 +49,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", - "cipher 0.3.0", + "cipher", "cpufeatures 0.2.1", "opaque-debug 0.3.0", ] @@ -72,46 +61,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" dependencies = [ "aead", - "aes 0.7.5", - "cipher 0.3.0", + "aes", + "cipher", "ctr", "ghash", "subtle 2.4.0", ] [[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.10.0" +name = "ahash" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", + "getrandom 0.2.9", + "once_cell", + "version_check", ] [[package]] name = "ahash" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" - -[[package]] -name = "ahash" -version = "0.7.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ - "getrandom 0.2.9", + "cfg-if 1.0.0", "once_cell", "version_check", ] @@ -260,15 +234,6 @@ dependencies = [ "pin-project-lite 0.2.9", ] -[[package]] -name = "atomic-shim" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cd4b51d303cf3501c301e8125df442128d3c6d7c69f71b27833d253de47e77" -dependencies = [ - "crossbeam-utils 0.8.8", -] - [[package]] name = "atomicdex-gossipsub" version = "0.20.0" @@ -380,12 +345,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base-x" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" - [[package]] name = "base16ct" version = "0.1.1" @@ -431,6 +390,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "base64ct" version = "1.5.1" @@ -469,7 +434,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aaf33151a6429fe9211d1b276eafdf70cdff28b071e76c0b0e1503221ea3744" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "num-integer", "num-traits", "serde", @@ -574,9 +539,9 @@ dependencies = [ [[package]] name = "blake2" -version = "0.10.4" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ "digest 0.10.3", ] @@ -650,12 +615,12 @@ dependencies = [ [[package]] name = "block-modes" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" +checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e" dependencies = [ "block-padding 0.2.1", - "cipher 0.2.5", + "cipher", ] [[package]] @@ -902,7 +867,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91" dependencies = [ "cfg-if 1.0.0", - "cipher 0.3.0", + "cipher", "cpufeatures 0.2.1", "zeroize", ] @@ -915,7 +880,7 @@ checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a" dependencies = [ "aead", "chacha20", - "cipher 0.3.0", + "cipher", "poly1305", "zeroize", ] @@ -948,15 +913,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.5", -] - [[package]] name = "cipher" version = "0.3.0" @@ -1183,7 +1139,6 @@ dependencies = [ "futures 0.1.29", "futures 0.3.15", "futures-timer", - "getrandom 0.2.9", "gstuff", "hex 0.4.3", "http 0.2.7", @@ -1270,12 +1225,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" -[[package]] -name = "const_fn" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402da840495de3f976eaefc3485b7f5eb5b0bf9761f9a47be27fe975b3b8c2ec" - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -1636,7 +1585,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" dependencies = [ - "cipher 0.3.0", + "cipher", ] [[package]] @@ -1917,12 +1866,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - [[package]] name = "dlopen" version = "0.1.8" @@ -2098,9 +2041,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ "atty", "humantime", @@ -2112,7 +2055,7 @@ dependencies = [ [[package]] name = "equihash" version = "0.1.0" -source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.0.0#cc467f04f7449ffbca49e4ba17cabc78e90ac7d1" +source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.3.0#443fef0cf301b04375f76128e7436b4de02d1c4d" dependencies = [ "blake2b_simd", "byteorder 1.4.3", @@ -2381,13 +2324,14 @@ dependencies = [ [[package]] name = "fpe" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25080721bbcd2cd4d765b7d607ea350425fa087ce53cd3e31afcacdab850352" +checksum = "cd910db5f9ca4dc3116f8c46367825807aa2b942f72565f16b4be0b208a00a9e" dependencies = [ - "aes 0.6.0", "block-modes", - "num-bigint 0.3.2", + "cipher", + "libm", + "num-bigint", "num-integer", "num-traits", ] @@ -2697,9 +2641,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" dependencies = [ "bytes 1.1.0", "fnv", @@ -2731,38 +2675,38 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.9.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash 0.4.7", + "ahash 0.7.6", ] [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" dependencies = [ "ahash 0.7.6", ] [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.7.6", + "ahash 0.8.3", ] [[package]] name = "hashlink" -version = "0.6.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d99cf782f0dc4372d26846bec3de7804ceb5df083c2d4462c0b8d2330e894fa8" +checksum = "0761a1b9491c4f2e3d66aa0f62d0fba0af9a0e2852e4d48ea506632a4b56e6aa" dependencies = [ - "hashbrown 0.9.1", + "hashbrown 0.13.2", ] [[package]] @@ -2939,9 +2883,9 @@ checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" [[package]] name = "httparse" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -2978,9 +2922,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.18" +version = "0.14.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -2993,7 +2937,7 @@ dependencies = [ "httpdate", "itoa 1.0.1", "pin-project-lite 0.2.9", - "socket2 0.4.4", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3180,7 +3124,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98" dependencies = [ - "socket2 0.4.4", + "socket2 0.4.9", "widestring", "winapi", "winreg", @@ -3371,6 +3315,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "libp2p" version = "0.45.1" @@ -3618,7 +3568,7 @@ dependencies = [ "libc", "libp2p-core", "log 0.4.17", - "socket2 0.4.4", + "socket2 0.4.9", "tokio", ] @@ -3763,9 +3713,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.20.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d31059f22935e6c31830db5249ba2b7ecd54fd73a9909286f0a67aa55c2fbd" +checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa" dependencies = [ "cc", "pkg-config", @@ -3918,10 +3868,10 @@ dependencies = [ ] [[package]] -name = "mach" -version = "0.3.2" +name = "mach2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" dependencies = [ "libc", ] @@ -4001,26 +3951,27 @@ dependencies = [ [[package]] name = "metrics" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142c53885123b68d94108295a09d4afe1a1388ed95b54d5dacd9a454753030f2" +checksum = "aa8ebbd1a9e57bbab77b9facae7f5136aea44c356943bf9a198f647da64285d6" dependencies = [ - "ahash 0.7.6", + "ahash 0.8.3", "metrics-macros", + "portable-atomic", ] [[package]] name = "metrics-exporter-prometheus" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953cbbb6f9ba4b9304f4df79b98cdc9d14071ed93065a9fca11c00c5d9181b66" +checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" dependencies = [ + "base64 0.21.2", "hyper", "indexmap", "ipnet", "metrics", "metrics-util", - "parking_lot 0.11.1", "quanta", "thiserror", "tokio", @@ -4029,31 +3980,29 @@ dependencies = [ [[package]] name = "metrics-macros" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e30813093f757be5cf21e50389a24dc7dbb22c49f23b7e8f51d69b508a5ffa" +checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" dependencies = [ "proc-macro2 1.0.58", "quote 1.0.27", - "syn 1.0.95", + "syn 2.0.16", ] [[package]] name = "metrics-util" -version = "0.13.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1f4b69bef1e2b392b2d4a12902f2af90bb438ba4a66aa222d1023fa6561b50" +checksum = "111cb375987443c3de8d503580b536f77dc8416d32db62d9456db5d93bd7ac47" dependencies = [ "aho-corasick", - "atomic-shim", "crossbeam-epoch 0.9.5", "crossbeam-utils 0.8.8", - "hashbrown 0.11.2", + "hashbrown 0.13.2", "indexmap", "metrics", "num_cpus", "ordered-float", - "parking_lot 0.11.1", "quanta", "radix_trie", "sketches-ddsketch", @@ -4107,7 +4056,6 @@ dependencies = [ "env_logger", "futures 0.3.15", "futures-rustls 0.21.1", - "getrandom 0.2.9", "hex 0.4.3", "lazy_static", "libp2p", @@ -4444,7 +4392,7 @@ name = "mm2_number" version = "0.1.0" dependencies = [ "bigdecimal", - "num-bigint 0.4.3", + "num-bigint", "num-rational", "num-traits", "paste", @@ -4621,17 +4569,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-bigint" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.3" @@ -4672,7 +4609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" dependencies = [ "autocfg 1.1.0", - "num-bigint 0.4.3", + "num-bigint", "num-integer", "num-traits", "serde", @@ -4680,9 +4617,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg 1.1.0", ] @@ -4763,9 +4700,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "ordered-float" -version = "2.10.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213" dependencies = [ "num-traits", ] @@ -5094,9 +5031,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.17" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "poly1305" @@ -5121,6 +5058,12 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc59d1bcc64fc5d021d67521f818db868368028108d37f0e98d74e33f68297b5" + [[package]] name = "ppv-lite86" version = "0.2.8" @@ -5204,12 +5147,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - [[package]] name = "proc-macro2" version = "0.4.30" @@ -5342,16 +5279,16 @@ dependencies = [ [[package]] name = "quanta" -version = "0.9.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" dependencies = [ "crossbeam-utils 0.8.8", "libc", - "mach", + "mach2", "once_cell", "raw-cpuid", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -5868,19 +5805,20 @@ dependencies = [ [[package]] name = "rmp" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f10b46df14cf1ee1ac7baa4d2fbc2c52c0622a4b82fa8740e37bc452ac0184f" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" dependencies = [ "byteorder 1.4.3", "num-traits", + "paste", ] [[package]] name = "rmp-serde" -version = "0.14.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1ee98f14fe8b8e9c5ea13d25da7b2a1796169202c57a09d7288de90d56222b" +checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" dependencies = [ "byteorder 1.4.3", "rmp", @@ -5941,18 +5879,17 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.24.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38ee71cbab2c827ec0ac24e76f82eca723cee92c509a65f67dee393c25112" +checksum = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a" dependencies = [ "bitflags", "fallible-iterator", "fallible-streaming-iterator", "hashlink", "libsqlite3-sys", - "memchr", "smallvec 1.6.1", - "time 0.2.27", + "time 0.3.11", ] [[package]] @@ -6396,12 +6333,6 @@ dependencies = [ "opaque-debug 0.3.0", ] -[[package]] -name = "sha1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" - [[package]] name = "sha2" version = "0.8.2" @@ -6494,9 +6425,9 @@ checksum = "833011ca526bd88f16778d32c699d325a9ad302fa06381cd66f7be63351d3f6d" [[package]] name = "sketches-ddsketch" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d2ecae5fcf33b122e2e6bd520a57ccf152d2dde3b38c71039df1a6867264ee" +checksum = "68a406c1882ed7f29cd5e248c9848a80e7cb6ae0fea82346d2746f2f941c07e1" [[package]] name = "slab" @@ -6570,9 +6501,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -6866,7 +6797,7 @@ dependencies = [ "rand 0.7.3", "serde", "serde_derive", - "socket2 0.4.4", + "socket2 0.4.9", "solana-logger", "solana-sdk", "solana-version", @@ -7429,70 +7360,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "standback" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" -dependencies = [ - "version_check", -] - [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", -] - -[[package]] -name = "stdweb-derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" -dependencies = [ - "proc-macro2 1.0.58", - "quote 1.0.27", - "serde", - "serde_derive", - "syn 1.0.95", -] - -[[package]] -name = "stdweb-internal-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" -dependencies = [ - "base-x", - "proc-macro2 1.0.58", - "quote 1.0.27", - "serde", - "serde_derive", - "serde_json", - "sha1", - "syn 1.0.95", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - [[package]] name = "strsim" version = "0.8.0" @@ -7810,9 +7683,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -7890,40 +7763,16 @@ dependencies = [ "winapi", ] -[[package]] -name = "time" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" -dependencies = [ - "const_fn", - "libc", - "standback", - "stdweb", - "time-macros 0.1.1", - "version_check", - "winapi", -] - [[package]] name = "time" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" dependencies = [ + "itoa 1.0.1", "libc", "num_threads", - "time-macros 0.2.4", -] - -[[package]] -name = "time-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" -dependencies = [ - "proc-macro-hack", - "time-macros-impl", + "time-macros", ] [[package]] @@ -7932,19 +7781,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" -[[package]] -name = "time-macros-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" -dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.58", - "quote 1.0.27", - "standback", - "syn 1.0.95", -] - [[package]] name = "tiny-bip39" version = "0.8.2" @@ -8012,7 +7848,7 @@ dependencies = [ "parking_lot 0.12.0", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2 0.4.4", + "socket2 0.4.9", "tokio-macros", "windows-sys 0.42.0", ] @@ -8560,9 +8396,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "void" @@ -8603,12 +8439,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -9044,7 +8874,7 @@ checksum = "0f9079049688da5871a7558ddacb7f04958862c703e68258594cb7a862b5e33f" [[package]] name = "zcash_client_backend" version = "0.5.0" -source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.0.0#cc467f04f7449ffbca49e4ba17cabc78e90ac7d1" +source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.3.0#443fef0cf301b04375f76128e7436b4de02d1c4d" dependencies = [ "base64 0.13.0", "bech32", @@ -9060,7 +8890,7 @@ dependencies = [ "protobuf-codegen-pure", "rand_core 0.5.1", "subtle 2.4.0", - "time 0.2.27", + "time 0.3.11", "zcash_note_encryption", "zcash_primitives", ] @@ -9068,17 +8898,18 @@ dependencies = [ [[package]] name = "zcash_client_sqlite" version = "0.3.0" -source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.0.0#cc467f04f7449ffbca49e4ba17cabc78e90ac7d1" +source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.3.0#443fef0cf301b04375f76128e7436b4de02d1c4d" dependencies = [ "bech32", "bs58", "ff 0.8.0", "group 0.8.0", "jubjub", + "libsqlite3-sys", "protobuf", "rand_core 0.5.1", "rusqlite", - "time 0.2.27", + "time 0.3.11", "zcash_client_backend", "zcash_primitives", ] @@ -9086,7 +8917,7 @@ dependencies = [ [[package]] name = "zcash_note_encryption" version = "0.0.0" -source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.0.0#cc467f04f7449ffbca49e4ba17cabc78e90ac7d1" +source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.3.0#443fef0cf301b04375f76128e7436b4de02d1c4d" dependencies = [ "blake2b_simd", "byteorder 1.4.3", @@ -9100,9 +8931,9 @@ dependencies = [ [[package]] name = "zcash_primitives" version = "0.5.0" -source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.0.0#cc467f04f7449ffbca49e4ba17cabc78e90ac7d1" +source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.3.0#443fef0cf301b04375f76128e7436b4de02d1c4d" dependencies = [ - "aes 0.6.0", + "aes", "bitvec 0.18.5", "blake2b_simd", "blake2s_simd", @@ -9130,7 +8961,7 @@ dependencies = [ [[package]] name = "zcash_proofs" version = "0.5.0" -source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.0.0#cc467f04f7449ffbca49e4ba17cabc78e90ac7d1" +source = "git+https://github.com/KomodoPlatform/librustzcash.git?tag=k-1.3.0#443fef0cf301b04375f76128e7436b4de02d1c4d" dependencies = [ "bellman", "blake2b_simd", diff --git a/mm2src/coins/Cargo.toml b/mm2src/coins/Cargo.toml index 88f8d94b4b..68898aa560 100644 --- a/mm2src/coins/Cargo.toml +++ b/mm2src/coins/Cargo.toml @@ -76,7 +76,7 @@ prost = "0.10" protobuf = "2.20" rand = { version = "0.7", features = ["std", "small_rng"] } rlp = { version = "0.5" } -rmp-serde = "0.14.3" +rmp-serde = "1.1.1" rpc = { path = "../mm2_bitcoin/rpc" } rpc_task = { path = "../rpc_task" } script = { path = "../mm2_bitcoin/script" } @@ -124,7 +124,7 @@ web-sys = { version = "0.3.55", features = ["console", "Headers", "Request", "Re [target.'cfg(not(target_arch = "wasm32"))'.dependencies] dirs = { version = "1" } bitcoin = "0.29" -hyper = { version = "0.14.11", features = ["client", "http2", "server", "tcp"] } +hyper = { version = "0.14.26", features = ["client", "http2", "server", "tcp"] } # using webpki-tokio to avoid rejecting valid certificates # got "invalid certificate: UnknownIssuer" for https://ropsten.infura.io on iOS using default-features hyper-rustls = { version = "0.23", default-features = false, features = ["http1", "http2", "webpki-tokio"] } @@ -140,10 +140,10 @@ tokio = { version = "1.20" } tokio-rustls = { version = "0.23" } tonic = { version = "0.7", features = ["tls", "tls-webpki-roots", "compression"] } webpki-roots = { version = "0.22" } -zcash_client_backend = { git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.0.0" } -zcash_client_sqlite = { git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.0.0" } -zcash_primitives = { features = ["transparent-inputs"], git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.0.0" } -zcash_proofs = { git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.0.0" } +zcash_client_backend = { git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.3.0" } +zcash_client_sqlite = { git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.3.0" } +zcash_primitives = { features = ["transparent-inputs"], git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.3.0" } +zcash_proofs = { git = "https://github.com/KomodoPlatform/librustzcash.git", tag = "k-1.3.0" } [target.'cfg(windows)'.dependencies] winapi = "0.3" diff --git a/mm2src/coins/hd_wallet_storage/sqlite_storage.rs b/mm2src/coins/hd_wallet_storage/sqlite_storage.rs index 38d1201120..7d015b3d29 100644 --- a/mm2src/coins/hd_wallet_storage/sqlite_storage.rs +++ b/mm2src/coins/hd_wallet_storage/sqlite_storage.rs @@ -1,9 +1,11 @@ +#![allow(deprecated)] // TODO: remove this once rusqlite is >= 0.29 + use crate::hd_wallet_storage::{HDAccountStorageItem, HDWalletId, HDWalletStorageError, HDWalletStorageInternalOps, HDWalletStorageResult}; use async_trait::async_trait; use common::async_blocking; use db_common::owned_named_params; -use db_common::sqlite::rusqlite::{Connection, Error as SqlError, Row, NO_PARAMS}; +use db_common::sqlite::rusqlite::{Connection, Error as SqlError, Row}; use db_common::sqlite::{query_single_row_with_named_params, AsSqlNamedParams, OwnedSqlNamedParams, SqliteConnShared, SqliteConnWeak}; use derive_more::Display; @@ -228,7 +230,7 @@ impl HDWalletSqliteStorage { async fn init_tables(&self) -> HDWalletStorageResult<()> { let conn_shared = self.get_shared_conn()?; let conn = Self::lock_conn_mutex(&conn_shared)?; - conn.execute(CREATE_HD_ACCOUNT_TABLE, NO_PARAMS) + conn.execute(CREATE_HD_ACCOUNT_TABLE, []) .map(|_| ()) .map_to_mm(HDWalletStorageError::from) } @@ -280,7 +282,7 @@ pub(super) async fn get_all_storage_items(ctx: &MmArc) -> Vec| HDAccountStorageItem::try_from(row)) + .query_map([], |row: &Row<'_>| HDAccountStorageItem::try_from(row)) .unwrap() .collect::, _>>() .unwrap() diff --git a/mm2src/coins/lightning.rs b/mm2src/coins/lightning.rs index a2900d2f87..02a0c41cfd 100644 --- a/mm2src/coins/lightning.rs +++ b/mm2src/coins/lightning.rs @@ -1402,7 +1402,7 @@ impl MmCoin for LightningCoin { Some(amt_or_err) => log_err_and_return_false!(amt_or_err), None => return true, }; - let protocol_info = match info.as_ref().map(rmp_serde::from_read_ref::<_, LightningProtocolInfo>) { + let protocol_info = match info.as_ref().map(|t| rmp_serde::from_slice::(t)) { Some(info_or_err) => log_err_and_return_false!(info_or_err), None => return false, }; diff --git a/mm2src/coins/lightning/ln_sql.rs b/mm2src/coins/lightning/ln_sql.rs index d1cbe1bbf8..53eab1ac78 100644 --- a/mm2src/coins/lightning/ln_sql.rs +++ b/mm2src/coins/lightning/ln_sql.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: remove this once rusqlite is >= 0.29 + use crate::lightning::ln_db::{ChannelType, ChannelVisibility, ClosedChannelsFilter, DBChannelDetails, DBPaymentsFilter, GetClosedChannelsResult, GetPaymentsResult, HTLCStatus, LightningDB, PaymentInfo, PaymentType}; @@ -5,7 +7,7 @@ use async_trait::async_trait; use common::{async_blocking, now_sec_i64, PagingOptionsEnum}; use db_common::owned_named_params; use db_common::sqlite::rusqlite::types::Type; -use db_common::sqlite::rusqlite::{params, Error as SqlError, Row, ToSql, NO_PARAMS}; +use db_common::sqlite::rusqlite::{params, Error as SqlError, Row, ToSql}; use db_common::sqlite::sql_builder::SqlBuilder; use db_common::sqlite::{h256_option_slice_from_row, h256_slice_from_row, offset_by_id, query_single_row, sql_text_conversion_err, string_from_row, validate_table_name, AsSqlNamedParams, @@ -626,8 +628,8 @@ impl LightningDB for SqliteLightningDB { let sql_payments_history = create_payments_history_table_sql(self.db_ticker.as_str())?; async_blocking(move || { let conn = sqlite_connection.lock().unwrap(); - conn.execute(&sql_channels_history, NO_PARAMS).map(|_| ())?; - conn.execute(&sql_payments_history, NO_PARAMS).map(|_| ())?; + conn.execute(&sql_channels_history, []).map(|_| ())?; + conn.execute(&sql_payments_history, []).map(|_| ())?; Ok(()) }) .await @@ -803,7 +805,7 @@ impl LightningDB for SqliteLightningDB { let mut total_builder = sql_builder.clone(); total_builder.count("id"); let total_sql = total_builder.sql().expect("valid sql"); - let total: isize = conn.query_row(&total_sql, NO_PARAMS, |row| row.get(0))?; + let total: isize = conn.query_row(&total_sql, [], |row| row.get(0))?; let total = total.try_into().expect("count should be always above zero"); let offset = match paging { @@ -988,7 +990,7 @@ impl LightningDB for SqliteLightningDB { let mut total_builder = sql_builder.clone(); total_builder.count("id"); let total_sql = total_builder.sql().expect("valid sql"); - let total: isize = conn.query_row(&total_sql, NO_PARAMS, |row| row.get(0))?; + let total: isize = conn.query_row(&total_sql, [], |row| row.get(0))?; let total = total.try_into().expect("count should be always above zero"); let offset = match paging { diff --git a/mm2src/coins/tx_history_storage/sql_tx_history_storage_v2.rs b/mm2src/coins/tx_history_storage/sql_tx_history_storage_v2.rs index b418bba556..49993e4c6a 100644 --- a/mm2src/coins/tx_history_storage/sql_tx_history_storage_v2.rs +++ b/mm2src/coins/tx_history_storage/sql_tx_history_storage_v2.rs @@ -6,7 +6,7 @@ use async_trait::async_trait; use common::{async_blocking, PagingOptionsEnum}; use db_common::sql_build::*; use db_common::sqlite::rusqlite::types::Type; -use db_common::sqlite::rusqlite::{Connection, Error as SqlError, Row, NO_PARAMS}; +use db_common::sqlite::rusqlite::{Connection, Error as SqlError, Row}; use db_common::sqlite::{query_single_row, string_from_row, validate_table_name, CHECK_TABLE_EXISTS_SQL}; use mm2_core::mm_ctx::MmArc; use mm2_err_handle::prelude::*; @@ -402,12 +402,12 @@ impl TxHistoryStorage for SqliteTxHistoryStorage { async_blocking(move || { let conn = selfi.0.lock().unwrap(); - conn.execute(&sql_history, NO_PARAMS).map(|_| ())?; - conn.execute(&sql_addr, NO_PARAMS).map(|_| ())?; - conn.execute(&sql_cache, NO_PARAMS).map(|_| ())?; + conn.execute(&sql_history, []).map(|_| ())?; + conn.execute(&sql_addr, []).map(|_| ())?; + conn.execute(&sql_cache, []).map(|_| ())?; - conn.execute(&sql_history_index, NO_PARAMS).map(|_| ())?; - conn.execute(&sql_addr_index, NO_PARAMS).map(|_| ())?; + conn.execute(&sql_history_index, []).map(|_| ())?; + conn.execute(&sql_addr_index, []).map(|_| ())?; Ok(()) }) .await @@ -466,12 +466,12 @@ impl TxHistoryStorage for SqliteTxHistoryStorage { token_id, tx_json, ]; - sql_transaction.execute(&insert_tx_in_history_sql(&wallet_id)?, ¶ms)?; + sql_transaction.execute(&insert_tx_in_history_sql(&wallet_id)?, params)?; let addresses: FilteringAddresses = tx.from.into_iter().chain(tx.to.into_iter()).collect(); for address in addresses { let params = [internal_id.clone(), address]; - sql_transaction.execute(&insert_tx_address_sql(&wallet_id)?, ¶ms)?; + sql_transaction.execute(&insert_tx_address_sql(&wallet_id)?, params)?; } } sql_transaction.commit()?; @@ -495,9 +495,9 @@ impl TxHistoryStorage for SqliteTxHistoryStorage { let mut conn = selfi.0.lock().unwrap(); let sql_transaction = conn.transaction()?; - sql_transaction.execute(&remove_tx_addr_sql, ¶ms)?; + sql_transaction.execute(&remove_tx_addr_sql, params.clone())?; - let rows_num = sql_transaction.execute(&remove_tx_history_sql, ¶ms)?; + let rows_num = sql_transaction.execute(&remove_tx_history_sql, params)?; let remove_tx_result = if rows_num > 0 { RemoveTxResult::TxRemoved } else { @@ -532,7 +532,7 @@ impl TxHistoryStorage for SqliteTxHistoryStorage { async_blocking(move || { let conn = selfi.0.lock().unwrap(); - query_single_row(&conn, &sql, NO_PARAMS, block_height_from_row).map_to_mm(SqlError::from) + query_single_row(&conn, &sql, [], block_height_from_row).map_to_mm(SqlError::from) }) .await } diff --git a/mm2src/coins/utxo/utxo_block_header_storage/sql_block_header_storage.rs b/mm2src/coins/utxo/utxo_block_header_storage/sql_block_header_storage.rs index b60802c2a7..183c3abea1 100644 --- a/mm2src/coins/utxo/utxo_block_header_storage/sql_block_header_storage.rs +++ b/mm2src/coins/utxo/utxo_block_header_storage/sql_block_header_storage.rs @@ -2,7 +2,7 @@ use async_trait::async_trait; use chain::BlockHeader; use common::async_blocking; use db_common::{sqlite::rusqlite::Error as SqlError, - sqlite::rusqlite::{Connection, Row, ToSql, NO_PARAMS}, + sqlite::rusqlite::{params_from_iter, Connection, Row, ToSql}, sqlite::string_from_row, sqlite::validate_table_name, sqlite::CHECK_TABLE_EXISTS_SQL}; @@ -110,8 +110,7 @@ fn query_single_row( map_fn: F, ) -> Result, BlockHeaderStorageError> where - P: IntoIterator, - P::Item: ToSql, + P: db_common::sqlite::rusqlite::Params, F: FnOnce(&Row<'_>) -> Result, { db_common::sqlite::query_single_row(conn, query, params, map_fn).map_err(|e| BlockHeaderStorageError::QueryError { @@ -129,12 +128,12 @@ impl BlockHeaderStorageOps for SqliteBlockHeadersStorage { async_blocking(move || { let conn = selfi.conn.lock().unwrap(); - conn.execute(&sql_cache, NO_PARAMS).map(|_| ()).map_err(|e| { - BlockHeaderStorageError::InitializationError { + conn.execute(&sql_cache, []) + .map(|_| ()) + .map_err(|e| BlockHeaderStorageError::InitializationError { coin, reason: e.to_string(), - } - })?; + })?; Ok(()) }) .await @@ -246,7 +245,7 @@ impl BlockHeaderStorageOps for SqliteBlockHeadersStorage { async_blocking(move || { let conn = selfi.conn.lock().unwrap(); - query_single_row(&conn, &sql, NO_PARAMS, |row| row.get::<_, i64>(0)) + query_single_row(&conn, &sql, [], |row| row.get::<_, i64>(0)) }) .await .map_err(|e| BlockHeaderStorageError::GetFromStorageError { @@ -271,7 +270,7 @@ impl BlockHeaderStorageOps for SqliteBlockHeadersStorage { let maybe_header_raw = async_blocking(move || { let conn = selfi.conn.lock().unwrap(); - query_single_row(&conn, &sql, NO_PARAMS, string_from_row) + query_single_row(&conn, &sql, [], string_from_row) }) .await .map_err(|e| BlockHeaderStorageError::GetFromStorageError { @@ -320,7 +319,7 @@ impl BlockHeaderStorageOps for SqliteBlockHeadersStorage { async_blocking(move || { let conn = selfi.conn.lock().unwrap(); - conn.execute(&sql, ¶ms) + conn.execute(&sql, params_from_iter(params.iter())) }) .await .map_err(|err| BlockHeaderStorageError::UnableToDeleteHeaders { @@ -337,7 +336,7 @@ impl BlockHeaderStorageOps for SqliteBlockHeadersStorage { let table_name = get_table_name_and_validate(&self.ticker).unwrap(); let sql = format!("SELECT COUNT(block_height) FROM {table_name};"); let conn = self.conn.lock().unwrap(); - let rows_count: u32 = conn.query_row(&sql, NO_PARAMS, |row| row.get(0)).unwrap(); + let rows_count: u32 = conn.query_row(&sql, [], |row| row.get(0)).unwrap(); if rows_count == 0 { return Ok(()); }; diff --git a/mm2src/coins/utxo/utxo_common.rs b/mm2src/coins/utxo/utxo_common.rs index b80e0a98e4..62e12df8c4 100644 --- a/mm2src/coins/utxo/utxo_common.rs +++ b/mm2src/coins/utxo/utxo_common.rs @@ -3548,7 +3548,7 @@ pub fn coin_protocol_info(coin: &T) -> Vec { pub fn is_coin_protocol_supported(coin: &T, info: &Option>) -> bool { match info { - Some(format) => rmp_serde::from_read_ref::<_, UtxoAddressFormat>(format).is_ok(), + Some(format) => rmp_serde::from_slice::(format).is_ok(), None => !coin.addr_format().is_segwit(), } } diff --git a/mm2src/coins/z_coin.rs b/mm2src/coins/z_coin.rs index 350537c7de..714856c826 100644 --- a/mm2src/coins/z_coin.rs +++ b/mm2src/coins/z_coin.rs @@ -36,7 +36,7 @@ use common::{async_blocking, calc_total_pages, log, one_thousand_u32, sha256_dig use crypto::privkey::{key_pair_from_secret, secp_privkey_from_hash}; use crypto::{Bip32DerPathOps, GlobalHDAccountArc, StandardHDPathToCoin}; use db_common::sqlite::offset_by_id; -use db_common::sqlite::rusqlite::{Error as SqlError, Row, NO_PARAMS}; +use db_common::sqlite::rusqlite::{Error as SqlError, Row}; use db_common::sqlite::sql_builder::{name, SqlBuilder, SqlName}; use futures::compat::Future01CompatExt; use futures::lock::Mutex as AsyncMutex; @@ -488,7 +488,7 @@ impl ZCoin { .field("COUNT(id_tx)") .sql() .expect("valid SQL"); - let total_tx_count = conn.query_row(&total_sql, NO_PARAMS, |row| row.get(0))?; + let total_tx_count = conn.query_row(&total_sql, [], |row| row.get(0))?; let mut sql_builder = SqlBuilder::select_from(name!(TRANSACTIONS_TABLE; "txes")); sql_builder @@ -526,7 +526,7 @@ impl ZCoin { let sql_items = conn .prepare(&sql)? - .query_map(NO_PARAMS, ZCoinSqlTxHistoryItem::try_from_sql_row)? + .query_map([], ZCoinSqlTxHistoryItem::try_from_sql_row)? .collect::, _>>()?; Ok(SqlTxHistoryRes { diff --git a/mm2src/coins/z_coin/z_rpc.rs b/mm2src/coins/z_coin/z_rpc.rs index 66a5cfff1b..64e1a67695 100644 --- a/mm2src/coins/z_coin/z_rpc.rs +++ b/mm2src/coins/z_coin/z_rpc.rs @@ -4,7 +4,7 @@ use async_trait::async_trait; use common::executor::{spawn_abortable, AbortOnDropHandle, Timer}; use common::log::{debug, error, info, LogOnError}; use common::{async_blocking, Future01CompatExt}; -use db_common::sqlite::rusqlite::{params, Connection, Error as SqliteError, NO_PARAMS}; +use db_common::sqlite::rusqlite::{params, Connection, Error as SqliteError}; use db_common::sqlite::{query_single_row, run_optimization_pragmas}; use futures::channel::mpsc::{channel, Receiver as AsyncReceiver, Sender as AsyncSender}; use futures::channel::oneshot::{channel as oneshot_channel, Sender as OneshotSender}; @@ -284,7 +284,7 @@ impl BlockDb { height INTEGER PRIMARY KEY, data BLOB NOT NULL )", - NO_PARAMS, + [], )?; Ok(BlockDb(conn)) } @@ -336,7 +336,7 @@ impl BlockDb { Ok(query_single_row( &self.0, "SELECT height FROM compactblocks ORDER BY height DESC LIMIT 1", - NO_PARAMS, + [], |row| row.get(0), )? .unwrap_or(0)) diff --git a/mm2src/common/Cargo.toml b/mm2src/common/Cargo.toml index 7247743631..47608b2b02 100644 --- a/mm2src/common/Cargo.toml +++ b/mm2src/common/Cargo.toml @@ -19,7 +19,7 @@ backtrace = "0.3" bytes = "1.1" cfg-if = "1.0" crossbeam = "0.8" -env_logger = "0.9.0" +env_logger = "0.9.3" derive_more = "0.99" fnv = "1.0.6" futures01 = { version = "0.1", package = "futures" } @@ -48,7 +48,6 @@ instant = { version = "0.1.12" } [target.'cfg(target_arch = "wasm32")'.dependencies] chrono = { version = "0.4", features = ["wasmbind"] } -getrandom = { version = "0.2.9", features = ["js"] } # see https://docs.rs/getrandom/0.2.0/getrandom/#webassembly-support gstuff = { version = "0.7", features = ["nightly"] } instant = { version = "0.1.12", features = ["wasm-bindgen"] } js-sys = "0.3.27" @@ -63,7 +62,7 @@ web-sys = { version = "0.3.55", features = ["console", "CloseEvent", "DomExcepti anyhow = "1.0" chrono = "0.4" gstuff = { version = "0.7", features = ["nightly"] } -hyper = { version = "0.14.11", features = ["client", "http2", "server", "tcp"] } +hyper = { version = "0.14.26", features = ["client", "http2", "server", "tcp"] } # using webpki-tokio to avoid rejecting valid certificates # got "invalid certificate: UnknownIssuer" for https://ropsten.infura.io on iOS using default-features hyper-rustls = { version = "0.23", default-features = false, features = ["http1", "http2", "webpki-tokio"] } diff --git a/mm2src/db_common/Cargo.toml b/mm2src/db_common/Cargo.toml index 3977b92329..7a469bca71 100644 --- a/mm2src/db_common/Cargo.toml +++ b/mm2src/db_common/Cargo.toml @@ -13,5 +13,5 @@ log = "0.4.17" uuid = { version = "1.2.2", features = ["fast-rng", "serde", "v4"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -rusqlite = { version = "0.24.2", features = ["bundled"] } +rusqlite = { version = "0.28", features = ["bundled"] } sql-builder = "3.1.1" diff --git a/mm2src/db_common/src/sql_create.rs b/mm2src/db_common/src/sql_create.rs index f4fe557c69..40dcfd99db 100644 --- a/mm2src/db_common/src/sql_create.rs +++ b/mm2src/db_common/src/sql_create.rs @@ -3,7 +3,7 @@ use crate::sql_value::{FromQuoted, SqlValue}; use crate::sqlite::StringError; use common::fmt::{WriteSafe, WriteSafeJoin}; use common::write_safe; -use rusqlite::{Connection, Error as SqlError, Result as SqlResult, NO_PARAMS}; +use rusqlite::{Connection, Error as SqlError, Result as SqlResult}; use std::fmt; pub enum SqlType { @@ -144,7 +144,7 @@ impl<'a> SqlCreateTable<'a> { } pub fn create(self) -> SqlResult<()> { - self.conn.execute(&self.sql()?, NO_PARAMS)?; + self.conn.execute(&self.sql()?, [])?; Ok(()) } diff --git a/mm2src/db_common/src/sql_delete.rs b/mm2src/db_common/src/sql_delete.rs index fe6436fd61..eac48b9e77 100644 --- a/mm2src/db_common/src/sql_delete.rs +++ b/mm2src/db_common/src/sql_delete.rs @@ -1,7 +1,7 @@ use crate::sql_condition::SqlCondition; use crate::sqlite::{validate_table_name, OwnedSqlParams, SqlParamsBuilder}; use common::log::debug; -use rusqlite::{Connection, Error as SqlError, Result as SqlResult}; +use rusqlite::{params_from_iter, Connection, Error as SqlError, Result as SqlResult}; use sql_builder::SqlBuilder; /// A `DELETE` SQL request builder. @@ -36,7 +36,8 @@ impl<'a> SqlDelete<'a> { let params = self.params(); debug!("Trying to execute SQL query {} with params {:?}", sql, params); - self.conn.execute(&sql, params) + let params = params.clone().into_boxed_slice(); + self.conn.execute(&sql, params_from_iter(params.iter())) } /// Generates a string SQL request. @@ -68,7 +69,6 @@ impl<'a> SqlCondition for SqlDelete<'a> { #[cfg(test)] mod tests { use super::*; - use rusqlite::NO_PARAMS; const CREATE_TX_HISTORY_TABLE: &str = "CREATE TABLE tx_history ( tx_hash VARCHAR(255) NOT NULL UNIQUE, @@ -77,7 +77,7 @@ mod tests { description TEXT );"; - fn init_table_for_test(conn: &Connection) { conn.execute(CREATE_TX_HISTORY_TABLE, NO_PARAMS).unwrap(); } + fn init_table_for_test(conn: &Connection) { conn.execute(CREATE_TX_HISTORY_TABLE, []).unwrap(); } #[test] fn test_delete_all_sql() { diff --git a/mm2src/db_common/src/sql_insert.rs b/mm2src/db_common/src/sql_insert.rs index b5aa5f461b..2bb1807bb5 100644 --- a/mm2src/db_common/src/sql_insert.rs +++ b/mm2src/db_common/src/sql_insert.rs @@ -3,7 +3,7 @@ use crate::sqlite::{OwnedSqlParam, OwnedSqlParams, SqlParamsBuilder, ToValidSqlI use common::fmt::{WriteSafe, WriteSafeJoin}; use common::write_safe; use log::debug; -use rusqlite::{Connection, Result as SqlResult}; +use rusqlite::{params_from_iter, Connection, Result as SqlResult}; use std::fmt; enum InsertMode { @@ -112,7 +112,7 @@ impl<'a> SqlInsert<'a> { debug!("Trying to execute SQL query {} with params {:?}", sql, self.params()); let mut stmt = self.conn.prepare(&sql)?; - stmt.execute(self.params()) + stmt.execute(params_from_iter(self.params().iter())) } /// Returns the reference to the specified SQL parameters. @@ -146,7 +146,6 @@ impl<'a> SqlInsert<'a> { #[cfg(test)] mod tests { use super::*; - use rusqlite::NO_PARAMS; const CREATE_TX_HISTORY_TABLE: &str = "CREATE TABLE tx_history ( tx_hash VARCHAR(255) NOT NULL UNIQUE, @@ -170,7 +169,7 @@ mod tests { fn select_from_tx_history(conn: &Connection) -> Vec { let mut stmt = conn.prepare(SELECT_FROM_TX_HISTORY).unwrap(); - stmt.query_map(NO_PARAMS, |row| { + stmt.query_map([], |row| { Ok(TxHistoryItem { tx_hash: row.get(0)?, description: row.get(1)?, @@ -186,7 +185,7 @@ mod tests { fn select_from_id_table(conn: &Connection) -> Vec { let mut stmt = conn.prepare(SELECT_FROM_ID_TABLE).unwrap(); - stmt.query_map(NO_PARAMS, |row| row.get(0)) + stmt.query_map([], |row| row.get(0)) .unwrap() .collect::>() .unwrap() @@ -195,7 +194,7 @@ mod tests { #[test] fn test_sql_insert() { let conn = Connection::open_in_memory().unwrap(); - conn.execute(CREATE_TX_HISTORY_TABLE, NO_PARAMS).unwrap(); + conn.execute(CREATE_TX_HISTORY_TABLE, []).unwrap(); let mut insert = SqlInsert::new(&conn, "tx_history"); insert @@ -244,7 +243,7 @@ mod tests { #[test] fn test_sql_insert_nulls() { let conn = Connection::open_in_memory().unwrap(); - conn.execute(CREATE_TX_HISTORY_TABLE, NO_PARAMS).unwrap(); + conn.execute(CREATE_TX_HISTORY_TABLE, []).unwrap(); let description: Option<&'static str> = None; let tx_hex: Option> = None; @@ -285,7 +284,7 @@ mod tests { #[test] fn test_sql_insert_one_column() { let conn = Connection::open_in_memory().unwrap(); - conn.execute(CREATE_TX_HISTORY_TABLE, NO_PARAMS).unwrap(); + conn.execute(CREATE_TX_HISTORY_TABLE, []).unwrap(); let mut insert = SqlInsert::new(&conn, "tx_history"); insert.column_quoted("tx_hash", "tx_hash_1").unwrap(); @@ -310,7 +309,7 @@ mod tests { #[test] fn test_sql_create_no_columns() { let conn = Connection::open_in_memory().unwrap(); - conn.execute(CREATE_ID_TABLE, NO_PARAMS).unwrap(); + conn.execute(CREATE_ID_TABLE, []).unwrap(); let insert = SqlInsert::new(&conn, "id"); diff --git a/mm2src/db_common/src/sql_query.rs b/mm2src/db_common/src/sql_query.rs index 4c7b6eb362..44a2a126a9 100644 --- a/mm2src/db_common/src/sql_query.rs +++ b/mm2src/db_common/src/sql_query.rs @@ -3,7 +3,7 @@ use crate::sql_value::{SqlValue, SqlValueToString}; use crate::sqlite::{query_single_row, validate_ident, validate_table_name, OwnedSqlParam, OwnedSqlParams, SqlParamsBuilder, StringError, ToValidSqlIdent, ToValidSqlTable}; use log::debug; -use rusqlite::{Connection, Error as SqlError, Result as SqlResult, Row}; +use rusqlite::{params_from_iter, Connection, Error as SqlError, Result as SqlResult, Row}; use sql_builder::SqlBuilder; /// A `SELECT` SQL query builder. @@ -266,7 +266,9 @@ impl<'a> SqlQuery<'a> { debug!("Trying to execute SQL query {} with params {:?}", sql, self.params()); let mut stmt = self.conn.prepare(&sql)?; - let items = stmt.query_map(self.params(), f)?.collect::>>()?; + let items = stmt + .query_map(params_from_iter(self.params().iter()), f)? + .collect::>>()?; // Otherwise, we'll get the compile error: // `stmt` does not live long enough Ok(items) @@ -284,7 +286,7 @@ impl<'a> SqlQuery<'a> { .sql() .map_err(|e| SqlError::ToSqlConversionFailure(e.into()))?; debug!("Trying to execute SQL query {} with params {:?}", sql, self.params()); - query_single_row(self.conn, &sql, self.params(), f) + query_single_row(self.conn, &sql, params_from_iter(self.params().iter()), f) } /// Applies [`SqlQuery::ordering`] to [`SqlQuery::sql_builder`]. @@ -357,7 +359,6 @@ impl SqlOrdering { mod tests { use super::*; use crate::sql_insert::SqlInsert; - use rusqlite::NO_PARAMS; const CREATE_TX_HISTORY_TABLE: &str = "CREATE TABLE tx_history ( tx_hash VARCHAR(255) NOT NULL UNIQUE, @@ -371,8 +372,8 @@ mod tests { );"; fn init_table_for_test(conn: &Connection) { - conn.execute(CREATE_TX_HISTORY_TABLE, NO_PARAMS).unwrap(); - conn.execute(CREATE_TX_ADDRESS_TABLE, NO_PARAMS).unwrap(); + conn.execute(CREATE_TX_HISTORY_TABLE, []).unwrap(); + conn.execute(CREATE_TX_ADDRESS_TABLE, []).unwrap(); let history_items = vec![ ("tx_hash_1", 699545, 23, Some(0.5)), diff --git a/mm2src/db_common/src/sql_update.rs b/mm2src/db_common/src/sql_update.rs index 7c38ec6ea4..2d4dbca6f6 100644 --- a/mm2src/db_common/src/sql_update.rs +++ b/mm2src/db_common/src/sql_update.rs @@ -2,7 +2,7 @@ use crate::sql_condition::SqlCondition; use crate::sql_value::{FromQuoted, SqlValueOptional, SqlValueToString}; use crate::sqlite::{validate_table_name, OwnedSqlParam, OwnedSqlParams, SqlParamsBuilder, ToValidSqlIdent}; use common::log::debug; -use rusqlite::{Connection, Error as SqlError, Result as SqlResult}; +use rusqlite::{params_from_iter, Connection, Error as SqlError, Result as SqlResult}; use sql_builder::SqlBuilder; /// An `UPDATE` SQL request builder. @@ -91,7 +91,7 @@ impl<'a> SqlUpdate<'a> { let params = self.params(); debug!("Trying to execute SQL query {} with params {:?}", sql, params); - self.conn.execute(&sql, params) + self.conn.execute(&sql, params_from_iter(params.iter())) } } @@ -115,7 +115,6 @@ impl<'a> SqlCondition for SqlUpdate<'a> { #[cfg(test)] mod tests { use super::*; - use rusqlite::NO_PARAMS; const CREATE_TX_HISTORY_TABLE: &str = "CREATE TABLE tx_history ( tx_hash VARCHAR(255) NOT NULL UNIQUE, @@ -124,7 +123,7 @@ mod tests { kmd_rewards REAL );"; - fn init_table_for_test(conn: &Connection) { conn.execute(CREATE_TX_HISTORY_TABLE, NO_PARAMS).unwrap(); } + fn init_table_for_test(conn: &Connection) { conn.execute(CREATE_TX_HISTORY_TABLE, []).unwrap(); } #[test] fn test_update_all_records() { diff --git a/mm2src/db_common/src/sqlite.rs b/mm2src/db_common/src/sqlite.rs index 4c3f2a610b..5da327c0fd 100644 --- a/mm2src/db_common/src/sqlite.rs +++ b/mm2src/db_common/src/sqlite.rs @@ -1,9 +1,11 @@ +#![allow(deprecated)] // TODO: remove this once rusqlite is >= 0.29 + pub use rusqlite; pub use sql_builder; use log::debug; use rusqlite::types::{FromSql, Type as SqlType, Value}; -use rusqlite::{Connection, Error as SqlError, Result as SqlResult, Row, ToSql, NO_PARAMS}; +use rusqlite::{Connection, Error as SqlError, Result as SqlResult, Row, ToSql}; use sql_builder::SqlBuilder; use std::error::Error as StdError; use std::fmt; @@ -50,8 +52,7 @@ pub fn string_from_row(row: &Row<'_>) -> Result { row.get(0) } pub fn query_single_row(conn: &Connection, query: &str, params: P, map_fn: F) -> Result, SqlError> where - P: IntoIterator, - P::Item: ToSql, + P: rusqlite::Params, F: FnOnce(&Row<'_>) -> Result, { let maybe_result = conn.query_row(query, params, map_fn); @@ -145,7 +146,7 @@ pub fn offset_by_id

( where_id: &str, ) -> SqlResult> where - P: IntoIterator + fmt::Debug, + P: IntoIterator + fmt::Debug + rusqlite::Params, P::Item: ToSql, { let row_number = format!("ROW_NUMBER() OVER (ORDER BY {}) AS row", order_by); @@ -215,10 +216,10 @@ where /// be safe to use, while giving great speed boost. /// With these, Mac and Linux have comparable SQLite performance. pub fn run_optimization_pragmas(conn: &Connection) -> Result<(), SqlError> { - conn.query_row("pragma journal_mode = WAL;", NO_PARAMS, |row| row.get::<_, String>(0))?; - conn.execute("pragma synchronous = normal;", NO_PARAMS)?; - conn.execute("pragma temp_store = memory;", NO_PARAMS)?; - conn.execute("pragma foreign_keys = ON;", NO_PARAMS)?; + conn.query_row("pragma journal_mode = WAL;", [], |row| row.get::<_, String>(0))?; + conn.execute("pragma synchronous = normal;", [])?; + conn.execute("pragma temp_store = memory;", [])?; + conn.execute("pragma foreign_keys = ON;", [])?; Ok(()) } diff --git a/mm2src/gossipsub/Cargo.toml b/mm2src/gossipsub/Cargo.toml index 3bb1530199..bc4c37e8cb 100644 --- a/mm2src/gossipsub/Cargo.toml +++ b/mm2src/gossipsub/Cargo.toml @@ -32,7 +32,7 @@ wasm-timer = "0.2.4" [dev-dependencies] async-std = "1.6.2" -env_logger = "0.9.0" +env_logger = "0.9.3" libp2p-plaintext = { git = "https://github.com/libp2p/rust-libp2p.git", tag ="v0.45.1" } libp2p-yamux = { git = "https://github.com/libp2p/rust-libp2p.git", tag ="v0.45.1" } quickcheck= { version = "0.9.2", default-features = false } diff --git a/mm2src/mm2_libp2p/Cargo.toml b/mm2src/mm2_libp2p/Cargo.toml index d8667db241..22db010fd0 100644 --- a/mm2src/mm2_libp2p/Cargo.toml +++ b/mm2src/mm2_libp2p/Cargo.toml @@ -21,7 +21,7 @@ secp256k1 = { version = "0.20", features = ["rand"] } log = "0.4.17" rand = { package = "rand", version = "0.7", features = ["std", "wasm-bindgen"] } regex = "1" -rmp-serde = "0.14.3" +rmp-serde = "1.1.1" serde = { version = "1.0", features = ["derive"] } serde_bytes = "0.11.5" sha2 = "0.9" @@ -33,11 +33,10 @@ tokio = { version = "1.20", features = ["rt-multi-thread", "macros"] } libp2p = { git = "https://github.com/libp2p/rust-libp2p.git", tag = "v0.45.1", default-features = false, features = ["dns-tokio", "floodsub", "mplex", "noise", "ping", "request-response", "secp256k1", "tcp-tokio", "websocket"] } [target.'cfg(target_arch = "wasm32")'.dependencies] -getrandom = { version = "0.2.9", features = ["js"] } # see https://docs.rs/getrandom/0.2.0/getrandom/#webassembly-support libp2p = { git = "https://github.com/libp2p/rust-libp2p.git", tag = "v0.45.1", default-features = false, features = ["floodsub", "mplex", "noise", "ping", "request-response", "secp256k1", "wasm-ext", "wasm-ext-websocket"] } wasm-bindgen-futures = "0.4.21" [dev-dependencies] async-std = { version = "1.6.2", features = ["unstable"] } -env_logger = "0.9.0" +env_logger = "0.9.3" serde_json = { version = "1", features = ["preserve_order", "raw_value"] } diff --git a/mm2src/mm2_libp2p/src/atomicdex_behaviour.rs b/mm2src/mm2_libp2p/src/atomicdex_behaviour.rs index da2b051bdd..56dc93cbb5 100644 --- a/mm2src/mm2_libp2p/src/atomicdex_behaviour.rs +++ b/mm2src/mm2_libp2p/src/atomicdex_behaviour.rs @@ -424,7 +424,7 @@ impl NetworkBehaviourEventProcess for AtomicDexBehaviour { if let FloodsubEvent::Message(message) = &event { for topic in &message.topics { if topic == &FloodsubTopic::new(PEERS_TOPIC) { - let addresses: PeerAddresses = match rmp_serde::from_read_ref(&message.data) { + let addresses: PeerAddresses = match rmp_serde::from_slice(&message.data) { Ok(a) => a, Err(_) => return, }; diff --git a/mm2src/mm2_libp2p/src/lib.rs b/mm2src/mm2_libp2p/src/lib.rs index a99841329e..ae554ca311 100644 --- a/mm2src/mm2_libp2p/src/lib.rs +++ b/mm2src/mm2_libp2p/src/lib.rs @@ -53,8 +53,9 @@ pub fn encode_message(message: &T) -> Result, rmp_serde::e rmp_serde::to_vec(message) } +#[inline] pub fn decode_message<'de, T: de::Deserialize<'de>>(bytes: &'de [u8]) -> Result { - rmp_serde::from_read_ref(bytes) + rmp_serde::from_slice(bytes) } #[derive(Deserialize, Serialize)] diff --git a/mm2src/mm2_libp2p/src/peers_exchange.rs b/mm2src/mm2_libp2p/src/peers_exchange.rs index 2bb1fbc7db..1721f73f8d 100644 --- a/mm2src/mm2_libp2p/src/peers_exchange.rs +++ b/mm2src/mm2_libp2p/src/peers_exchange.rs @@ -362,7 +362,7 @@ mod tests { fn test_peer_id_serde() { let peer_id = PeerIdSerde(PeerId::random()); let serialized = rmp_serde::to_vec(&peer_id).unwrap(); - let deserialized: PeerIdSerde = rmp_serde::from_read_ref(&serialized).unwrap(); + let deserialized: PeerIdSerde = rmp_serde::from_slice(&serialized).unwrap(); assert_eq!(peer_id.0, deserialized.0); } diff --git a/mm2src/mm2_main/Cargo.toml b/mm2src/mm2_main/Cargo.toml index 42b5216333..2c50e3f011 100644 --- a/mm2src/mm2_main/Cargo.toml +++ b/mm2src/mm2_main/Cargo.toml @@ -25,7 +25,7 @@ default = [] async-std = { version = "1.5", features = ["unstable"] } async-trait = "0.1" bitcrypto = { path = "../mm2_bitcoin/crypto" } -blake2 = "0.10" +blake2 = "0.10.6" bytes = "0.4" chain = { path = "../mm2_bitcoin/chain" } cfg-if = "1.0" @@ -72,7 +72,7 @@ rand6 = { version = "0.6", package = "rand" } # TODO: Reduce the size of regex by disabling the features we don't use. # cf. https://github.com/rust-lang/regex/issues/583 regex = "1" -rmp-serde = "0.14.3" +rmp-serde = "1.1.1" rpc = { path = "../mm2_bitcoin/rpc" } rpc_task = { path = "../rpc_task" } script = { path = "../mm2_bitcoin/script" } @@ -105,7 +105,7 @@ web-sys = { version = "0.3.55", features = ["console"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] dirs = { version = "1" } futures-rustls = { version = "0.21.1" } -hyper = { version = "0.14.11", features = ["client", "http2", "server", "tcp"] } +hyper = { version = "0.14.26", features = ["client", "http2", "server", "tcp"] } tokio = { version = "1.20", features = ["io-util", "rt-multi-thread", "net"] } [target.'cfg(windows)'.dependencies] diff --git a/mm2src/mm2_main/src/database.rs b/mm2src/mm2_main/src/database.rs index 3a6f1f3add..47b1241cb3 100644 --- a/mm2src/mm2_main/src/database.rs +++ b/mm2src/mm2_main/src/database.rs @@ -9,7 +9,7 @@ pub mod my_orders; use crate::CREATE_MY_SWAPS_TABLE; use common::log::{debug, error, info}; use db_common::sqlite::run_optimization_pragmas; -use db_common::sqlite::rusqlite::{Result as SqlResult, NO_PARAMS}; +use db_common::sqlite::rusqlite::{params_from_iter, Result as SqlResult}; use mm2_core::mm_ctx::MmArc; use my_swaps::fill_my_swaps_from_json_statements; @@ -19,7 +19,7 @@ const SELECT_MIGRATION: &str = "SELECT * FROM migration ORDER BY current_migrati fn get_current_migration(ctx: &MmArc) -> SqlResult { let conn = ctx.sqlite_connection(); - conn.query_row(SELECT_MIGRATION, NO_PARAMS, |row| row.get(0)) + conn.query_row(SELECT_MIGRATION, [], |row| row.get(0)) } pub async fn init_and_migrate_db(ctx: &MmArc) -> SqlResult<()> { @@ -124,10 +124,10 @@ pub async fn migrate_sqlite_database(ctx: &MmArc, mut current_migration: i64) -> let transaction = conn.unchecked_transaction()?; for (statement, params) in statements_with_params { debug!("Executing SQL statement {:?} with params {:?}", statement, params); - transaction.execute(statement, params)?; + transaction.execute(statement, params_from_iter(params.iter()))?; } current_migration += 1; - transaction.execute("INSERT INTO migration (current_migration) VALUES (?1);", &[ + transaction.execute("INSERT INTO migration (current_migration) VALUES (?1);", [ current_migration, ])?; transaction.commit()?; diff --git a/mm2src/mm2_main/src/database/my_orders.rs b/mm2src/mm2_main/src/database/my_orders.rs index 776dca8487..4ccde9f2ee 100644 --- a/mm2src/mm2_main/src/database/my_orders.rs +++ b/mm2src/mm2_main/src/database/my_orders.rs @@ -1,10 +1,12 @@ +#![allow(deprecated)] // TODO: remove this once rusqlite is >= 0.29 + use crate::mm2::lp_ordermatch::{FilteringOrder, MakerOrder, MyOrdersFilter, RecentOrdersSelectResult, TakerAction, TakerOrder}; /// This module contains code to work with my_orders table in MM2 SQLite DB use common::log::debug; use common::{now_ms, PagingOptions}; use db_common::sqlite::offset_by_uuid; -use db_common::sqlite::rusqlite::{Connection, Error as SqlError, Result as SqlResult, ToSql}; +use db_common::sqlite::rusqlite::{params_from_iter, Connection, Error as SqlError, Result as SqlResult, ToSql}; use db_common::sqlite::sql_builder::SqlBuilder; use mm2_core::mm_ctx::MmArc; use std::convert::TryInto; @@ -55,7 +57,8 @@ pub fn insert_maker_order(ctx: &MmArc, uuid: Uuid, order: &MakerOrder) -> SqlRes "Created".to_string(), ]; let conn = ctx.sqlite_connection(); - conn.execute(INSERT_MY_ORDER, ¶ms).map(|_| ()) + conn.execute(INSERT_MY_ORDER, params_from_iter(params.iter())) + .map(|_| ()) } pub fn insert_taker_order(ctx: &MmArc, uuid: Uuid, order: &TakerOrder) -> SqlResult<()> { @@ -79,7 +82,8 @@ pub fn insert_taker_order(ctx: &MmArc, uuid: Uuid, order: &TakerOrder) -> SqlRes "Created".to_string(), ]; let conn = ctx.sqlite_connection(); - conn.execute(INSERT_MY_ORDER, ¶ms).map(|_| ()) + conn.execute(INSERT_MY_ORDER, params_from_iter(params.iter())) + .map(|_| ()) } pub fn update_maker_order(ctx: &MmArc, uuid: Uuid, order: &MakerOrder) -> SqlResult<()> { @@ -92,7 +96,8 @@ pub fn update_maker_order(ctx: &MmArc, uuid: Uuid, order: &MakerOrder) -> SqlRes "Updated".to_string(), ]; let conn = ctx.sqlite_connection(); - conn.execute(UPDATE_MY_ORDER, ¶ms).map(|_| ()) + conn.execute(UPDATE_MY_ORDER, params_from_iter(params.iter())) + .map(|_| ()) } pub fn update_was_taker(ctx: &MmArc, uuid: Uuid) -> SqlResult<()> { @@ -104,14 +109,16 @@ pub fn update_was_taker(ctx: &MmArc, uuid: Uuid) -> SqlResult<()> { 1.to_string(), ]; let conn = ctx.sqlite_connection(); - conn.execute(UPDATE_WAS_TAKER, ¶ms).map(|_| ()) + conn.execute(UPDATE_WAS_TAKER, params_from_iter(params.iter())) + .map(|_| ()) } pub fn update_order_status(ctx: &MmArc, uuid: Uuid, status: String) -> SqlResult<()> { debug!("Updating order {} in the SQLite database", uuid); let params = vec![uuid.to_string(), now_ms().to_string(), status]; let conn = ctx.sqlite_connection(); - conn.execute(UPDATE_ORDER_STATUS, ¶ms).map(|_| ()) + conn.execute(UPDATE_ORDER_STATUS, params_from_iter(params.iter())) + .map(|_| ()) } /// Adds where clauses determined by MyOrdersFilter @@ -277,5 +284,7 @@ pub fn select_orders_by_filter( pub fn select_status_by_uuid(conn: &Connection, uuid: &Uuid) -> Result { let params = vec![uuid.to_string()]; - conn.query_row(SELECT_STATUS_BY_UUID, ¶ms, |row| row.get::<_, String>(0)) + conn.query_row(SELECT_STATUS_BY_UUID, params_from_iter(params.iter()), |row| { + row.get::<_, String>(0) + }) } diff --git a/mm2src/mm2_main/src/database/my_swaps.rs b/mm2src/mm2_main/src/database/my_swaps.rs index 835de9f240..ab5a08b84b 100644 --- a/mm2src/mm2_main/src/database/my_swaps.rs +++ b/mm2src/mm2_main/src/database/my_swaps.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: remove this once rusqlite is >= 0.29 + /// This module contains code to work with my_swaps table in MM2 SQLite DB use crate::mm2::lp_swap::{MyRecentSwapsUuids, MySwapsFilter, SavedSwap, SavedSwapIo}; use common::log::debug; @@ -31,7 +33,7 @@ pub fn insert_new_swap(ctx: &MmArc, my_coin: &str, other_coin: &str, uuid: &str, debug!("Inserting new swap {} to the SQLite database", uuid); let conn = ctx.sqlite_connection(); let params = [my_coin, other_coin, uuid, started_at]; - conn.execute(INSERT_MY_SWAP, ¶ms).map(|_| ()) + conn.execute(INSERT_MY_SWAP, params).map(|_| ()) } /// Returns SQL statements to initially fill my_swaps table using existing DB with JSON files diff --git a/mm2src/mm2_main/src/database/stats_nodes.rs b/mm2src/mm2_main/src/database/stats_nodes.rs index b4f896015f..7a6330c24a 100644 --- a/mm2src/mm2_main/src/database/stats_nodes.rs +++ b/mm2src/mm2_main/src/database/stats_nodes.rs @@ -1,7 +1,7 @@ /// This module contains code to work with nodes table for stats collection in MM2 SQLite DB use crate::mm2::lp_stats::{NodeInfo, NodeVersionStat}; use common::log::debug; -use db_common::sqlite::rusqlite::{Error as SqlError, Result as SqlResult, NO_PARAMS}; +use db_common::sqlite::rusqlite::{params_from_iter, Error as SqlError, Result as SqlResult}; use mm2_core::mm_ctx::MmArc; use std::collections::hash_map::HashMap; @@ -38,21 +38,21 @@ pub fn insert_node_info(ctx: &MmArc, node_info: &NodeInfo) -> SqlResult<()> { node_info.peer_id.clone(), ]; let conn = ctx.sqlite_connection(); - conn.execute(INSERT_NODE, ¶ms).map(|_| ()) + conn.execute(INSERT_NODE, params_from_iter(params.iter())).map(|_| ()) } pub fn delete_node_info(ctx: &MmArc, name: String) -> SqlResult<()> { debug!("Deleting info about node {} from the SQLite database", name); let params = vec![name]; let conn = ctx.sqlite_connection(); - conn.execute(DELETE_NODE, ¶ms).map(|_| ()) + conn.execute(DELETE_NODE, params_from_iter(params.iter())).map(|_| ()) } pub fn select_peers_addresses(ctx: &MmArc) -> SqlResult, SqlError> { let conn = ctx.sqlite_connection(); let mut stmt = conn.prepare(SELECT_PEERS_ADDRESSES)?; let peers_addresses = stmt - .query_map(NO_PARAMS, |row| Ok((row.get(0)?, row.get(1)?)))? + .query_map([], |row| Ok((row.get(0)?, row.get(1)?)))? .collect::>>()?; Ok(peers_addresses) @@ -62,7 +62,7 @@ pub fn select_peers_names(ctx: &MmArc) -> SqlResult, Sql let conn = ctx.sqlite_connection(); let mut stmt = conn.prepare(SELECT_PEERS_NAMES)?; let peers_names = stmt - .query_map(NO_PARAMS, |row| Ok((row.get(0)?, row.get(1)?)))? + .query_map([], |row| Ok((row.get(0)?, row.get(1)?)))? .collect::>>(); peers_names @@ -80,5 +80,5 @@ pub fn insert_node_version_stat(ctx: &MmArc, node_version_stat: NodeVersionStat) node_version_stat.error.unwrap_or_default(), ]; let conn = ctx.sqlite_connection(); - conn.execute(INSERT_STAT, ¶ms).map(|_| ()) + conn.execute(INSERT_STAT, params_from_iter(params.iter())).map(|_| ()) } diff --git a/mm2src/mm2_main/src/database/stats_swaps.rs b/mm2src/mm2_main/src/database/stats_swaps.rs index 9ee2599aba..eb9c5e0fd1 100644 --- a/mm2src/mm2_main/src/database/stats_swaps.rs +++ b/mm2src/mm2_main/src/database/stats_swaps.rs @@ -1,7 +1,9 @@ +#![allow(deprecated)] // TODO: remove this once rusqlite is >= 0.29 + use crate::mm2::lp_swap::{MakerSavedSwap, SavedSwap, SavedSwapIo, TakerSavedSwap}; use common::log::{debug, error}; use db_common::{owned_named_params, - sqlite::{rusqlite::{Connection, OptionalExtension}, + sqlite::{rusqlite::{params_from_iter, Connection, OptionalExtension}, AsSqlNamedParams, OwnedSqlNamedParams}}; use mm2_core::mm_ctx::MmArc; use std::collections::HashSet; @@ -291,7 +293,9 @@ fn insert_stats_taker_swap_sql_init(swap: &TakerSavedSwap) -> Option<(&'static s pub fn add_swap_to_index(conn: &Connection, swap: &SavedSwap) { let params = vec![swap.uuid().to_string()]; - let query_row = conn.query_row(SELECT_ID_BY_UUID, ¶ms, |row| row.get::<_, i64>(0)); + let query_row = conn.query_row(SELECT_ID_BY_UUID, params_from_iter(params.iter()), |row| { + row.get::<_, i64>(0) + }); match query_row.optional() { // swap is not indexed yet, go ahead Ok(None) => (), diff --git a/mm2src/mm2_main/src/lp_ordermatch.rs b/mm2src/mm2_main/src/lp_ordermatch.rs index b1ff74d6b6..76fa3da103 100644 --- a/mm2src/mm2_main/src/lp_ordermatch.rs +++ b/mm2src/mm2_main/src/lp_ordermatch.rs @@ -211,7 +211,7 @@ impl From<(new_protocol::MakerOrderCreated, String)> for OrderbookItem { } pub fn addr_format_from_protocol_info(protocol_info: &[u8]) -> AddressFormat { - match rmp_serde::from_read_ref::<_, AddressFormat>(protocol_info) { + match rmp_serde::from_slice::(protocol_info) { Ok(format) => format, Err(_) => AddressFormat::Standard, } diff --git a/mm2src/mm2_main/src/lp_ordermatch/best_orders.rs b/mm2src/mm2_main/src/lp_ordermatch/best_orders.rs index 965fb743c2..9e5b2c3025 100644 --- a/mm2src/mm2_main/src/lp_ordermatch/best_orders.rs +++ b/mm2src/mm2_main/src/lp_ordermatch/best_orders.rs @@ -454,18 +454,18 @@ mod best_orders_test { orders: HashMap::from_iter(std::iter::once(("RICK".into(), v1_orders))), }; - let v1_serialized = rmp_serde::to_vec(&v1).unwrap(); + let v1_serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let mut new: BestOrdersP2PRes = rmp_serde::from_read_ref(&v1_serialized).unwrap(); + let mut new: BestOrdersP2PRes = rmp_serde::from_slice(&v1_serialized).unwrap(); new.protocol_infos.insert(new_uuid(), BaseRelProtocolInfo { base: vec![1], rel: vec![2], }); new.conf_infos.insert(new_uuid(), OrderConfirmationsSettings::default()); - let new_serialized = rmp_serde::to_vec(&new).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); - let v1_from_new: BestOrdersResV1 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let v1_from_new: BestOrdersResV1 = rmp_serde::from_slice(&new_serialized).unwrap(); assert_eq!(v1, v1_from_new); #[derive(Debug, Deserialize, PartialEq, Serialize)] @@ -491,14 +491,14 @@ mod best_orders_test { }))), }; - let v2_serialized = rmp_serde::to_vec(&v2).unwrap(); + let v2_serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let mut new: BestOrdersP2PRes = rmp_serde::from_read_ref(&v2_serialized).unwrap(); + let mut new: BestOrdersP2PRes = rmp_serde::from_slice(&v2_serialized).unwrap(); new.conf_infos.insert(new_uuid(), OrderConfirmationsSettings::default()); - let new_serialized = rmp_serde::to_vec(&new).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); - let v2_from_new: BestOrdersResV2 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let v2_from_new: BestOrdersResV2 = rmp_serde::from_slice(&new_serialized).unwrap(); assert_eq!(v2, v2_from_new); } } diff --git a/mm2src/mm2_main/src/lp_ordermatch/new_protocol.rs b/mm2src/mm2_main/src/lp_ordermatch/new_protocol.rs index 3505c59501..021a1939aa 100644 --- a/mm2src/mm2_main/src/lp_ordermatch/new_protocol.rs +++ b/mm2src/mm2_main/src/lp_ordermatch/new_protocol.rs @@ -330,9 +330,9 @@ mod new_protocol_tests { pair_trie_root: H64::default(), }); - let serialized = rmp_serde::to_vec(&v1).unwrap(); + let serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let deserialized: MakerOrderUpdated = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: MakerOrderUpdated = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, expected); @@ -356,9 +356,9 @@ mod new_protocol_tests { pair_trie_root: H64::default(), }; - let serialized = rmp_serde::to_vec(&v2).unwrap(); + let serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let deserialized: MakerOrderUpdatedV1 = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: MakerOrderUpdatedV1 = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, expected); @@ -375,7 +375,7 @@ mod new_protocol_tests { let serialized = rmp_serde::to_vec(&v2).unwrap(); - let deserialized: MakerOrderUpdated = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: MakerOrderUpdated = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, v2); } @@ -411,14 +411,14 @@ mod new_protocol_tests { pair_trie_root: H64::default(), }; - let old_serialized = rmp_serde::to_vec(&old_msg).unwrap(); + let old_serialized = rmp_serde::to_vec_named(&old_msg).unwrap(); - let mut new: MakerOrderCreated = rmp_serde::from_read_ref(&old_serialized).unwrap(); + let mut new: MakerOrderCreated = rmp_serde::from_slice(&old_serialized).unwrap(); new.base_protocol_info = vec![1, 2, 3]; new.rel_protocol_info = vec![1, 2, 3, 4]; - let new_serialized = rmp_serde::to_vec(&new).unwrap(); - let _old_from_new: MakerOrderCreatedV1 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); + let _old_from_new: MakerOrderCreatedV1 = rmp_serde::from_slice(&new_serialized).unwrap(); } } diff --git a/mm2src/mm2_main/src/lp_swap.rs b/mm2src/mm2_main/src/lp_swap.rs index 9d725d0021..bbac4d6a36 100644 --- a/mm2src/mm2_main/src/lp_swap.rs +++ b/mm2src/mm2_main/src/lp_swap.rs @@ -1628,9 +1628,9 @@ mod lp_swap_tests { persistent_pubkey: vec![1; 33], }); - let serialized = rmp_serde::to_vec(&v1).unwrap(); + let serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let deserialized: NegotiationDataMsg = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: NegotiationDataMsg = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, expected); @@ -1651,9 +1651,9 @@ mod lp_swap_tests { persistent_pubkey: vec![1; 33], }; - let serialized = rmp_serde::to_vec(&v2).unwrap(); + let serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let deserialized: NegotiationDataV1 = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: NegotiationDataV1 = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, expected); @@ -1669,7 +1669,7 @@ mod lp_swap_tests { let serialized = rmp_serde::to_vec(&v2).unwrap(); - let deserialized: NegotiationDataMsg = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: NegotiationDataMsg = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, v2); @@ -1686,7 +1686,7 @@ mod lp_swap_tests { // v3 must be deserialized to v3, backward compatibility is not required let serialized = rmp_serde::to_vec(&v3).unwrap(); - let deserialized: NegotiationDataMsg = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: NegotiationDataMsg = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, v3); } @@ -1710,9 +1710,9 @@ mod lp_swap_tests { let expected = SwapMsg::MakerPayment(SwapTxDataMsg::Regular(MSG_DATA_INSTRUCTIONS.to_vec())); - let serialized = rmp_serde::to_vec(&old).unwrap(); + let serialized = rmp_serde::to_vec_named(&old).unwrap(); - let deserialized: SwapMsg = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: SwapMsg = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, expected); @@ -1721,18 +1721,18 @@ mod lp_swap_tests { let expected = old; - let serialized = rmp_serde::to_vec(&v1).unwrap(); + let serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let deserialized: SwapMsgOld = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: SwapMsgOld = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, expected); // PaymentDataMsg::Regular should be deserialized to PaymentDataMsg::Regular let v1 = SwapMsg::MakerPayment(SwapTxDataMsg::Regular(MSG_DATA_INSTRUCTIONS.to_vec())); - let serialized = rmp_serde::to_vec(&v1).unwrap(); + let serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let deserialized: SwapMsg = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: SwapMsg = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, v1); @@ -1742,9 +1742,9 @@ mod lp_swap_tests { next_step_instructions: MSG_DATA_INSTRUCTIONS.to_vec(), })); - let serialized = rmp_serde::to_vec(&v2).unwrap(); + let serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let deserialized: SwapMsg = rmp_serde::from_read_ref(serialized.as_slice()).unwrap(); + let deserialized: SwapMsg = rmp_serde::from_slice(serialized.as_slice()).unwrap(); assert_eq!(deserialized, v2); @@ -1754,10 +1754,9 @@ mod lp_swap_tests { next_step_instructions: MSG_DATA_INSTRUCTIONS.to_vec(), })); - let serialized = rmp_serde::to_vec(&v2).unwrap(); + let serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let deserialized: Result = - rmp_serde::from_read_ref(serialized.as_slice()); + let deserialized: Result = rmp_serde::from_slice(serialized.as_slice()); assert!(deserialized.is_err()); } diff --git a/mm2src/mm2_main/src/ordermatch_tests.rs b/mm2src/mm2_main/src/ordermatch_tests.rs index 9fc2c99ce6..c5dd162f0f 100644 --- a/mm2src/mm2_main/src/ordermatch_tests.rs +++ b/mm2src/mm2_main/src/ordermatch_tests.rs @@ -2985,9 +2985,9 @@ fn check_get_orderbook_p2p_res_serde() { pubkey_orders: HashMap::from_iter(std::iter::once(("pubkey".into(), item))), }; - let v1_serialized = rmp_serde::to_vec(&v1).unwrap(); + let v1_serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let mut new: GetOrderbookRes = rmp_serde::from_read_ref(&v1_serialized).unwrap(); + let mut new: GetOrderbookRes = rmp_serde::from_slice(&v1_serialized).unwrap(); new.protocol_infos.insert(new_uuid(), BaseRelProtocolInfo { base: vec![1], rel: vec![2], @@ -2999,9 +2999,9 @@ fn check_get_orderbook_p2p_res_serde() { rel_nota: true, }); - let new_serialized = rmp_serde::to_vec(&new).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); - let v1_from_new: GetOrderbookResV1 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let v1_from_new: GetOrderbookResV1 = rmp_serde::from_slice(&new_serialized).unwrap(); assert_eq!(v1, v1_from_new); #[derive(Debug, Deserialize, PartialEq, Serialize)] @@ -3026,9 +3026,9 @@ fn check_get_orderbook_p2p_res_serde() { }))), }; - let v2_serialized = rmp_serde::to_vec(&v2).unwrap(); + let v2_serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let mut new: GetOrderbookRes = rmp_serde::from_read_ref(&v2_serialized).unwrap(); + let mut new: GetOrderbookRes = rmp_serde::from_slice(&v2_serialized).unwrap(); new.conf_infos.insert(new_uuid(), OrderConfirmationsSettings { base_confs: 6, base_nota: false, @@ -3036,9 +3036,9 @@ fn check_get_orderbook_p2p_res_serde() { rel_nota: true, }); - let new_serialized = rmp_serde::to_vec(&new).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); - let v2_from_new: GetOrderbookResV2 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let v2_from_new: GetOrderbookResV2 = rmp_serde::from_slice(&new_serialized).unwrap(); assert_eq!(v2, v2_from_new); } @@ -3094,9 +3094,9 @@ fn check_sync_pubkey_state_p2p_res_serde() { ))), }; - let v1_serialized = rmp_serde::to_vec(&v1).unwrap(); + let v1_serialized = rmp_serde::to_vec_named(&v1).unwrap(); - let mut new: SyncPubkeyOrderbookStateRes = rmp_serde::from_read_ref(&v1_serialized).unwrap(); + let mut new: SyncPubkeyOrderbookStateRes = rmp_serde::from_slice(&v1_serialized).unwrap(); new.protocol_infos.insert(new_uuid(), BaseRelProtocolInfo { base: vec![1], rel: vec![2], @@ -3108,9 +3108,9 @@ fn check_sync_pubkey_state_p2p_res_serde() { rel_nota: true, }); - let new_serialized = rmp_serde::to_vec(&new).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); - let _v1_from_new: SyncPubkeyOrderbookStateResV1 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let _v1_from_new: SyncPubkeyOrderbookStateResV1 = rmp_serde::from_slice(&new_serialized).unwrap(); #[derive(Debug, Deserialize, Serialize)] struct SyncPubkeyOrderbookStateResV2 { @@ -3133,9 +3133,9 @@ fn check_sync_pubkey_state_p2p_res_serde() { }))), }; - let v2_serialized = rmp_serde::to_vec(&v2).unwrap(); + let v2_serialized = rmp_serde::to_vec_named(&v2).unwrap(); - let mut new: SyncPubkeyOrderbookStateRes = rmp_serde::from_read_ref(&v2_serialized).unwrap(); + let mut new: SyncPubkeyOrderbookStateRes = rmp_serde::from_slice(&v2_serialized).unwrap(); new.conf_infos.insert(new_uuid(), OrderConfirmationsSettings { base_confs: 6, base_nota: false, @@ -3143,9 +3143,9 @@ fn check_sync_pubkey_state_p2p_res_serde() { rel_nota: true, }); - let new_serialized = rmp_serde::to_vec(&new).unwrap(); + let new_serialized = rmp_serde::to_vec_named(&new).unwrap(); - let _v2_from_new: SyncPubkeyOrderbookStateResV2 = rmp_serde::from_read_ref(&new_serialized).unwrap(); + let _v2_from_new: SyncPubkeyOrderbookStateResV2 = rmp_serde::from_slice(&new_serialized).unwrap(); } #[test] diff --git a/mm2src/mm2_metrics/Cargo.toml b/mm2src/mm2_metrics/Cargo.toml index 0aa55edcba..75735228b5 100644 --- a/mm2src/mm2_metrics/Cargo.toml +++ b/mm2src/mm2_metrics/Cargo.toml @@ -12,16 +12,16 @@ common = { path = "../common" } derive_more = "0.99" futures = { version = "0.3", package = "futures", features = ["compat", "async-await", "thread-pool"] } itertools = "0.10" -metrics = { version = "0.19" } -metrics-util = { version = "0.13" } +metrics = { version = "0.21" } +metrics-util = { version = "0.15" } mm2_err_handle = { path = "../mm2_err_handle" } serde = "1" serde_derive = "1" serde_json = { version = "1", features = ["preserve_order", "raw_value"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -hyper = { version = "0.14.11", features = ["client", "http2", "server", "tcp"] } +hyper = { version = "0.14.26", features = ["client", "http2", "server", "tcp"] } # using webpki-tokio to avoid rejecting valid certificates # got "invalid certificate: UnknownIssuer" for https://ropsten.infura.io on iOS using default-features hyper-rustls = { version = "0.23", default-features = false, features = ["http1", "http2", "webpki-tokio"] } -metrics-exporter-prometheus = "0.10.0" +metrics-exporter-prometheus = "0.12.1" diff --git a/mm2src/mm2_metrics/src/recorder.rs b/mm2src/mm2_metrics/src/recorder.rs index a19ca982b8..45d55a67ac 100644 --- a/mm2src/mm2_metrics/src/recorder.rs +++ b/mm2src/mm2_metrics/src/recorder.rs @@ -161,15 +161,15 @@ fn key_value_to_snapshot_entry(metrics: &mut HashMap, _description: &'static str) { + fn describe_counter(&self, _key: KeyName, _unit: Option, _description: metrics::SharedString) { // mm2_metrics doesn't use this method } - fn describe_gauge(&self, _key_name: KeyName, _unit: Option, _description: &'static str) { + fn describe_gauge(&self, _key: KeyName, _unit: Option, _description: metrics::SharedString) { // mm2_metrics doesn't use this method } - fn describe_histogram(&self, _key_name: KeyName, _unit: Option, _description: &'static str) { + fn describe_histogram(&self, _key: KeyName, _unit: Option, _description: metrics::SharedString) { // mm2_metrics doesn't use this method } diff --git a/mm2src/mm2_net/Cargo.toml b/mm2src/mm2_net/Cargo.toml index 0d7ec59456..eb9d624ff7 100644 --- a/mm2src/mm2_net/Cargo.toml +++ b/mm2src/mm2_net/Cargo.toml @@ -32,5 +32,5 @@ web-sys = { version = "0.3.55", features = ["console", "CloseEvent", "DomExcepti js-sys = "0.3.27" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -hyper = { version = "0.14.11", features = ["client", "http2", "server", "tcp"] } +hyper = { version = "0.14.26", features = ["client", "http2", "server", "tcp"] } gstuff = { version = "0.7", features = ["nightly"] }