mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 07:08:05 -05:00
Move serialization library into its own submodule.
This commit is contained in:
261
Cargo.lock
generated
261
Cargo.lock
generated
@@ -67,9 +67,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.64"
|
||||
version = "1.0.65"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b9a8f622bcf6ff3df478e9deba3e03e4e04b300f8e6a139e192c05fa3490afc7"
|
||||
checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
|
||||
|
||||
[[package]]
|
||||
name = "arrayref"
|
||||
@@ -412,7 +412,7 @@ dependencies = [
|
||||
"cc",
|
||||
"cfg-if 1.0.0",
|
||||
"constant_time_eq",
|
||||
"digest 0.10.3",
|
||||
"digest 0.10.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -584,7 +584,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
|
||||
dependencies = [
|
||||
"camino",
|
||||
"cargo-platform",
|
||||
"semver 1.0.13",
|
||||
"semver 1.0.14",
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
@@ -680,9 +680,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "3.2.20"
|
||||
version = "3.2.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "23b71c3ce99b7611011217b366d923f1d0a7e07a92bb2dbf1e84508c673ca3bd"
|
||||
checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"bitflags",
|
||||
@@ -692,7 +692,7 @@ dependencies = [
|
||||
"once_cell",
|
||||
"strsim 0.10.0",
|
||||
"termcolor",
|
||||
"textwrap 0.15.0",
|
||||
"textwrap 0.15.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1029,7 +1029,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
"typenum",
|
||||
]
|
||||
|
||||
@@ -1132,7 +1132,7 @@ dependencies = [
|
||||
"async-executor",
|
||||
"async-std",
|
||||
"async-trait",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"darkfi",
|
||||
"futures",
|
||||
"log",
|
||||
@@ -1189,7 +1189,7 @@ dependencies = [
|
||||
"bs58",
|
||||
"bytes",
|
||||
"chrono",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"crypto_api_chachapoly",
|
||||
"darkfi-derive",
|
||||
"darkfi-derive-internal",
|
||||
@@ -1298,7 +1298,7 @@ version = "0.3.0"
|
||||
dependencies = [
|
||||
"async-std",
|
||||
"bs58",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"darkfi",
|
||||
"halo2_gadgets",
|
||||
"halo2_proofs",
|
||||
@@ -1483,9 +1483,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.10.3"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
|
||||
checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
|
||||
dependencies = [
|
||||
"block-buffer",
|
||||
"crypto-common",
|
||||
@@ -1548,7 +1548,7 @@ version = "0.3.0"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"async-std",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"darkfi",
|
||||
"easy-parallel",
|
||||
"fxhash",
|
||||
@@ -1567,9 +1567,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "dotenvy"
|
||||
version = "0.15.3"
|
||||
version = "0.15.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da3db6fcad7c1fc4abdd99bf5276a4db30d6a819127903a709ed41e5ff016e84"
|
||||
checksum = "ed9155c8f4dc55c7470ae9da3f63c6785245093b3f6aeb0f5bf2e968efbba314"
|
||||
dependencies = [
|
||||
"dirs",
|
||||
]
|
||||
@@ -1579,7 +1579,7 @@ name = "drk"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"async-std",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"darkfi",
|
||||
"log",
|
||||
"prettytable-rs",
|
||||
@@ -1643,9 +1643,9 @@ checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946"
|
||||
|
||||
[[package]]
|
||||
name = "ed25519-compact"
|
||||
version = "1.0.11"
|
||||
version = "1.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24e1f30f0312ac83726c1197abeacd91c9557f8a623e904a009ae6bc529ae8d8"
|
||||
checksum = "bee9df587982575886a8682edcee11877894349a805f25629c27f63abe3e9ae8"
|
||||
dependencies = [
|
||||
"ct-codecs",
|
||||
"getrandom",
|
||||
@@ -1789,7 +1789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df689201f395c6b90dfe87127685f8dbfc083a5e779e613575d8bd7314300c3e"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
@@ -1869,11 +1869,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
|
||||
[[package]]
|
||||
name = "form_urlencoded"
|
||||
version = "1.0.1"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
|
||||
checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
|
||||
dependencies = [
|
||||
"matches",
|
||||
"percent-encoding",
|
||||
]
|
||||
|
||||
@@ -2117,7 +2116,7 @@ checksum = "7391856def869c1c81063a03457c676fbcd419709c3dfb33d8d319de484b154d"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"ff",
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
@@ -2153,7 +2152,7 @@ dependencies = [
|
||||
"group",
|
||||
"pasta_curves",
|
||||
"plotters",
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
"rayon",
|
||||
"tabbycat",
|
||||
"tracing",
|
||||
@@ -2179,9 +2178,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hashlink"
|
||||
version = "0.8.0"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d452c155cb93fecdfb02a73dd57b5d8e442c2063bd7aac72f1bc5e4263a43086"
|
||||
checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa"
|
||||
dependencies = [
|
||||
"hashbrown 0.12.3",
|
||||
]
|
||||
@@ -2238,14 +2237,13 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
|
||||
|
||||
[[package]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.47"
|
||||
version = "0.1.50"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7"
|
||||
checksum = "fd911b35d940d2bd0bea0f9100068e5b97b51a1cbe13d13382f132e0365257a0"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"core-foundation-sys",
|
||||
"js-sys",
|
||||
"once_cell",
|
||||
"wasm-bindgen",
|
||||
"winapi",
|
||||
]
|
||||
@@ -2258,11 +2256,10 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "0.2.3"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
|
||||
checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
|
||||
dependencies = [
|
||||
"matches",
|
||||
"unicode-bidi",
|
||||
"unicode-normalization",
|
||||
]
|
||||
@@ -2304,9 +2301,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "indicatif"
|
||||
version = "0.17.0"
|
||||
version = "0.17.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fcc42b206e70d86ec03285b123e65a5458c92027d1fb2ae3555878b8113b3ddf"
|
||||
checksum = "bfddc9561e8baf264e0e45e197fd7696320026eb10a8180340debc27b18f535b"
|
||||
dependencies = [
|
||||
"console",
|
||||
"number_prefix",
|
||||
@@ -2342,7 +2339,7 @@ dependencies = [
|
||||
"async-trait",
|
||||
"bs58",
|
||||
"chrono",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"crypto_box",
|
||||
"ctrlc",
|
||||
"darkfi",
|
||||
@@ -2367,9 +2364,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.3"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
|
||||
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
@@ -2394,9 +2391,9 @@ checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b"
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.59"
|
||||
version = "0.3.60"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
|
||||
checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
|
||||
dependencies = [
|
||||
"wasm-bindgen",
|
||||
]
|
||||
@@ -2430,9 +2427,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.132"
|
||||
version = "0.2.133"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
|
||||
checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966"
|
||||
|
||||
[[package]]
|
||||
name = "libloading"
|
||||
@@ -2481,9 +2478,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
version = "0.4.8"
|
||||
version = "0.4.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390"
|
||||
checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"scopeguard",
|
||||
@@ -2529,12 +2526,6 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "matches"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.5.0"
|
||||
@@ -2733,9 +2724,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.14.0"
|
||||
version = "1.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0"
|
||||
checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
|
||||
|
||||
[[package]]
|
||||
name = "opaque-debug"
|
||||
@@ -2899,15 +2890,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "percent-encoding"
|
||||
version = "2.1.0"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
|
||||
checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
|
||||
|
||||
[[package]]
|
||||
name = "pest"
|
||||
version = "2.3.0"
|
||||
version = "2.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4"
|
||||
checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
"ucd-trie",
|
||||
@@ -2953,9 +2944,9 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
|
||||
|
||||
[[package]]
|
||||
name = "plotters"
|
||||
version = "0.3.3"
|
||||
version = "0.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "716b4eeb6c4a1d3ecc956f75b43ec2e8e8ba80026413e70a3f41fd3313d3492b"
|
||||
checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"font-kit",
|
||||
@@ -3193,7 +3184,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3203,7 +3194,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3214,9 +3205,9 @@ checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.3"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
@@ -3227,7 +3218,7 @@ version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
|
||||
dependencies = [
|
||||
"rand_core 0.6.3",
|
||||
"rand_core 0.6.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3376,11 +3367,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ripemd"
|
||||
version = "0.1.1"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1facec54cb5e0dc08553501fa740091086d0259ad0067e0d4103448e4cb22ed3"
|
||||
checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f"
|
||||
dependencies = [
|
||||
"digest 0.10.3",
|
||||
"digest 0.10.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3558,9 +3549,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "semver"
|
||||
version = "1.0.13"
|
||||
version = "1.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711"
|
||||
checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
@@ -3576,9 +3567,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.144"
|
||||
version = "1.0.145"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860"
|
||||
checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
@@ -3594,9 +3585,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.144"
|
||||
version = "1.0.145"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00"
|
||||
checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -3622,18 +3613,18 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cpufeatures",
|
||||
"digest 0.10.3",
|
||||
"digest 0.10.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.5"
|
||||
version = "0.10.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5"
|
||||
checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cpufeatures",
|
||||
"digest 0.10.3",
|
||||
"digest 0.10.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3774,9 +3765,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sqlformat"
|
||||
version = "0.1.8"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4"
|
||||
checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a"
|
||||
dependencies = [
|
||||
"itertools",
|
||||
"nom",
|
||||
@@ -3785,9 +3776,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sqlx"
|
||||
version = "0.6.1"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "788841def501aabde58d3666fcea11351ec3962e6ea75dbcd05c84a71d68bcd1"
|
||||
checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428"
|
||||
dependencies = [
|
||||
"sqlx-core",
|
||||
"sqlx-macros",
|
||||
@@ -3795,9 +3786,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sqlx-core"
|
||||
version = "0.6.1"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c21d3b5e7cadfe9ba7cdc1295f72cc556c750b4419c27c219c0693198901f8e"
|
||||
checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"atoi",
|
||||
@@ -3837,9 +3828,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sqlx-macros"
|
||||
version = "0.6.1"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4adfd2df3557bddd3b91377fc7893e8fa899e9b4061737cbade4e1bb85f1b45c"
|
||||
checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9"
|
||||
dependencies = [
|
||||
"dotenvy",
|
||||
"either",
|
||||
@@ -3856,9 +3847,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sqlx-rt"
|
||||
version = "0.6.1"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7be52fc7c96c136cedea840ed54f7d446ff31ad670c9dea95ebcb998530971a3"
|
||||
checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396"
|
||||
dependencies = [
|
||||
"async-native-tls",
|
||||
"async-std",
|
||||
@@ -3965,9 +3956,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.99"
|
||||
version = "1.0.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
|
||||
checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -4015,7 +4006,7 @@ version = "0.4.0"
|
||||
dependencies = [
|
||||
"async-std",
|
||||
"chrono",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"colored",
|
||||
"darkfi",
|
||||
"fxhash",
|
||||
@@ -4025,7 +4016,7 @@ dependencies = [
|
||||
"serde_json",
|
||||
"simplelog",
|
||||
"term_grid",
|
||||
"textwrap 0.15.0",
|
||||
"textwrap 0.15.1",
|
||||
"url",
|
||||
]
|
||||
|
||||
@@ -4135,9 +4126,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "textwrap"
|
||||
version = "0.15.0"
|
||||
version = "0.15.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
|
||||
checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16"
|
||||
dependencies = [
|
||||
"smawk",
|
||||
"unicode-linebreak",
|
||||
@@ -4146,18 +4137,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.34"
|
||||
version = "1.0.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c1b05ca9d106ba7d2e31a9dab4a64e7be2cce415321966ea3132c49a656e252"
|
||||
checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.34"
|
||||
version = "1.0.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e8f2591983642de85c921015f3f070c665a197ed69e417af436115e3a1407487"
|
||||
checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -4303,9 +4294,9 @@ checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
|
||||
|
||||
[[package]]
|
||||
name = "uint"
|
||||
version = "0.9.3"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0"
|
||||
checksum = "a45526d29728d135c2900b0d30573fe3ee79fceb12ef534c7bb30e810a91b601"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"crunchy",
|
||||
@@ -4330,45 +4321,46 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.3"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
|
||||
checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-linebreak"
|
||||
version = "0.1.2"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3a52dcaab0c48d931f7cc8ef826fa51690a08e1ea55117ef26f89864f532383f"
|
||||
checksum = "ba853b89cad55680dd3cf06f2798cb1ad8d483f0e2dfa14138d7e789ecee5c4e"
|
||||
dependencies = [
|
||||
"hashbrown 0.12.3",
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-normalization"
|
||||
version = "0.1.21"
|
||||
version = "0.1.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
|
||||
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
|
||||
dependencies = [
|
||||
"tinyvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-segmentation"
|
||||
version = "1.9.0"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
|
||||
checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-width"
|
||||
version = "0.1.9"
|
||||
version = "0.1.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
|
||||
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.2.3"
|
||||
version = "0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
|
||||
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
||||
|
||||
[[package]]
|
||||
name = "unicode_categories"
|
||||
@@ -4394,13 +4386,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
|
||||
|
||||
[[package]]
|
||||
name = "url"
|
||||
version = "2.2.2"
|
||||
version = "2.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
|
||||
checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
|
||||
dependencies = [
|
||||
"form_urlencoded",
|
||||
"idna",
|
||||
"matches",
|
||||
"percent-encoding",
|
||||
"serde",
|
||||
]
|
||||
@@ -4426,7 +4417,7 @@ name = "vanityaddr"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"bs58",
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"ctrlc",
|
||||
"darkfi",
|
||||
"indicatif",
|
||||
@@ -4499,9 +4490,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen"
|
||||
version = "0.2.82"
|
||||
version = "0.2.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
|
||||
checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"wasm-bindgen-macro",
|
||||
@@ -4509,9 +4500,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-backend"
|
||||
version = "0.2.82"
|
||||
version = "0.2.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
|
||||
checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"log",
|
||||
@@ -4524,9 +4515,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-futures"
|
||||
version = "0.4.32"
|
||||
version = "0.4.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad"
|
||||
checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"js-sys",
|
||||
@@ -4536,9 +4527,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro"
|
||||
version = "0.2.82"
|
||||
version = "0.2.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
|
||||
checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"wasm-bindgen-macro-support",
|
||||
@@ -4546,9 +4537,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro-support"
|
||||
version = "0.2.82"
|
||||
version = "0.2.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
|
||||
checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -4559,15 +4550,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-shared"
|
||||
version = "0.2.82"
|
||||
version = "0.2.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
|
||||
checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
|
||||
|
||||
[[package]]
|
||||
name = "wasm-encoder"
|
||||
version = "0.16.0"
|
||||
version = "0.17.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d443c5a7daae71697d97ec12ad70b4fe8766d3a0f4db16158ac8b781365892f7"
|
||||
checksum = "7e7ca71c70a6de5b10968ae4d298e548366d9cd9588176e6ff8866f3c49c96ee"
|
||||
dependencies = [
|
||||
"leb128",
|
||||
]
|
||||
@@ -4842,9 +4833,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a"
|
||||
|
||||
[[package]]
|
||||
name = "wast"
|
||||
version = "46.0.0"
|
||||
version = "47.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea0ab19660e3ea6891bba69167b9be40fad00fb1fe3dd39c5eebcee15607131b"
|
||||
checksum = "117ccfc4262e62a28a13f0548a147f19ffe71e8a08be802af23ae4ea0bedad73"
|
||||
dependencies = [
|
||||
"leb128",
|
||||
"memchr",
|
||||
@@ -4854,18 +4845,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wat"
|
||||
version = "1.0.48"
|
||||
version = "1.0.49"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f775282def4d5bffd94d60d6ecd57bfe6faa46171cdbf8d32bd5458842b1e3e"
|
||||
checksum = "7aab4e20c60429fbba9670a6cae0fff9520046ba0aa3e6d0b1cd2653bea14898"
|
||||
dependencies = [
|
||||
"wast",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "web-sys"
|
||||
version = "0.3.59"
|
||||
version = "0.3.60"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1"
|
||||
checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
@@ -5124,6 +5115,6 @@ dependencies = [
|
||||
name = "zkas"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"clap 3.2.20",
|
||||
"clap 3.2.22",
|
||||
"darkfi",
|
||||
]
|
||||
|
||||
29
Cargo.toml
29
Cargo.toml
@@ -36,8 +36,8 @@ members = [
|
||||
"bin/vanityaddr",
|
||||
"bin/lilith",
|
||||
"src/sdk",
|
||||
"src/util/derive",
|
||||
"src/util/derive-internal",
|
||||
"src/serial/derive",
|
||||
"src/serial/derive-internal",
|
||||
|
||||
"example/dchat",
|
||||
]
|
||||
@@ -89,8 +89,8 @@ lazy-init = {version = "0.5.1", optional = true}
|
||||
fxhash = {version = "0.2.1", optional = true}
|
||||
indexmap = {version = "1.9.1", optional = true}
|
||||
itertools = {version = "0.10.3", optional = true}
|
||||
darkfi-derive = {path = "src/util/derive", optional = true}
|
||||
darkfi-derive-internal = {path = "src/util/derive-internal", optional = true}
|
||||
darkfi-derive = {path = "src/serial/derive", optional = true}
|
||||
darkfi-derive-internal = {path = "src/serial/derive-internal", optional = true}
|
||||
chrono = {version = "0.4.22", optional = true}
|
||||
|
||||
# Misc
|
||||
@@ -178,9 +178,19 @@ util = [
|
||||
|
||||
"async-net",
|
||||
"async-runtime",
|
||||
"darkfi-derive",
|
||||
"darkfi-derive-internal",
|
||||
"rpc",
|
||||
"serial",
|
||||
]
|
||||
|
||||
async-serial = [
|
||||
"futures",
|
||||
|
||||
"serial",
|
||||
]
|
||||
|
||||
serial = [
|
||||
"darkfi-derive",
|
||||
"darkfi-derive-internal",
|
||||
]
|
||||
|
||||
rpc = [
|
||||
@@ -225,8 +235,10 @@ net = [
|
||||
"structopt",
|
||||
"structopt-toml",
|
||||
|
||||
"util",
|
||||
"async-serial",
|
||||
"serial",
|
||||
"system",
|
||||
"util",
|
||||
]
|
||||
|
||||
crypto = [
|
||||
@@ -249,6 +261,7 @@ crypto = [
|
||||
"bs58",
|
||||
|
||||
"util",
|
||||
"serial",
|
||||
"zkas",
|
||||
]
|
||||
|
||||
@@ -286,7 +299,7 @@ zkas = [
|
||||
"indexmap",
|
||||
"itertools",
|
||||
|
||||
"util",
|
||||
"serial",
|
||||
]
|
||||
|
||||
raft = [
|
||||
|
||||
@@ -369,6 +369,9 @@ pub enum VerifyFailed {
|
||||
/// Client module errors
|
||||
#[derive(Debug, Clone, thiserror::Error)]
|
||||
pub enum ClientFailed {
|
||||
#[error("IO error: {0}")]
|
||||
Io(std::io::ErrorKind),
|
||||
|
||||
#[error("Not enough value: {0}")]
|
||||
NotEnoughValue(u64),
|
||||
|
||||
@@ -403,6 +406,12 @@ impl From<VerifyFailed> for ClientFailed {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<std::io::Error> for ClientFailed {
|
||||
fn from(err: std::io::Error) -> Self {
|
||||
Self::Io(err.kind())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "async-std")]
|
||||
impl From<async_std::future::TimeoutError> for Error {
|
||||
fn from(_err: async_std::future::TimeoutError) -> Self {
|
||||
|
||||
@@ -31,6 +31,9 @@ pub mod raft;
|
||||
#[cfg(feature = "rpc")]
|
||||
pub mod rpc;
|
||||
|
||||
#[cfg(feature = "serial")]
|
||||
pub mod serial;
|
||||
|
||||
#[cfg(feature = "system")]
|
||||
pub mod system;
|
||||
|
||||
|
||||
@@ -1,25 +1,85 @@
|
||||
use futures::prelude::*;
|
||||
use std::io::{Error, ErrorKind};
|
||||
|
||||
use super::{endian, serial::VarInt};
|
||||
use crate::{Error, Result};
|
||||
use super::{endian, VarInt};
|
||||
|
||||
pub struct AsyncReadExt;
|
||||
pub struct AsyncWriteExt;
|
||||
|
||||
macro_rules! async_decoder_fn {
|
||||
($name:ident, $val_type:ty, $readfn:ident, $byte_len:expr) => {
|
||||
#[inline]
|
||||
pub async fn $name<R: AsyncRead + Unpin>(stream: &mut R) -> Result<$val_type, Error> {
|
||||
assert_eq!(core::mem::size_of::<$val_type>(), $byte_len);
|
||||
let mut val = [0; $byte_len];
|
||||
stream.read_exact(&mut val[..]).await?;
|
||||
Ok(endian::$readfn(&val))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! async_encoder_fn {
|
||||
($name:ident, $val_type:ty, $writefn:ident) => {
|
||||
#[inline]
|
||||
pub async fn $name<W: AsyncWrite + Unpin>(
|
||||
stream: &mut W,
|
||||
v: $val_type,
|
||||
) -> Result<(), Error> {
|
||||
stream.write_all(&endian::$writefn(v)).await
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl AsyncReadExt {
|
||||
async_decoder_fn!(read_u128, u128, slice_to_u128_le, 16);
|
||||
async_decoder_fn!(read_u64, u64, slice_to_u64_le, 8);
|
||||
async_decoder_fn!(read_u32, u32, slice_to_u32_le, 4);
|
||||
async_decoder_fn!(read_u16, u16, slice_to_u16_le, 2);
|
||||
|
||||
pub async fn read_u8<R: AsyncRead + Unpin>(stream: &mut R) -> Result<u8, Error> {
|
||||
let mut slice = [0u8; 1];
|
||||
stream.read_exact(&mut slice).await?;
|
||||
Ok(slice[0])
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl AsyncWriteExt {
|
||||
async_encoder_fn!(write_u128, u128, u128_to_array_le);
|
||||
async_encoder_fn!(write_u64, u64, u64_to_array_le);
|
||||
async_encoder_fn!(write_u32, u32, u32_to_array_le);
|
||||
async_encoder_fn!(write_u16, u16, u16_to_array_le);
|
||||
|
||||
pub async fn write_u8<W: AsyncWrite + Unpin>(stream: &mut W, v: u8) -> Result<(), Error> {
|
||||
stream.write_all(&[v]).await
|
||||
}
|
||||
}
|
||||
|
||||
impl VarInt {
|
||||
pub async fn encode_async<W: AsyncWrite + Unpin>(&self, stream: &mut W) -> Result<usize> {
|
||||
#[inline]
|
||||
pub async fn encode_async<W: AsyncWrite + Unpin>(
|
||||
&self,
|
||||
stream: &mut W,
|
||||
) -> Result<usize, Error> {
|
||||
match self.0 {
|
||||
0..=0xFC => {
|
||||
AsyncWriteExt::write_u8(stream, self.0 as u8).await?;
|
||||
Ok(1)
|
||||
}
|
||||
|
||||
0xFD..=0xFFFF => {
|
||||
AsyncWriteExt::write_u8(stream, 0xFD).await?;
|
||||
AsyncWriteExt::write_u16(stream, self.0 as u16).await?;
|
||||
Ok(3)
|
||||
}
|
||||
|
||||
0x10000..=0xFFFFFFFF => {
|
||||
AsyncWriteExt::write_u8(stream, 0xFE).await?;
|
||||
AsyncWriteExt::write_u32(stream, self.0 as u32).await?;
|
||||
Ok(5)
|
||||
}
|
||||
|
||||
_ => {
|
||||
AsyncWriteExt::write_u8(stream, 0xFF).await?;
|
||||
AsyncWriteExt::write_u64(stream, self.0 as u64).await?;
|
||||
@@ -28,80 +88,35 @@ impl VarInt {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn decode_async<R: AsyncRead + Unpin>(stream: &mut R) -> Result<Self> {
|
||||
#[inline]
|
||||
pub async fn decode_async<R: AsyncRead + Unpin>(stream: &mut R) -> Result<Self, Error> {
|
||||
let n = AsyncReadExt::read_u8(stream).await?;
|
||||
match n {
|
||||
0xFF => {
|
||||
let x = AsyncReadExt::read_u64(stream).await?;
|
||||
if x < 0x100000000 {
|
||||
Err(Error::NonMinimalVarInt)
|
||||
} else {
|
||||
Ok(VarInt(x))
|
||||
return Err(Error::new(ErrorKind::Other, "Non-minimal VarInt"))
|
||||
}
|
||||
Ok(VarInt(x))
|
||||
}
|
||||
|
||||
0xFE => {
|
||||
let x = AsyncReadExt::read_u32(stream).await?;
|
||||
if x < 0x10000 {
|
||||
Err(Error::NonMinimalVarInt)
|
||||
} else {
|
||||
Ok(VarInt(x as u64))
|
||||
return Err(Error::new(ErrorKind::Other, "Non-minimal VarInt"))
|
||||
}
|
||||
Ok(VarInt(x as u64))
|
||||
}
|
||||
|
||||
0xFD => {
|
||||
let x = AsyncReadExt::read_u16(stream).await?;
|
||||
if x < 0xFD {
|
||||
Err(Error::NonMinimalVarInt)
|
||||
} else {
|
||||
Ok(VarInt(x as u64))
|
||||
return Err(Error::new(ErrorKind::Other, "Non-minimal VarInt"))
|
||||
}
|
||||
Ok(VarInt(x as u64))
|
||||
}
|
||||
|
||||
n => Ok(VarInt(n as u64)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
macro_rules! async_encoder_fn {
|
||||
($name:ident, $val_type:ty, $writefn:ident) => {
|
||||
#[inline]
|
||||
pub async fn $name<W: AsyncWrite + Unpin>(stream: &mut W, v: $val_type) -> Result<()> {
|
||||
stream.write_all(&endian::$writefn(v)).await.map_err(|e| Error::Io(e.kind()))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! async_decoder_fn {
|
||||
($name:ident, $val_type:ty, $readfn:ident, $byte_len: expr) => {
|
||||
pub async fn $name<R: AsyncRead + Unpin>(stream: &mut R) -> Result<$val_type> {
|
||||
assert_eq!(::std::mem::size_of::<$val_type>(), $byte_len); // size_of isn't a constfn in 1.22
|
||||
let mut val = [0; $byte_len];
|
||||
stream.read_exact(&mut val[..]).await.map_err(|e| Error::Io(e.kind()))?;
|
||||
Ok(endian::$readfn(&val))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
pub struct AsyncReadExt {}
|
||||
|
||||
impl AsyncReadExt {
|
||||
async_decoder_fn!(read_u64, u64, slice_to_u64_le, 8);
|
||||
async_decoder_fn!(read_u32, u32, slice_to_u32_le, 4);
|
||||
async_decoder_fn!(read_u16, u16, slice_to_u16_le, 2);
|
||||
|
||||
pub async fn read_u8<R: AsyncRead + Unpin>(stream: &mut R) -> Result<u8> {
|
||||
let mut slice = [0u8; 1];
|
||||
stream.read_exact(&mut slice).await?;
|
||||
Ok(slice[0])
|
||||
}
|
||||
}
|
||||
|
||||
pub struct AsyncWriteExt {}
|
||||
|
||||
impl AsyncWriteExt {
|
||||
async_encoder_fn!(write_u64, u64, u64_to_array_le);
|
||||
async_encoder_fn!(write_u32, u32, u32_to_array_le);
|
||||
async_encoder_fn!(write_u16, u16, u16_to_array_le);
|
||||
|
||||
pub async fn write_u8<W: AsyncWrite + Unpin>(stream: &mut W, v: u8) -> Result<()> {
|
||||
stream.write_all(&[v]).await.map_err(|e| Error::Io(e.kind()))
|
||||
}
|
||||
}
|
||||
14
src/serial/derive-internal/Cargo.toml
Normal file
14
src/serial/derive-internal/Cargo.toml
Normal file
@@ -0,0 +1,14 @@
|
||||
[package]
|
||||
name = "darkfi-derive-internal"
|
||||
version = "0.3.0"
|
||||
homepage = "https://dark.fi"
|
||||
description = "Internal crate for serialization derive macros"
|
||||
authors = ["darkfi <dev@dark.fi>"]
|
||||
repository = "https://github.com/darkrenaissance/darkfi"
|
||||
license = "AGPL-3.0-only"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
proc-macro2 = "1.0.43"
|
||||
quote = "1.0.21"
|
||||
syn = {version = "1.0.99", features = ["full", "fold"]}
|
||||
@@ -1,4 +1,4 @@
|
||||
//! Derive (de)serialization for structs, see src/util/derive
|
||||
//! Derive (de)serialization for structs, see src/serial/derive
|
||||
use proc_macro2::{Span, TokenStream as TokenStream2};
|
||||
use quote::quote;
|
||||
use syn::{Fields, Ident, Index, ItemEnum, ItemStruct, WhereClause};
|
||||
@@ -33,8 +33,8 @@ pub fn enum_ser(input: &ItemEnum, cratename: Ident) -> syn::Result<TokenStream2>
|
||||
body.extend(ret);
|
||||
|
||||
Ok(quote! {
|
||||
impl #cratename::util::serial::Encodable for #name #where_clause {
|
||||
fn encode<S: std::io::Write>(&self, mut s: S) -> #cratename::Result<usize> {
|
||||
impl #cratename::serial::Encodable for #name #where_clause {
|
||||
fn encode<S: std::io::Write>(&self, mut s: S) -> ::core::result::Result<usize, std::io::Error> {
|
||||
#body
|
||||
}
|
||||
}
|
||||
@@ -74,7 +74,7 @@ pub fn struct_ser(input: &ItemStruct, cratename: Ident) -> syn::Result<TokenStre
|
||||
let field_type = &field.ty;
|
||||
where_clause.predicates.push(
|
||||
syn::parse2(quote! {
|
||||
#field_type: #cratename::util::serial::Encodable
|
||||
#field_type: #cratename::serial::Encodable
|
||||
})
|
||||
.unwrap(),
|
||||
);
|
||||
@@ -111,8 +111,8 @@ pub fn struct_ser(input: &ItemStruct, cratename: Ident) -> syn::Result<TokenStre
|
||||
}
|
||||
|
||||
Ok(quote! {
|
||||
impl #cratename::util::serial::Encodable for #name #where_clause {
|
||||
fn encode<S: std::io::Write>(&self, mut s: S) -> #cratename::Result<usize> {
|
||||
impl #cratename::serial::Encodable for #name #where_clause {
|
||||
fn encode<S: std::io::Write>(&self, mut s: S) -> ::core::result::Result<usize, std::io::Error> {
|
||||
#body
|
||||
}
|
||||
}
|
||||
@@ -155,13 +155,13 @@ pub fn struct_de(input: &ItemStruct, cratename: Ident) -> syn::Result<TokenStrea
|
||||
let field_type = &field.ty;
|
||||
where_clause.predicates.push(
|
||||
syn::parse2(quote! {
|
||||
#field_type: #cratename::util::serial::Decodable
|
||||
#field_type: #cratename::serial::Decodable
|
||||
})
|
||||
.unwrap(),
|
||||
);
|
||||
|
||||
quote! {
|
||||
#field_name: #cratename::util::serial::Decodable::decode(&mut d)?,
|
||||
#field_name: #cratename::serial::Decodable::decode(&mut d)?,
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -177,7 +177,7 @@ pub fn struct_de(input: &ItemStruct, cratename: Ident) -> syn::Result<TokenStrea
|
||||
let mut body = TokenStream2::new();
|
||||
for _ in 0..fields.unnamed.len() {
|
||||
let delta = quote! {
|
||||
#cratename::util::serial::Decodable::decode(&mut d)?,
|
||||
#cratename::serial::Decodable::decode(&mut d)?,
|
||||
};
|
||||
body.extend(delta);
|
||||
}
|
||||
@@ -194,8 +194,8 @@ pub fn struct_de(input: &ItemStruct, cratename: Ident) -> syn::Result<TokenStrea
|
||||
};
|
||||
|
||||
Ok(quote! {
|
||||
impl #cratename::util::serial::Decodable for #name #where_clause {
|
||||
fn decode<D: std::io::Read>(mut d: D) -> #cratename::Result<Self> {
|
||||
impl #cratename::serial::Decodable for #name #where_clause {
|
||||
fn decode<D: std::io::Read>(mut d: D) -> ::core::result::Result<Self, std::io::Error> {
|
||||
Ok(#return_value)
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
[package]
|
||||
name = "darkfi-derive"
|
||||
version = "0.3.0"
|
||||
homepage = "https://dark.fi"
|
||||
description = "Crate for serialization derive macros"
|
||||
authors = ["darkfi <dev@dark.fi>"]
|
||||
repository = "https://github.com/darkrenaissance/darkfi"
|
||||
license = "AGPL-3.0-only"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
102
src/serial/encoding_types.rs
Normal file
102
src/serial/encoding_types.rs
Normal file
@@ -0,0 +1,102 @@
|
||||
//! Encodings for external crates
|
||||
use std::{
|
||||
collections::{BTreeMap, HashSet},
|
||||
io::{Error, Read, Write},
|
||||
};
|
||||
|
||||
#[allow(unused_imports)]
|
||||
use super::{Decodable, Encodable, ReadExt, VarInt, WriteExt};
|
||||
|
||||
impl<T: Encodable> Encodable for HashSet<T> {
|
||||
fn encode<S: Write>(&self, mut s: S) -> Result<usize, Error> {
|
||||
let mut len = 0;
|
||||
len += VarInt(self.len() as u64).encode(&mut s)?;
|
||||
for c in self.iter() {
|
||||
len += c.encode(&mut s)?;
|
||||
}
|
||||
Ok(len)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Decodable + std::cmp::Eq + std::hash::Hash> Decodable for HashSet<T> {
|
||||
fn decode<D: Read>(mut d: D) -> Result<Self, Error> {
|
||||
let len = VarInt::decode(&mut d)?.0;
|
||||
let mut ret = HashSet::new();
|
||||
for _ in 0..len {
|
||||
let entry: T = Decodable::decode(&mut d)?;
|
||||
ret.insert(entry);
|
||||
}
|
||||
Ok(ret)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Encodable, U: Encodable> Encodable for BTreeMap<T, U> {
|
||||
fn encode<S: Write>(&self, mut s: S) -> Result<usize, Error> {
|
||||
let mut len = 0;
|
||||
len += VarInt(self.len() as u64).encode(&mut s)?;
|
||||
for c in self.iter() {
|
||||
len += c.0.encode(&mut s)?;
|
||||
len += c.1.encode(&mut s)?;
|
||||
}
|
||||
Ok(len)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Decodable + std::cmp::Ord, U: Decodable> Decodable for BTreeMap<T, U> {
|
||||
fn decode<D: Read>(mut d: D) -> Result<Self, Error> {
|
||||
let len = VarInt::decode(&mut d)?.0;
|
||||
let mut ret = BTreeMap::new();
|
||||
for _ in 0..len {
|
||||
let key: T = Decodable::decode(&mut d)?;
|
||||
let entry: U = Decodable::decode(&mut d)?;
|
||||
ret.insert(key, entry);
|
||||
}
|
||||
Ok(ret)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "blake3")]
|
||||
impl Encodable for blake3::Hash {
|
||||
fn encode<S: Write>(&self, mut s: S) -> Result<usize, Error> {
|
||||
s.write_slice(self.as_bytes())?;
|
||||
Ok(32)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "blake3")]
|
||||
impl Decodable for blake3::Hash {
|
||||
fn decode<D: Read>(mut d: D) -> Result<Self, Error> {
|
||||
let mut bytes = [0u8; 32];
|
||||
d.read_slice(&mut bytes)?;
|
||||
Ok(bytes.into())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "fxhash")]
|
||||
impl<T: Encodable, U: Encodable> Encodable for fxhash::FxHashMap<T, U> {
|
||||
fn encode<S: Write>(&self, mut s: S) -> Result<usize, Error> {
|
||||
let mut len = 0;
|
||||
len += VarInt(self.len() as u64).encode(&mut s)?;
|
||||
for c in self.iter() {
|
||||
len += c.0.encode(&mut s)?;
|
||||
len += c.1.encode(&mut s)?;
|
||||
}
|
||||
Ok(len)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "fxhash")]
|
||||
impl<T: Decodable + std::cmp::Eq + std::hash::Hash, U: Decodable> Decodable
|
||||
for fxhash::FxHashMap<T, U>
|
||||
{
|
||||
fn decode<D: Read>(mut d: D) -> Result<Self, Error> {
|
||||
let len = VarInt::decode(&mut d)?.0;
|
||||
let mut ret = fxhash::FxHashMap::default();
|
||||
for _ in 0..len {
|
||||
let key: T = Decodable::decode(&mut d)?;
|
||||
let entry: U = Decodable::decode(&mut d)?;
|
||||
ret.insert(key, entry);
|
||||
}
|
||||
Ok(ret)
|
||||
}
|
||||
}
|
||||
@@ -1,34 +1,38 @@
|
||||
macro_rules! define_slice_to_be {
|
||||
($name: ident, $type: ty) => {
|
||||
#[inline]
|
||||
#[allow(dead_code)]
|
||||
pub fn $name(slice: &[u8]) -> $type {
|
||||
assert_eq!(slice.len(), ::std::mem::size_of::<$type>());
|
||||
assert_eq!(slice.len(), ::core::mem::size_of::<$type>());
|
||||
let mut res = 0;
|
||||
for i in 0..::std::mem::size_of::<$type>() {
|
||||
res |= (slice[i] as $type) << (::std::mem::size_of::<$type>() - i - 1) * 8;
|
||||
for i in 0..::core::mem::size_of::<$type>() {
|
||||
res |= (slice[i] as $type) << (::core::mem::size_of::<$type>() - i - 1) * 8;
|
||||
}
|
||||
res
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! define_slice_to_le {
|
||||
($name: ident, $type: ty) => {
|
||||
#[inline]
|
||||
pub fn $name(slice: &[u8]) -> $type {
|
||||
assert_eq!(slice.len(), ::std::mem::size_of::<$type>());
|
||||
assert_eq!(slice.len(), ::core::mem::size_of::<$type>());
|
||||
let mut res = 0;
|
||||
for i in 0..::std::mem::size_of::<$type>() {
|
||||
for i in 0..::core::mem::size_of::<$type>() {
|
||||
res |= (slice[i] as $type) << i * 8;
|
||||
}
|
||||
res
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! define_be_to_array {
|
||||
($name: ident, $type: ty, $byte_len: expr) => {
|
||||
#[inline]
|
||||
#[allow(dead_code)]
|
||||
pub fn $name(val: $type) -> [u8; $byte_len] {
|
||||
assert_eq!(::std::mem::size_of::<$type>(), $byte_len); // size_of isn't a constfn in 1.22
|
||||
assert_eq!(::core::mem::size_of::<$type>(), $byte_len);
|
||||
let mut res = [0; $byte_len];
|
||||
for i in 0..$byte_len {
|
||||
res[i] = ((val >> ($byte_len - i - 1) * 8) & 0xff) as u8;
|
||||
@@ -37,11 +41,12 @@ macro_rules! define_be_to_array {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! define_le_to_array {
|
||||
($name: ident, $type: ty, $byte_len: expr) => {
|
||||
#[inline]
|
||||
pub fn $name(val: $type) -> [u8; $byte_len] {
|
||||
assert_eq!(::std::mem::size_of::<$type>(), $byte_len); // size_of isn't a constfn in 1.22
|
||||
assert_eq!(::core::mem::size_of::<$type>(), $byte_len);
|
||||
let mut res = [0; $byte_len];
|
||||
for i in 0..$byte_len {
|
||||
res[i] = ((val >> i * 8) & 0xff) as u8;
|
||||
@@ -53,73 +58,97 @@ macro_rules! define_le_to_array {
|
||||
|
||||
define_slice_to_be!(slice_to_u32_be, u32);
|
||||
define_be_to_array!(u32_to_array_be, u32, 4);
|
||||
|
||||
define_slice_to_le!(slice_to_u16_le, u16);
|
||||
define_slice_to_le!(slice_to_u32_le, u32);
|
||||
define_slice_to_le!(slice_to_u64_le, u64);
|
||||
define_slice_to_le!(slice_to_u128_le, u128);
|
||||
define_slice_to_le!(slice_to_usize_le, usize);
|
||||
define_slice_to_le!(slice_to_isize_le, isize);
|
||||
|
||||
define_le_to_array!(u16_to_array_le, u16, 2);
|
||||
define_le_to_array!(u32_to_array_le, u32, 4);
|
||||
define_le_to_array!(u64_to_array_le, u64, 8);
|
||||
define_le_to_array!(u128_to_array_le, u128, 16);
|
||||
define_le_to_array!(usize_to_array_le, usize, usize::BITS as usize / 8);
|
||||
define_le_to_array!(isize_to_array_le, isize, isize::BITS as usize / 8);
|
||||
|
||||
#[inline]
|
||||
pub fn i16_to_array_le(val: i16) -> [u8; 2] {
|
||||
u16_to_array_le(val as u16)
|
||||
}
|
||||
#[inline]
|
||||
pub fn slice_to_i16_le(slice: &[u8]) -> i16 {
|
||||
slice_to_u16_le(slice) as i16
|
||||
}
|
||||
#[inline]
|
||||
pub fn slice_to_i32_le(slice: &[u8]) -> i32 {
|
||||
slice_to_u32_le(slice) as i32
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn i32_to_array_le(val: i32) -> [u8; 4] {
|
||||
u32_to_array_le(val as u32)
|
||||
}
|
||||
#[inline]
|
||||
pub fn slice_to_i64_le(slice: &[u8]) -> i64 {
|
||||
slice_to_u64_le(slice) as i64
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn i64_to_array_le(val: i64) -> [u8; 8] {
|
||||
u64_to_array_le(val as u64)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn i128_to_array_le(val: i128) -> [u8; 16] {
|
||||
u128_to_array_le(val as u128)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn slice_to_i16_le(slice: &[u8]) -> i16 {
|
||||
slice_to_u16_le(slice) as i16
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn slice_to_i32_le(slice: &[u8]) -> i32 {
|
||||
slice_to_u32_le(slice) as i32
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn slice_to_i64_le(slice: &[u8]) -> i64 {
|
||||
slice_to_u64_le(slice) as i64
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn slice_to_i128_le(slice: &[u8]) -> i128 {
|
||||
slice_to_u128_le(slice) as i128
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn f64_to_array_le(val: f64) -> [u8; 8] {
|
||||
assert_eq!(::std::mem::size_of::<f64>(), 8);
|
||||
assert_eq!(::core::mem::size_of::<f64>(), 8);
|
||||
val.to_le_bytes()
|
||||
}
|
||||
#[inline]
|
||||
pub fn slice_to_f64_le(slice: &[u8; 8]) -> f64 {
|
||||
assert_eq!(slice.len(), ::std::mem::size_of::<f64>());
|
||||
assert_eq!(slice.len(), ::core::mem::size_of::<f64>());
|
||||
f64::from_le_bytes(*slice)
|
||||
}
|
||||
#[inline]
|
||||
pub fn f32_to_array_le(val: f32) -> [u8; 4] {
|
||||
assert_eq!(::std::mem::size_of::<f32>(), 4);
|
||||
assert_eq!(::core::mem::size_of::<f32>(), 4);
|
||||
val.to_le_bytes()
|
||||
}
|
||||
#[inline]
|
||||
pub fn slice_to_f32_le(slice: &[u8; 4]) -> f32 {
|
||||
assert_eq!(slice.len(), ::std::mem::size_of::<f32>());
|
||||
assert_eq!(slice.len(), ::core::mem::size_of::<f32>());
|
||||
f32::from_le_bytes(*slice)
|
||||
}
|
||||
|
||||
macro_rules! define_chunk_slice_to_int {
|
||||
($name: ident, $type: ty, $converter: ident) => {
|
||||
#[inline]
|
||||
#[allow(dead_code)]
|
||||
pub fn $name(inp: &[u8], outp: &mut [$type]) {
|
||||
assert_eq!(inp.len(), outp.len() * ::std::mem::size_of::<$type>());
|
||||
assert_eq!(inp.len(), outp.len() * ::core::mem::size_of::<$type>());
|
||||
for (outp_val, data_bytes) in
|
||||
outp.iter_mut().zip(inp.chunks(::std::mem::size_of::<$type>()))
|
||||
outp.iter_mut().zip(inp.chunks(::core::mem::size_of::<$type>()))
|
||||
{
|
||||
*outp_val = $converter(data_bytes);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
define_chunk_slice_to_int!(bytes_to_u64_slice_le, u64, slice_to_u64_le);
|
||||
|
||||
#[cfg(test)]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -82,18 +82,6 @@ pub fn get_log_config() -> simplelog::Config {
|
||||
}
|
||||
}
|
||||
|
||||
pub const ANSI_LOGO: &str = include_str!("../../contrib/darkfi.ansi");
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! cli_desc {
|
||||
() => {{
|
||||
let mut desc = env!("CARGO_PKG_DESCRIPTION").to_string();
|
||||
desc.push_str("\n");
|
||||
desc.push_str(darkfi::util::cli::ANSI_LOGO);
|
||||
Box::leak(desc.into_boxed_str()) as &'static str
|
||||
}};
|
||||
}
|
||||
|
||||
/// This macro is used for a standard way of daemonizing darkfi binaries
|
||||
/// with TOML config file configuration, and argument parsing. It also
|
||||
/// spawns a multithreaded async executor and passes it into the given
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
use crate::{util::Timestamp, Result};
|
||||
use log::debug;
|
||||
use std::{thread, time::Duration};
|
||||
|
||||
use log::debug;
|
||||
use url::Url;
|
||||
|
||||
use crate::{util::time::Timestamp, Result};
|
||||
|
||||
pub enum Ticks {
|
||||
GENESIS { e: u64, sl: u64 }, //genesis epoch
|
||||
NEWSLOT { e: u64, sl: u64 }, // new slot
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
[package]
|
||||
name = "darkfi-derive-internal"
|
||||
version = "0.3.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
proc-macro2 = "1.0.43"
|
||||
quote = "1.0.21"
|
||||
syn = {version = "1.0.99", features = ["full", "fold"]}
|
||||
@@ -1,28 +1,34 @@
|
||||
#[cfg(feature = "async-runtime")]
|
||||
pub mod async_serial;
|
||||
#[cfg(feature = "async-runtime")]
|
||||
/// async utility functions
|
||||
pub mod async_util;
|
||||
|
||||
/// Command-line interface utilities
|
||||
pub mod cli;
|
||||
|
||||
/// Lamport clock (TODO: maybe shouldn't be in util module)
|
||||
pub mod clock;
|
||||
pub mod endian;
|
||||
pub use clock::{Clock, Ticks};
|
||||
|
||||
/// Filesystem utilities
|
||||
pub mod file;
|
||||
|
||||
/// Network differentiations (TODO: shouldn't be here in util module))
|
||||
pub mod net_name;
|
||||
|
||||
/// Parsing helpers
|
||||
pub mod parse;
|
||||
|
||||
/// Filesystem path utilities
|
||||
pub mod path;
|
||||
pub mod serial;
|
||||
|
||||
/// Time utilities (TODO: Util should **not** depend on `net` feature, so remove ntp from here)
|
||||
pub mod time;
|
||||
|
||||
#[cfg(feature = "async-runtime")]
|
||||
pub use async_util::sleep;
|
||||
|
||||
pub use net_name::NetworkName;
|
||||
pub use parse::{decode_base10, encode_base10};
|
||||
pub use path::{expand_path, join_config_path, load_keypair_to_str};
|
||||
|
||||
pub use clock::{Clock, Ticks};
|
||||
// =======================
|
||||
// TODO: Why is this here?
|
||||
// =======================
|
||||
use rand::{distributions::Alphanumeric, thread_rng, Rng};
|
||||
pub use time::{check_clock, ntp_request, unix_timestamp, NanoTimestamp, Timestamp};
|
||||
pub fn gen_id(len: usize) -> String {
|
||||
thread_rng().sample_iter(&Alphanumeric).take(len).map(char::from).collect()
|
||||
}
|
||||
// ======================
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
use std::str::FromStr;
|
||||
use std::{io, str::FromStr};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{
|
||||
util::serial::{Decodable, Encodable},
|
||||
Result,
|
||||
};
|
||||
use crate::serial::{Decodable, Encodable};
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Hash, Clone, Serialize, Deserialize)]
|
||||
pub enum NetworkName {
|
||||
@@ -15,8 +12,8 @@ pub enum NetworkName {
|
||||
Ethereum,
|
||||
}
|
||||
|
||||
impl std::fmt::Display for NetworkName {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
impl core::fmt::Display for NetworkName {
|
||||
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
||||
match self {
|
||||
Self::DarkFi => {
|
||||
write!(f, "DarkFi")
|
||||
@@ -37,7 +34,7 @@ impl std::fmt::Display for NetworkName {
|
||||
impl FromStr for NetworkName {
|
||||
type Err = crate::Error;
|
||||
|
||||
fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
|
||||
fn from_str(s: &str) -> core::result::Result<Self, Self::Err> {
|
||||
match s.to_lowercase().as_str() {
|
||||
"drk" | "darkfi" => Ok(NetworkName::DarkFi),
|
||||
"sol" | "solana" => Ok(NetworkName::Solana),
|
||||
@@ -49,7 +46,7 @@ impl FromStr for NetworkName {
|
||||
}
|
||||
|
||||
impl Encodable for NetworkName {
|
||||
fn encode<S: std::io::Write>(&self, s: S) -> Result<usize> {
|
||||
fn encode<S: io::Write>(&self, s: S) -> core::result::Result<usize, io::Error> {
|
||||
let name = self.to_string();
|
||||
let len = name.encode(s)?;
|
||||
Ok(len)
|
||||
@@ -57,9 +54,11 @@ impl Encodable for NetworkName {
|
||||
}
|
||||
|
||||
impl Decodable for NetworkName {
|
||||
fn decode<D: std::io::Read>(mut d: D) -> Result<Self> {
|
||||
fn decode<D: io::Read>(mut d: D) -> core::result::Result<Self, io::Error> {
|
||||
let name: String = Decodable::decode(&mut d)?;
|
||||
let name = NetworkName::from_str(&name)?;
|
||||
Ok(name)
|
||||
match NetworkName::from_str(&name) {
|
||||
Ok(v) => Ok(v),
|
||||
Err(e) => Err(io::Error::new(io::ErrorKind::Other, e)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ use url::Url;
|
||||
|
||||
use crate::{
|
||||
rpc::{client::RpcClient, jsonrpc::JsonRequest},
|
||||
util::serial::{SerialDecodable, SerialEncodable},
|
||||
serial::{SerialDecodable, SerialEncodable},
|
||||
Error, Result,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user