Quellcode durchsuchen

Update project dependencies.

parazyd vor 3 Jahren
Ursprung
Commit
b4cdbea08c
61 geänderte Dateien mit 619 neuen und 4156 gelöschten Zeilen
  1. 261 146
      Cargo.lock
  2. 24 24
      Cargo.toml
  3. 19 19
      bin/cashierd/Cargo.toml
  4. 7 7
      bin/darkfid/Cargo.toml
  5. 5 5
      bin/darkwiki/darkwiki-cli/Cargo.toml
  6. 10 10
      bin/darkwiki/darkwikid/Cargo.toml
  7. 6 6
      bin/dnetview/Cargo.toml
  8. 7 7
      bin/drk/Cargo.toml
  9. 2 2
      bin/drk/src/wallet_txs_history.rs
  10. 7 7
      bin/faucetd/Cargo.toml
  11. 3 3
      bin/fud/fu/Cargo.toml
  12. 6 6
      bin/fud/fud/Cargo.toml
  13. 4 4
      bin/genev/genev-cli/Cargo.toml
  14. 5 5
      bin/genev/genevd/Cargo.toml
  15. 12 12
      bin/ircd/Cargo.toml
  16. 12 12
      bin/ircd2/Cargo.toml
  17. 1 0
      bin/ircd2/src/irc/server.rs
  18. 3 8
      bin/ircd2/src/irc/server/nickserv.rs
  19. 7 7
      bin/lilith/Cargo.toml
  20. 5 5
      bin/tau/tau-cli/Cargo.toml
  21. 11 11
      bin/tau/taud/Cargo.toml
  22. 3 3
      bin/vanityaddr/Cargo.toml
  23. 1 1
      bin/zkas/Cargo.toml
  24. 1 1
      bin/zktool/Cargo.toml
  25. 11 11
      example/dao/Cargo.toml
  26. 1 0
      example/dao2/.gitignore
  27. 0 3666
      example/dao2/Cargo.lock
  28. 11 11
      example/dao2/Cargo.toml
  29. 6 6
      example/dchat/Cargo.toml
  30. 7 7
      example/p2pdebug/Cargo.toml
  31. 2 2
      script/research/arti-exp/Cargo.toml
  32. 1 1
      script/research/blockchain-explorer/Cargo.toml
  33. 9 9
      script/research/dhtd/Cargo.toml
  34. 1 1
      script/research/last_man_standing/Cargo.toml
  35. 11 11
      script/research/raft-diag/Cargo.toml
  36. 1 1
      script/research/rln/Cargo.toml
  37. 1 1
      script/research/sss/Cargo.toml
  38. 1 1
      script/research/tfhe/Cargo.toml
  39. 3 3
      script/research/x3dh/Cargo.toml
  40. 3 4
      script/research/zk/ecip-bench/Cargo.toml
  41. 0 1
      script/research/zk/ecip-bench/src/main.rs
  42. 1 1
      src/blockchain/mod.rs
  43. 4 0
      src/blockchain/tx_store.rs
  44. 2 2
      src/consensus/validator.rs
  45. 3 3
      src/contract/dao/Cargo.toml
  46. 4 4
      src/contract/money/Cargo.toml
  47. 3 3
      src/net/transport/upgrade_tls.rs
  48. 7 8
      src/sdk/Cargo.toml
  49. 9 9
      src/sdk/src/crypto/note.rs
  50. 41 18
      src/sdk/src/crypto/smt.rs
  51. 5 2
      src/sdk/src/crypto/util.rs
  52. 3 3
      src/serial/Cargo.toml
  53. 3 3
      src/serial/derive-internal/Cargo.toml
  54. 3 3
      src/serial/derive/Cargo.toml
  55. 2 10
      src/util/parse.rs
  56. 2 3
      src/zk/gadget/arithmetic.rs
  57. 19 22
      src/zk/gadget/cond_select.rs
  58. 7 7
      src/zk/gadget/is_zero.rs
  59. 3 3
      src/zk/gadget/less_than.rs
  60. 5 3
      src/zk/gadget/small_range_check.rs
  61. 2 2
      src/zkas/lexer.rs

Datei-Diff unterdrückt, da er zu groß ist
+ 261 - 146
Cargo.lock


+ 24 - 24
Cargo.toml

@@ -54,21 +54,21 @@ members = [
 
 [dependencies]
 # Hard dependencies
-libc = "0.2.139"
+libc = "0.2.141"
 log = "0.4.17"
-thiserror = "1.0.38"
+thiserror = "1.0.40"
 
 # async-runtime
 async-std = {version = "1.12.0", features = ["attributes"], optional = true}
-async-trait = {version = "0.1.64", optional = true}
-futures = {version = "0.3.26", optional = true}
+async-trait = {version = "0.1.68", optional = true}
+futures = {version = "0.3.28", optional = true}
 smol = {version = "1.3.0", optional = true}
 
 # Networking
-futures-rustls = {version = "0.22.2", features = ["dangerous_configuration"], optional = true}
+futures-rustls = {version = "0.24.0", features = ["dangerous_configuration"], optional = true}
 iprange = {version = "0.6.7", optional = true}
-ipnet = {version = "2.7.1", optional = true}
-socket2 = {version = "0.4.7", optional = true}
+ipnet = {version = "2.7.2", optional = true}
+socket2 = {version = "0.5.2", optional = true, features = ["all"]}
 
 # TLS cert utilities
 ed25519-compact = {version = "2.0.4", features = ["pem"], optional = true}
@@ -78,21 +78,21 @@ rustls-pemfile = {version = "1.0.2", optional = true}
 # Encoding
 bs58 = {version = "0.4.0", optional = true}
 hex = {version = "0.4.3", optional = true}
-serde_json = {version = "1.0.91", optional = true}
-serde = {version = "1.0.152", features = ["derive"], optional = true}
+serde_json = {version = "1.0.96", optional = true}
+serde = {version = "1.0.160", features = ["derive"], optional = true}
 structopt = {version= "0.3.26", optional = true}
 structopt-toml = {version= "0.5.1", optional = true}
-toml = {version = "0.7.1", optional = true}
+toml = {version = "0.7.3", optional = true}
 # Big float high precision arithmetics
-dashu = { version = "0.3.0", optional=true }
+dashu = { version = "0.3.1", optional=true }
 
 # Utilities
 # TODO: check chrono usage and impl our own
-chrono = {version = "0.4.23", optional = true}
+chrono = {version = "0.4.24", optional = true}
 darkfi-serial = {path = "src/serial", optional = true}
 darkfi-derive = {path = "src/serial/derive", optional = true}
 darkfi-derive-internal = {path = "src/serial/derive-internal", optional = true}
-indexmap = {version = "1.9.2", optional = true}
+indexmap = {version = "1.9.3", optional = true}
 itertools = {version = "0.10.5", optional = true}
 lazy_static = {version = "1.4.0", optional = true}
 # TODO: Test without serde
@@ -101,11 +101,11 @@ url = {version = "2.3.1", features = ["serde"], optional = true}
 # Misc
 # TODO: Implement something simple and kill these deps
 indicatif = {version = "0.17.3", optional = true}
-simplelog = {version = "0.12.0", optional = true}
+simplelog = {version = "0.12.1", optional = true}
 ripemd = {version = "0.1.3", optional = true}
 
 # Websockets
-async-tungstenite = {version = "0.19.0", optional = true}
+async-tungstenite = {version = "0.21.0", optional = true}
 
 # socks5
 fast-socks5 = {version = "0.4.3", optional = true}
@@ -114,29 +114,29 @@ fast-socks5 = {version = "0.4.3", optional = true}
 rand = {version = "0.8.5", optional = true}
 blake3 = {version = "1.3.3", optional = true}
 crypto_api_chachapoly = {version = "0.5.0", optional = true}
-halo2_proofs = {version = "0.2.0", optional = true}
-halo2_gadgets = {version = "0.2.0", optional = true}
+halo2_proofs = {version = "0.3.0", optional = true}
+halo2_gadgets = {version = "0.3.0", optional = true}
 
 # Smart contract runtime
 darkfi-sdk = {path = "src/sdk", optional = true}
-wasmer = {version = "3.1.1", optional = true}
-wasmer-compiler-singlepass = {version = "3.1.1", optional = true}
-wasmer-middlewares = {version = "3.1.1", optional = true}
+wasmer = {version = "3.2.0-beta.2", optional = true}
+wasmer-compiler-singlepass = {version = "3.2.0-beta.2", optional = true}
+wasmer-middlewares = {version = "3.2.0-beta.2", optional = true}
 
 # Wallet management
 libsqlite3-sys = {version = "0.24.1", features = ["bundled-sqlcipher"],  optional = true }
-sqlx = {version = "0.6.2", features = ["runtime-async-std-rustls", "sqlite"], optional = true}
+sqlx = {version = "0.6.3", features = ["runtime-async-std-rustls", "sqlite"], optional = true}
 
 # Blockchain store
 sled = {version = "0.34.7", optional = true}
 sled-overlay = {version = "0.0.3", optional = true}
 
 [dev-dependencies]
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 halo2_proofs = {version = "0.2.0", features = ["dev-graph", "gadget-traces", "sanity-checks"]}
 halo2_gadgets = {version = "0.2.0", features = ["dev-graph", "test-dependencies"]}
 plotters = "0.3.4"
-easy-parallel = "3.2.0"
+easy-parallel = "3.3.0"
 
 # -----BEGIN LIBRARY FEATURES-----
 [features]
@@ -326,4 +326,4 @@ path = "example/zk-inclusion-proof.rs"
 required-features = ["zk"]
 
 [patch.crates-io]
-halo2_proofs = {git="https://github.com/parazyd/halo2", branch="vk-ser"}
+halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v3"}

+ 19 - 19
bin/cashierd/Cargo.toml

@@ -15,49 +15,49 @@ features = ["wallet", "node", "rpc"]
 [dependencies]
 # Async
 smol = "1.3.0"
-futures = "0.3.26"
+futures = "0.3.28"
 async-std = "1.12.0"
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 async-channel = "1.8.0"
-async-executor = "1.5.0"
-easy-parallel = "3.2.0"
+async-executor = "1.5.1"
+easy-parallel = "3.3.0"
 
 # Crypto
 rand = "0.8.5"
 
 # Misc
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 log = "0.4.17"
 num_cpus = "1.15.0"
-simplelog = "0.12.0"
-thiserror = "1.0.38"
+simplelog = "0.12.1"
+thiserror = "1.0.40"
 url = "2.3.1"
 
 # Encoding and parsing
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.91"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
 
 # Bitcoin bridge dependencies
-bdk = {version = "0.26.0", optional = true}
-anyhow = {version = "1.0.68", optional = true}
-bitcoin = {version = "0.29.1", optional = true}
-secp256k1 = {version = "0.26.0", default-features = false, features = ["rand-std"], optional = true}
+bdk = {version = "0.28.0", optional = true}
+anyhow = {version = "1.0.70", optional = true}
+bitcoin = {version = "0.30.0", optional = true}
+secp256k1 = {version = "0.27.0", default-features = false, features = ["rand-std"], optional = true}
 
 # Ethereum bridge dependencies
 hex = {version = "0.4.3", optional = true}
-hash-db = {version = "0.15.2", optional = true}
+hash-db = {version = "0.16.0", optional = true}
 lazy_static = {version = "1.4.0", optional = true}
-keccak-hasher = {version = "0.15.3", optional = true}
+keccak-hasher = {version = "0.16.0", optional = true}
 num-bigint = {version = "0.4.3", features = ["rand", "serde"], optional = true}
 
 # Solana bridge dependencies
 native-tls = {version = "0.2.11", optional = true}
-async-native-tls = {version = "0.4.0", optional = true}
-solana-client = {version = "1.14.13", optional = true}
+async-native-tls = {version = "0.5.0", optional = true}
+solana-client = {version = "1.14.17", optional = true}
 solana-sdk = {version = "1.14.13", optional = true}
-spl-associated-token-account = {version = "1.1.2", features = ["no-entrypoint"], optional = true}
+spl-associated-token-account = {version = "1.1.3", features = ["no-entrypoint"], optional = true}
 spl-token = {version = "3.5.0", features = ["no-entrypoint"], optional = true}
-tungstenite = {version = "0.18.0", optional = true}
+tungstenite = {version = "0.19.0", optional = true}
 
 [features]
 btc = [

+ 7 - 7
bin/darkfid/Cargo.toml

@@ -10,23 +10,23 @@ edition = "2021"
 
 [dependencies]
 async-std = "1.12.0"
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 blake3 = "1.3.3"
 bs58 = "0.4.0"
-ctrlc = { version = "3.2.4", features = ["termination"] }
+ctrlc = { version = "3.2.5", features = ["termination"] }
 darkfi = {path = "../../", features = ["blockchain", "wallet", "rpc", "net"]}
 darkfi-sdk = {path = "../../src/sdk"}
 darkfi-serial = {path = "../../src/serial"}
-easy-parallel = "3.2.0"
+easy-parallel = "3.3.0"
 log = "0.4.17"
-serde_json = "1.0.91"
-simplelog = "0.12.0"
+serde_json = "1.0.96"
+simplelog = "0.12.1"
 sled = "0.34.7"
 smol = "1.3.0"
-sqlx = {version = "0.6.2", features = ["runtime-async-std-rustls", "sqlite"]}
+sqlx = {version = "0.6.3", features = ["runtime-async-std-rustls", "sqlite"]}
 url = "2.3.1"
 
 # Argument parsing
-serde = {version = "1.0.152", features = ["derive"]}
+serde = {version = "1.0.160", features = ["derive"]}
 structopt = "0.3.26"
 structopt-toml = "0.5.1"

+ 5 - 5
bin/darkwiki/darkwiki-cli/Cargo.toml

@@ -14,17 +14,17 @@ darkfi = {path = "../../../", features = ["rpc"]}
 # Async
 smol = "1.3.0"
 async-std = {version = "1.12.0", features = ["attributes"]}
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 async-channel = "1.8.0"
-futures = "0.3.26"
+futures = "0.3.28"
 
 # Misc
 log = "0.4.17"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 rand = "0.8.5"
 url = "2.3.1"
 
 # Encoding and parsing
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.91"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
 structopt = "0.3.26"

+ 10 - 10
bin/darkwiki/darkwikid/Cargo.toml

@@ -10,25 +10,25 @@ edition = "2021"
 
 [dependencies]
 async-std = "1.12.0"
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 blake3 = "1.3.3"
 bs58 = "0.4.0"
 darkfi = {path = "../../../", features = ["raft", "rpc", "util"]}
 darkfi-serial = {path = "../../../src/serial"}
-dryoc = "0.4.3"
-easy-parallel = "3.2.0"
-futures = "0.3.26"
+dryoc = "0.5.0"
+easy-parallel = "3.3.0"
+futures = "0.3.28"
 lazy_static = "1.4.0"
 log = "0.4.17"
-serde = "1.0.152"
-serde_derive = "1.0.152"
-serde_json = "1.0.91"
+serde = "1.0.160"
+serde_derive = "1.0.160"
+serde_json = "1.0.96"
 signal-hook-async-std = "0.2.2"
-signal-hook = "0.3.14"
-simplelog = "0.12.0"
+signal-hook = "0.3.15"
+simplelog = "0.12.1"
 structopt = "0.3.26"
 structopt-toml = "0.5.1"
 smol = "1.3.0"
-toml = "0.7.1"
+toml = "0.7.3"
 unicode-segmentation = "1.10.1"
 url = "2.3.1"

+ 6 - 6
bin/dnetview/Cargo.toml

@@ -20,19 +20,19 @@ tui = {version = "0.19.0", features = ["termion"]}
 # Async
 smol = "1.3.0"
 async-std = {version = "1.12.0", features = ["attributes"]}
-easy-parallel = "3.2.0"
+easy-parallel = "3.3.0"
 async-channel = "1.8.0"
 
 # Misc
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 rand = "0.8.5"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 log = "0.4.17"
 num_cpus = "1.15.0"
 url = "2.3.1"
-thiserror = "1.0.38"
+thiserror = "1.0.40"
 
 # Encoding and parsing
-serde_json = "1.0.91"
-serde = {version = "1.0.152", features = ["derive"]}
+serde_json = "1.0.96"
+serde = {version = "1.0.160", features = ["derive"]}
 hex = "0.4.3"

+ 7 - 7
bin/drk/Cargo.toml

@@ -12,12 +12,12 @@ edition = "2021"
 pkg-config = "0.3.26"
 
 [dependencies]
-anyhow = "1.0.68"
+anyhow = "1.0.70"
 async-std = {version = "1.12.0", features = ["attributes"]}
 blake3 = "1.3.3"
 bs58 = "0.4.0"
-clap = {version = "4.1.4", features = ["derive"]}
-clap_complete = "4.1.2"
+clap = {version = "4.2.2", features = ["derive"]}
+clap_complete = "4.2.0"
 darkfi = {path = "../../", features = ["blockchain", "rpc", "util", "wallet"]}
 darkfi-sdk = {path = "../../src/sdk"}
 darkfi-serial = {path = "../../src/serial", features = ["derive", "crypto"]}
@@ -25,11 +25,11 @@ darkfi-money-contract = {path = "../../src/contract/money", features = ["no-entr
 darkfi-dao-contract = {path = "../../src/contract/dao", features = ["no-entrypoint", "client"]}
 prettytable-rs = "0.10.0"
 rand = "0.8.5"
-serde_json = "1.0.91"
+serde_json = "1.0.96"
 smol = "1.3.0"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 signal-hook-async-std = "0.2.2"
-signal-hook = "0.3.14"
-sqlx = {version = "0.6.2", features = ["runtime-async-std-rustls", "sqlite"]}
+signal-hook = "0.3.15"
+sqlx = {version = "0.6.3", features = ["runtime-async-std-rustls", "sqlite"]}
 url = "2.3.1"
 play = {version = "0.5.3", optional = true}

+ 2 - 2
bin/drk/src/wallet_txs_history.rs

@@ -156,8 +156,8 @@ impl Drk {
             return Ok(())
         }
 
-        let txs_hashes: Vec<String> = txs.into_iter().map(|tx| tx.hash().to_string()).collect();
-        let txs_hashes_string = format!("{:?}", txs_hashes).replace("[", "(").replace("]", ")");
+        let txs_hashes: Vec<String> = txs.iter().map(|tx| tx.hash().to_string()).collect();
+        let txs_hashes_string = format!("{:?}", txs_hashes).replace('[', "(").replace(']', ")");
         let query = format!(
             "UPDATE {} SET {} = ?1 WHERE {} IN {};",
             WALLET_TXS_HISTORY_TABLE,

+ 7 - 7
bin/faucetd/Cargo.toml

@@ -10,26 +10,26 @@ edition = "2021"
 
 [dependencies]
 async-std = "1.12.0"
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 blake3 = "1.3.3"
-chrono = "0.4.23"
+chrono = "0.4.24"
 darkfi = {path = "../../", features = ["blockchain", "wallet", "rpc", "net", "zkas"]}
 darkfi-serial = {path = "../../src/serial"}
 darkfi-sdk = {path = "../../src/sdk"}
 darkfi-money-contract = {path = "../../src/contract/money", features = ["no-entrypoint", "client"]}
-easy-parallel = "3.2.0"
+easy-parallel = "3.3.0"
 log = "0.4.17"
 rand = "0.8.5"
-serde_json = "1.0.91"
+serde_json = "1.0.96"
 signal-hook = "0.3.15"
 signal-hook-async-std = "0.2.2"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 sled = "0.34.7"
 smol = "1.3.0"
-sqlx = {version = "0.6.2", features = ["runtime-async-std-rustls", "sqlite"]}
+sqlx = {version = "0.6.3", features = ["runtime-async-std-rustls", "sqlite"]}
 url = "2.3.1"
 
 # Argument parsing
-serde = {version = "1.0.152", features = ["derive"]}
+serde = {version = "1.0.160", features = ["derive"]}
 structopt = "0.3.26"
 structopt-toml = "0.5.1"

+ 3 - 3
bin/fud/fu/Cargo.toml

@@ -15,8 +15,8 @@ darkfi = {path = "../../../", features = ["util", "rpc"]}
 async-std = {version = "1.12.0", features = ["attributes"]}
 
 # Misc
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 log = "0.4.17"
-serde_json = "1.0.91"
-simplelog = "0.12.0"
+serde_json = "1.0.96"
+simplelog = "0.12.1"
 url = "2.3.1"

+ 6 - 6
bin/fud/fud/Cargo.toml

@@ -14,19 +14,19 @@ darkfi-serial = {path = "../../../src/serial"}
 
 # Async
 async-std = "1.12.0"
-async-trait = "0.1.64"
-ctrlc = { version = "3.2.4", features = ["termination"] }
-easy-parallel = "3.2.0"
+async-trait = "0.1.68"
+ctrlc = { version = "3.2.5", features = ["termination"] }
+easy-parallel = "3.3.0"
 smol = "1.3.0"
 
 # Misc
 blake3 = "1.3.3"
 log = "0.4.17"
-serde_json = "1.0.91"
-simplelog = "0.12.0"
+serde_json = "1.0.96"
+simplelog = "0.12.1"
 url = "2.3.1"
 
 # Argument parsing
-serde = {version = "1.0.152", features = ["derive"]}
+serde = {version = "1.0.160", features = ["derive"]}
 structopt = "0.3.26"
 structopt-toml = "0.5.1"

+ 4 - 4
bin/genev/genev-cli/Cargo.toml

@@ -13,10 +13,10 @@ darkfi = {path = "../../../", features = ["event-graph", "rpc", "bs58"]}
 darkfi-serial = {path = "../../../src/serial"}
 
 async-std = {version = "1.12.0", features = ["attributes"]}
-clap = {version = "4.1.6", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 log = "0.4.17"
-simplelog = "0.12.0"
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.93"
+simplelog = "0.12.1"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
 url = "2.3.1"
 

+ 5 - 5
bin/genev/genevd/Cargo.toml

@@ -13,16 +13,16 @@ darkfi = {path = "../../../", features = ["event-graph", "rpc", "bs58", "util"]}
 darkfi-serial = {path = "../../../src/serial"}
 
 async-std = {version = "1.12.0", features = ["attributes"]}
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 ctrlc = { version = "3.2.5", features = ["termination"] }
-easy-parallel = "3.2.0"
-simplelog = "0.12.0"
+easy-parallel = "3.3.0"
+simplelog = "0.12.1"
 smol = "1.3.0"
 log = "0.4.17"
 url = "2.3.1"
 
 # Argument parsing
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.93"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
 structopt = "0.3.26"
 structopt-toml = "0.5.1"

+ 12 - 12
bin/ircd/Cargo.toml

@@ -14,32 +14,32 @@ darkfi-serial = {path = "../../src/serial"}
 
 # Async
 smol = "1.3.0"
-futures = "0.3.26"
-futures-rustls = "0.22.2"
+futures = "0.3.28"
+futures-rustls = "0.24.0"
 rustls-pemfile = "1.0.2"
 async-std = "1.12.0"
-async-trait = "0.1.64"
-easy-parallel = "3.2.0"
-async-recursion = "1.0.2"
+async-trait = "0.1.68"
+easy-parallel = "3.3.0"
+async-recursion = "1.0.4"
 
 # Crypto
 crypto_box = "0.8.2"
 rand = "0.8.5"
 
 # Misc
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 log = "0.4.17"
-simplelog = "0.12.0"
-ctrlc = { version = "3.2.4", features = ["termination"] }
+simplelog = "0.12.1"
+ctrlc = { version = "3.2.5", features = ["termination"] }
 url = "2.3.1"
-chrono = "0.4.23"
+chrono = "0.4.24"
 ripemd = "0.1.3"
 
 # Encoding and parsing
-serde_json = "1.0.91"
-serde = {version = "1.0.152", features = ["derive"]}
+serde_json = "1.0.96"
+serde = {version = "1.0.160", features = ["derive"]}
 structopt = "0.3.26"
 structopt-toml = "0.5.1"
 bs58 = "0.4.0"
-toml = "0.7.1"
+toml = "0.7.3"
 hex = "0.4.3"

+ 12 - 12
bin/ircd2/Cargo.toml

@@ -14,12 +14,12 @@ darkfi-serial = {path = "../../src/serial"}
 
 # Async
 smol = "1.3.0"
-futures = "0.3.25"
-futures-rustls = "0.22.2"
-rustls-pemfile = "1.0.1"
+futures = "0.3.28"
+futures-rustls = "0.24.0"
+rustls-pemfile = "1.0.2"
 async-std = "1.12.0"
-async-trait = "0.1.60"
-easy-parallel = "3.2.0"
+async-trait = "0.1.68"
+easy-parallel = "3.3.0"
 
 # Crypto
 crypto_box = "0.8.2"
@@ -29,19 +29,19 @@ rand = "0.8.5"
 sled = "0.34.7"
 
 # Misc
-clap = {version = "4.0.32", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 log = "0.4.17"
-simplelog = "0.12.0"
-ctrlc = { version = "3.2.4", features = ["termination"] }
+simplelog = "0.12.1"
+ctrlc = { version = "3.2.5", features = ["termination"] }
 url = "2.3.1"
-chrono = "0.4.23"
+chrono = "0.4.24"
 ripemd = "0.1.3"
 
 # Encoding and parsing
-serde_json = "1.0.91"
-serde = {version = "1.0.152", features = ["derive"]}
+serde_json = "1.0.96"
+serde = {version = "1.0.160", features = ["derive"]}
 structopt = "0.3.26"
 structopt-toml = "0.5.1"
 bs58 = "0.4.0"
-toml = "0.5.10"
+toml = "0.7.3"
 hex = "0.4.3"

+ 1 - 0
bin/ircd2/src/irc/server.rs

@@ -156,6 +156,7 @@ impl IrcServer {
                     // message.
                     // TODO: This needs to be protected from adversaries doing
                     //       remote execution.
+                    #[allow(clippy::single_match)]
                     match msg.target.to_lowercase().as_str() {
                         NICK_NICKSERV => {
                             //self.nickserv.act(msg);

+ 3 - 8
bin/ircd2/src/irc/server/nickserv.rs

@@ -71,14 +71,9 @@ impl NickServ {
 
             "IDENTIFY" => self.identify(),
 
-            "HELP" => return Ok(Self::usage()),
-
-            c => {
-                return Err(vec![
-                    format!("Invalid command {}", c),
-                    "Type HELP to get help".to_string(),
-                ])
-            }
+            "HELP" => Ok(Self::usage()),
+
+            c => Err(vec![format!("Invalid command {}", c), "Type HELP to get help".to_string()]),
         }
     }
 

+ 7 - 7
bin/lilith/Cargo.toml

@@ -13,19 +13,19 @@ darkfi = {path = "../../", features = ["net", "rpc"]}
 
 # Async
 async-std = "1.12.0"
-async-trait = "0.1.64"
-ctrlc = { version = "3.2.4", features = ["termination"] }
-easy-parallel = "3.2.0"
+async-trait = "0.1.68"
+ctrlc = { version = "3.2.5", features = ["termination"] }
+easy-parallel = "3.3.0"
 smol = "1.3.0"
 
 # Misc
 log = "0.4.17"
-serde_json = "1.0.91"
-simplelog = "0.12.0"
+serde_json = "1.0.96"
+simplelog = "0.12.1"
 url = "2.3.1"
 
 # Argument parsing
-serde = {version = "1.0.152", features = ["derive"]}
+serde = {version = "1.0.160", features = ["derive"]}
 structopt = "0.3.26"
 structopt-toml = "0.5.1"
-toml = "0.7.1"
+toml = "0.7.3"

+ 5 - 5
bin/tau/tau-cli/Cargo.toml

@@ -10,15 +10,15 @@ repository = "https://github.com/darkrenaissance/darkfi"
 
 [dependencies]
 async-std = {version = "1.12.0", features = ["attributes"]}
-chrono = "0.4.23"
-clap = {version = "4.1.4", features = ["derive"]}
+chrono = "0.4.24"
+clap = {version = "4.2.2", features = ["derive"]}
 colored = "2.0.0"
 darkfi = { path = "../../../", features = ["rpc"]}
 log = "0.4.17"
 prettytable-rs = "0.10.0"
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.91"
-simplelog = "0.12.0"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
+simplelog = "0.12.1"
 term_grid = { git = "https://github.com/Dastan-glitch/rust-term-grid.git" }
 textwrap = "0.15.2"
 url = "2.3.1"

+ 11 - 11
bin/tau/taud/Cargo.toml

@@ -15,26 +15,26 @@ darkfi-serial = { path = "../../../src/serial" }
 # Async
 smol = "1.3.0"
 async-std = {version = "1.12.0", features = ["attributes"]}
-async-trait = "0.1.64"
-easy-parallel = "3.2.0"
-futures = "0.3.26"
+async-trait = "0.1.68"
+easy-parallel = "3.3.0"
+futures = "0.3.28"
 
 # Misc
-libc = "0.2.139"
+libc = "0.2.141"
 log = "0.4.17"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 rand = "0.8.5"
-chrono = "0.4.23"
-thiserror = "1.0.38"
-ctrlc = { version = "3.2.4", features = ["termination"] }
+chrono = "0.4.24"
+thiserror = "1.0.40"
+ctrlc = { version = "3.2.5", features = ["termination"] }
 url = "2.3.1"
 
 # Encoding and parsing
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.91"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
 structopt = "0.3.26"
 structopt-toml = "0.5.1"
 crypto_box = {version = "0.8.2", features = ["std"]}
 hex = "0.4.3"
 bs58 = "0.4.0"
-toml = "0.7.1"
+toml = "0.7.3"

+ 3 - 3
bin/vanityaddr/Cargo.toml

@@ -10,11 +10,11 @@ edition = "2021"
 
 [dependencies]
 bs58 = "0.4.0"
-clap = {version = "4.1.4", features = ["derive"]}
-ctrlc = "3.2.4"
+clap = {version = "4.2.2", features = ["derive"]}
+ctrlc = "3.2.5"
 darkfi = {path = "../../"}
 darkfi-sdk = {path = "../../src/sdk"}
 indicatif = "0.17.3"
 num_cpus = "1.15.0"
 rand = "0.8.5"
-rayon = "1.6.1"
+rayon = "1.7.0"

+ 1 - 1
bin/zkas/Cargo.toml

@@ -9,5 +9,5 @@ license = "AGPL-3.0-only"
 edition = "2021"
 
 [dependencies]
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 darkfi = {path = "../../", features = ["zkas"]}

+ 1 - 1
bin/zktool/Cargo.toml

@@ -9,7 +9,7 @@ license = "AGPL-3.0-only"
 edition = "2021"
 
 [dependencies]
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 darkfi = {path = "../../", features = ["zkas"]}
 darkfi-sdk = {path = "../../src/sdk"}
 

+ 11 - 11
example/dao/Cargo.toml

@@ -12,30 +12,30 @@ darkfi-sdk = {path = "../../src/sdk"}
 
 # Async
 smol = "1.3.0"
-futures = "0.3.26"
+futures = "0.3.28"
 async-std = {version = "1.12.0", features = ["attributes"]}
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 async-channel = "1.8.0"
-async-executor = "1.5.0"
-easy-parallel = "3.2.0"
+async-executor = "1.5.1"
+easy-parallel = "3.3.0"
 
 # Misc
 log = "0.4.17"
 num_cpus = "1.15.0"
-simplelog = "0.12.0"
-thiserror = "1.0.38"
+simplelog = "0.12.1"
+thiserror = "1.0.40"
 
 # Crypto
-incrementalmerkletree = "0.3.0"
-pasta_curves = "0.4.1"
-halo2_gadgets = "0.2.0"
-halo2_proofs = "0.2.0"
+incrementalmerkletree = "0.3.1"
+pasta_curves = "0.5.1"
+halo2_gadgets = "0.3.0"
+halo2_proofs = "0.3.0"
 rand = "0.8.5"
 chacha20poly1305 = "0.10.1"
 group = "0.13.0"
 
 # Encoding and parsing
-serde_json = "1.0.91"
+serde_json = "1.0.96"
 bs58 = "0.4.0"
 fxhash = "0.2.1"
 

+ 1 - 0
example/dao2/.gitignore

@@ -2,3 +2,4 @@
 *.wasm
 *.zk.bin
 target/
+Cargo.lock

+ 0 - 3666
example/dao2/Cargo.lock

@@ -1,3666 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aead"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8"
-dependencies = [
- "crypto-common",
- "generic-array",
-]
-
-[[package]]
-name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
-
-[[package]]
-name = "arrayref"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-
-[[package]]
-name = "arrayvec"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
-
-[[package]]
-name = "async-attributes"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
-dependencies = [
- "quote",
- "syn",
-]
-
-[[package]]
-name = "async-channel"
-version = "1.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "once_cell",
- "slab",
-]
-
-[[package]]
-name = "async-fs"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
-dependencies = [
- "async-lock",
- "autocfg",
- "blocking",
- "futures-lite",
-]
-
-[[package]]
-name = "async-global-executor"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-io",
- "async-lock",
- "blocking",
- "futures-lite",
- "once_cell",
-]
-
-[[package]]
-name = "async-io"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7"
-dependencies = [
- "async-lock",
- "autocfg",
- "concurrent-queue",
- "futures-lite",
- "libc",
- "log",
- "parking",
- "polling",
- "slab",
- "socket2",
- "waker-fn",
- "winapi",
-]
-
-[[package]]
-name = "async-lock"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685"
-dependencies = [
- "event-listener",
- "futures-lite",
-]
-
-[[package]]
-name = "async-native-tls"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d57d4cec3c647232e1094dc013546c0b33ce785d8aeb251e1f20dfaf8a9a13fe"
-dependencies = [
- "futures-util",
- "native-tls",
- "thiserror",
- "url",
-]
-
-[[package]]
-name = "async-net"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f"
-dependencies = [
- "async-io",
- "autocfg",
- "blocking",
- "futures-lite",
-]
-
-[[package]]
-name = "async-process"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c"
-dependencies = [
- "async-io",
- "autocfg",
- "blocking",
- "cfg-if",
- "event-listener",
- "futures-lite",
- "libc",
- "once_cell",
- "signal-hook",
- "winapi",
-]
-
-[[package]]
-name = "async-std"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
-dependencies = [
- "async-attributes",
- "async-channel",
- "async-global-executor",
- "async-io",
- "async-lock",
- "async-process",
- "crossbeam-utils",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-lite",
- "gloo-timers",
- "kv-log-macro",
- "log",
- "memchr",
- "once_cell",
- "pin-project-lite",
- "pin-utils",
- "slab",
- "wasm-bindgen-futures",
-]
-
-[[package]]
-name = "async-task"
-version = "4.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
-
-[[package]]
-name = "async-trait"
-version = "0.1.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "atoi"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "atomic-waker"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "backtrace"
-version = "0.3.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitvec"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
-dependencies = [
- "funty",
- "radium",
- "tap",
- "wyz",
-]
-
-[[package]]
-name = "blake2b_simd"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127"
-dependencies = [
- "arrayref",
- "arrayvec",
- "constant_time_eq",
-]
-
-[[package]]
-name = "blake3"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f"
-dependencies = [
- "arrayref",
- "arrayvec",
- "cc",
- "cfg-if",
- "constant_time_eq",
- "digest",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "blocking"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
-dependencies = [
- "async-channel",
- "async-task",
- "atomic-waker",
- "fastrand",
- "futures-lite",
- "once_cell",
-]
-
-[[package]]
-name = "bs58"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
-
-[[package]]
-name = "bumpalo"
-version = "3.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
-
-[[package]]
-name = "bytecheck"
-version = "0.6.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f"
-dependencies = [
- "bytecheck_derive",
- "ptr_meta",
-]
-
-[[package]]
-name = "bytecheck_derive"
-version = "0.6.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bytecount"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytes"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
-
-[[package]]
-name = "cache-padded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-
-[[package]]
-name = "camino"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo-platform"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.74"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chacha20"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08"
-dependencies = [
- "cfg-if",
- "cipher",
- "cpufeatures",
-]
-
-[[package]]
-name = "chacha20poly1305"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
-dependencies = [
- "aead",
- "chacha20",
- "cipher",
- "poly1305",
- "zeroize",
-]
-
-[[package]]
-name = "chrono"
-version = "0.4.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
-dependencies = [
- "iana-time-zone",
- "js-sys",
- "num-integer",
- "num-traits",
- "time 0.1.44",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "cipher"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
-dependencies = [
- "crypto-common",
- "inout",
- "zeroize",
-]
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
-
-[[package]]
-name = "concurrent-queue"
-version = "1.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
-dependencies = [
- "cache-padded",
-]
-
-[[package]]
-name = "console"
-version = "0.15.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c"
-dependencies = [
- "encode_unicode",
- "lazy_static",
- "libc",
- "terminal_size",
- "unicode-width",
- "winapi",
-]
-
-[[package]]
-name = "constant_time_eq"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "corosensei"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd"
-dependencies = [
- "autocfg",
- "cfg-if",
- "libc",
- "scopeguard",
- "windows-sys 0.33.0",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "cranelift-bforest"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "529ffacce2249ac60edba2941672dfedf3d96558b415d0d8083cd007456e0f55"
-dependencies = [
- "cranelift-entity",
-]
-
-[[package]]
-name = "cranelift-codegen"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427d105f617efc8cb55f8d036a7fded2e227892d8780b4985e5551f8d27c4a92"
-dependencies = [
- "cranelift-bforest",
- "cranelift-codegen-meta",
- "cranelift-codegen-shared",
- "cranelift-entity",
- "cranelift-isle",
- "gimli",
- "log",
- "regalloc2",
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-codegen-meta"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "551674bed85b838d45358e3eab4f0ffaa6790c70dc08184204b9a54b41cdb7d1"
-dependencies = [
- "cranelift-codegen-shared",
-]
-
-[[package]]
-name = "cranelift-codegen-shared"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b3a63ae57498c3eb495360944a33571754241e15e47e3bcae6082f40fec5866"
-
-[[package]]
-name = "cranelift-entity"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11aa8aa624c72cc1c94ea3d0739fa61248260b5b14d3646f51593a88d67f3e6e"
-
-[[package]]
-name = "cranelift-frontend"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "544ee8f4d1c9559c9aa6d46e7aaeac4a13856d620561094f35527356c7d21bd0"
-dependencies = [
- "cranelift-codegen",
- "log",
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-isle"
-version = "0.86.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed16b14363d929b8c37e3c557d0a7396791b383ecc302141643c054343170aad"
-
-[[package]]
-name = "crc"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3"
-dependencies = [
- "crc-catalog",
-]
-
-[[package]]
-name = "crc-catalog"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d0165d2900ae6778e36e80bbc4da3b5eefccee9ba939761f9c2882a5d9af3ff"
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-queue"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crunchy"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "rand_core",
- "typenum",
-]
-
-[[package]]
-name = "ct-codecs"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3b7eb4404b8195a9abb6356f4ac07d8ba267045c8d6d220ac4dc992e6cc75df"
-
-[[package]]
-name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
-dependencies = [
- "quote",
- "syn",
-]
-
-[[package]]
-name = "cxx"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a"
-dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
-]
-
-[[package]]
-name = "cxx-build"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
- "quote",
- "scratch",
- "syn",
-]
-
-[[package]]
-name = "cxxbridge-flags"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a"
-
-[[package]]
-name = "cxxbridge-macro"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "dao"
-version = "0.3.0"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-std",
- "async-trait",
- "bs58",
- "chacha20poly1305",
- "dao-contract",
- "darkfi",
- "darkfi-sdk",
- "darkfi-serial",
- "easy-parallel",
- "env_logger",
- "futures",
- "fxhash",
- "group",
- "halo2_gadgets",
- "halo2_proofs",
- "incrementalmerkletree",
- "lazy_static",
- "log",
- "money-contract",
- "num_cpus",
- "pasta_curves",
- "rand",
- "serde_json",
- "simplelog",
- "sled",
- "smol",
- "thiserror",
- "url",
-]
-
-[[package]]
-name = "dao-contract"
-version = "0.3.0"
-dependencies = [
- "darkfi-sdk",
- "darkfi-serial",
- "getrandom",
-]
-
-[[package]]
-name = "darkfi"
-version = "0.3.0"
-dependencies = [
- "async-std",
- "async-trait",
- "blake2b_simd",
- "blake3",
- "bs58",
- "chacha20poly1305",
- "chrono",
- "darkfi-sdk",
- "darkfi-serial",
- "dashu",
- "ed25519-compact",
- "fast-socks5",
- "futures",
- "futures-rustls",
- "fxhash",
- "halo2_gadgets",
- "halo2_proofs",
- "hex",
- "incrementalmerkletree",
- "indexmap",
- "indicatif",
- "ipnet",
- "iprange",
- "itertools",
- "lazy-init",
- "lazy_static",
- "libc",
- "libsqlite3-sys",
- "log",
- "num-bigint",
- "num-traits",
- "pasta_curves",
- "rand",
- "rcgen",
- "rustls-pemfile",
- "serde",
- "serde_json",
- "sha2",
- "simplelog",
- "sled",
- "smol",
- "socket2",
- "sqlx",
- "structopt",
- "structopt-toml",
- "subtle",
- "termion",
- "thiserror",
- "toml",
- "url",
- "wasmer",
- "wasmer-compiler-singlepass",
- "wasmer-middlewares",
-]
-
-[[package]]
-name = "darkfi-derive"
-version = "0.3.0"
-dependencies = [
- "darkfi-derive-internal",
- "proc-macro-crate",
- "proc-macro2",
- "syn",
-]
-
-[[package]]
-name = "darkfi-derive-internal"
-version = "0.3.0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "darkfi-sdk"
-version = "0.3.0"
-dependencies = [
- "blake2b_simd",
- "blake3",
- "bs58",
- "darkfi-serial",
- "halo2_gadgets",
- "incrementalmerkletree",
- "lazy_static",
- "pasta_curves",
- "rand_core",
- "sha2",
- "subtle",
- "thiserror",
-]
-
-[[package]]
-name = "darkfi-serial"
-version = "0.3.0"
-dependencies = [
- "blake3",
- "darkfi-derive",
- "futures-lite",
- "fxhash",
- "incrementalmerkletree",
- "pasta_curves",
- "url",
-]
-
-[[package]]
-name = "darling"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e"
-dependencies = [
- "darling_core",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "dashu"
-version = "0.2.0"
-source = "git+https://github.com/ertosns/dashu#dffdb0b2a499d96bb08bde7a2bcf6a3ebf99b602"
-dependencies = [
- "dashu-base",
- "dashu-float",
- "dashu-int",
- "dashu-macros",
-]
-
-[[package]]
-name = "dashu-base"
-version = "0.2.0"
-source = "git+https://github.com/ertosns/dashu#dffdb0b2a499d96bb08bde7a2bcf6a3ebf99b602"
-
-[[package]]
-name = "dashu-float"
-version = "0.2.0"
-source = "git+https://github.com/ertosns/dashu#dffdb0b2a499d96bb08bde7a2bcf6a3ebf99b602"
-dependencies = [
- "dashu-base",
- "dashu-int",
- "static_assertions",
-]
-
-[[package]]
-name = "dashu-int"
-version = "0.2.0"
-source = "git+https://github.com/ertosns/dashu#dffdb0b2a499d96bb08bde7a2bcf6a3ebf99b602"
-dependencies = [
- "cfg-if",
- "dashu-base",
- "num-traits",
- "rand",
- "static_assertions",
-]
-
-[[package]]
-name = "dashu-macros"
-version = "0.2.0"
-source = "git+https://github.com/ertosns/dashu#dffdb0b2a499d96bb08bde7a2bcf6a3ebf99b602"
-dependencies = [
- "dashu-base",
- "dashu-float",
- "dashu-int",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
-dependencies = [
- "block-buffer",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "dotenvy"
-version = "0.15.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d8c417d7a8cb362e0c37e5d815f5eb7c37f79ff93707329d5a194e42e54ca0"
-
-[[package]]
-name = "dynasm"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b"
-dependencies = [
- "bitflags",
- "byteorder",
- "lazy_static",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "dynasmrt"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9"
-dependencies = [
- "byteorder",
- "dynasm",
- "memmap2",
-]
-
-[[package]]
-name = "easy-parallel"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946"
-
-[[package]]
-name = "ed25519-compact"
-version = "1.0.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e18997d4604542d0736fae2c5ad6de987f0a50530cbcc14a7ce5a685328a252d"
-dependencies = [
- "ct-codecs",
- "getrandom",
-]
-
-[[package]]
-name = "either"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
-
-[[package]]
-name = "encode_unicode"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
-
-[[package]]
-name = "enum-iterator"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6"
-dependencies = [
- "enum-iterator-derive",
-]
-
-[[package]]
-name = "enum-iterator-derive"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "enumset"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753"
-dependencies = [
- "enumset_derive",
-]
-
-[[package]]
-name = "enumset_derive"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "error-chain"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "event-listener"
-version = "2.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "fallible-iterator"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
-
-[[package]]
-name = "fast-socks5"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba337793c1ee49731350a8d971d791651ed51d6e814ab4ddabd79c12b5366140"
-dependencies = [
- "anyhow",
- "async-std",
- "futures",
- "log",
- "thiserror",
-]
-
-[[package]]
-name = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "ff"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
-dependencies = [
- "bitvec",
- "rand_core",
- "subtle",
-]
-
-[[package]]
-name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "pin-project",
- "spin 0.9.4",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "fs2"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "funty"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
-
-[[package]]
-name = "futures"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-intrusive"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5"
-dependencies = [
- "futures-core",
- "lock_api",
- "parking_lot",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
-
-[[package]]
-name = "futures-lite"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
-dependencies = [
- "fastrand",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite",
- "waker-fn",
-]
-
-[[package]]
-name = "futures-macro"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "futures-rustls"
-version = "0.22.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd"
-dependencies = [
- "futures-io",
- "rustls",
- "webpki",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
-
-[[package]]
-name = "futures-task"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
-
-[[package]]
-name = "futures-util"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "gimli"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
-dependencies = [
- "fallible-iterator",
- "indexmap",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "gloo-timers"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9"
-dependencies = [
- "futures-channel",
- "futures-core",
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "group"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
-dependencies = [
- "ff",
- "rand_core",
- "subtle",
-]
-
-[[package]]
-name = "halo2_gadgets"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85e10bf9924da1754e443641c9e7f9f00483749f8fb837fde696ef6ed6e2f079"
-dependencies = [
- "arrayvec",
- "bitvec",
- "ff",
- "group",
- "halo2_proofs",
- "lazy_static",
- "pasta_curves",
- "rand",
- "subtle",
- "uint",
-]
-
-[[package]]
-name = "halo2_proofs"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff771b9a2445cd2545c9ef26d863c290fbb44ae440c825a20eb7156f67a949a"
-dependencies = [
- "blake2b_simd",
- "ff",
- "group",
- "pasta_curves",
- "rand_core",
- "rayon",
- "tracing",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "hashlink"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa"
-dependencies = [
- "hashbrown",
-]
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.53"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
-dependencies = [
- "cxx",
- "cxx-build",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "incrementalmerkletree"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "068c5bdd31006d55536655cf1eb0d22d84d28de7c725b419480fd5d005c83216"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "indicatif"
-version = "0.17.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfddc9561e8baf264e0e45e197fd7696320026eb10a8180340debc27b18f535b"
-dependencies = [
- "console",
- "number_prefix",
- "unicode-width",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745"
-
-[[package]]
-name = "iprange"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37209be0ad225457e63814401415e748e2453a5297f9b637338f5fb8afa4ec00"
-dependencies = [
- "ipnet",
-]
-
-[[package]]
-name = "itertools"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
-
-[[package]]
-name = "js-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "kv-log-macro"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "lazy-init"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f40963626ac12dcaf92afc15e4c3db624858c92fd9f8ba2125eaada3ac2706f"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "leb128"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
-
-[[package]]
-name = "libc"
-version = "0.2.137"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
-
-[[package]]
-name = "libsqlite3-sys"
-version = "0.24.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14"
-dependencies = [
- "cc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "link-cplusplus"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
- "value-bag",
-]
-
-[[package]]
-name = "mach"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memmap2"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "money-contract"
-version = "0.3.0"
-dependencies = [
- "darkfi-sdk",
- "darkfi-serial",
- "getrandom",
-]
-
-[[package]]
-name = "more-asserts"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389"
-
-[[package]]
-name = "native-tls"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "number_prefix"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
-
-[[package]]
-name = "numtoa"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
-
-[[package]]
-name = "object"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
-
-[[package]]
-name = "opaque-debug"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-
-[[package]]
-name = "openssl"
-version = "0.10.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13"
-dependencies = [
- "bitflags",
- "cfg-if",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.77"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a"
-dependencies = [
- "autocfg",
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "parking"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
-
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
-dependencies = [
- "cfg-if",
- "instant",
- "libc",
- "redox_syscall",
- "smallvec",
- "winapi",
-]
-
-[[package]]
-name = "pasta_curves"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8"
-dependencies = [
- "blake2b_simd",
- "ff",
- "group",
- "lazy_static",
- "rand",
- "static_assertions",
- "subtle",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
-
-[[package]]
-name = "pem"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4"
-dependencies = [
- "base64",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
-
-[[package]]
-name = "pin-project"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
-
-[[package]]
-name = "polling"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2"
-dependencies = [
- "autocfg",
- "cfg-if",
- "libc",
- "log",
- "wepoll-ffi",
- "winapi",
-]
-
-[[package]]
-name = "poly1305"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
-dependencies = [
- "cpufeatures",
- "opaque-debug",
- "universal-hash",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro-crate"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
-dependencies = [
- "once_cell",
- "thiserror",
- "toml",
-]
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.47"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "ptr_meta"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
-dependencies = [
- "ptr_meta_derive",
-]
-
-[[package]]
-name = "ptr_meta_derive"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "pulldown-cmark"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63"
-dependencies = [
- "bitflags",
- "memchr",
- "unicase",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "radium"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rayon"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
-dependencies = [
- "autocfg",
- "crossbeam-deque",
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "rcgen"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
-dependencies = [
- "pem",
- "ring",
- "time 0.3.17",
- "yasna",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_termios"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
-dependencies = [
- "redox_syscall",
-]
-
-[[package]]
-name = "regalloc2"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779"
-dependencies = [
- "fxhash",
- "log",
- "slice-group-by",
- "smallvec",
-]
-
-[[package]]
-name = "regex"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
-
-[[package]]
-name = "region"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e"
-dependencies = [
- "bitflags",
- "libc",
- "mach",
- "winapi",
-]
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "rend"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95"
-dependencies = [
- "bytecheck",
-]
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rkyv"
-version = "0.7.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15"
-dependencies = [
- "bytecheck",
- "hashbrown",
- "indexmap",
- "ptr_meta",
- "rend",
- "rkyv_derive",
- "seahash",
-]
-
-[[package]]
-name = "rkyv_derive"
-version = "0.7.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
-
-[[package]]
-name = "rustls"
-version = "0.20.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
-dependencies = [
- "log",
- "ring",
- "sct",
- "webpki",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55"
-dependencies = [
- "base64",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "schannel"
-version = "0.1.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
-dependencies = [
- "lazy_static",
- "windows-sys 0.36.1",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "scratch"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "seahash"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
-
-[[package]]
-name = "security-framework"
-version = "2.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde-wasm-bindgen"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b4c031cd0d9014307d82b8abf653c0290fbdaeb4c02d00c63cf52f728628bf"
-dependencies = [
- "js-sys",
- "serde",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "simplelog"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786"
-dependencies = [
- "log",
- "termcolor",
- "time 0.3.17",
-]
-
-[[package]]
-name = "skeptic"
-version = "0.13.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
-dependencies = [
- "bytecount",
- "cargo_metadata",
- "error-chain",
- "glob",
- "pulldown-cmark",
- "tempfile",
- "walkdir",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "sled"
-version = "0.34.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935"
-dependencies = [
- "crc32fast",
- "crossbeam-epoch",
- "crossbeam-utils",
- "fs2",
- "fxhash",
- "libc",
- "log",
- "parking_lot",
-]
-
-[[package]]
-name = "slice-group-by"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec"
-
-[[package]]
-name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "smol"
-version = "1.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cf3b5351f3e783c1d79ab5fc604eeed8b8ae9abd36b166e8b87a089efd85e4"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-fs",
- "async-io",
- "async-lock",
- "async-net",
- "async-process",
- "blocking",
- "futures-lite",
- "once_cell",
-]
-
-[[package]]
-name = "socket2"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "sqlformat"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a"
-dependencies = [
- "itertools",
- "nom",
- "unicode_categories",
-]
-
-[[package]]
-name = "sqlx"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428"
-dependencies = [
- "sqlx-core",
- "sqlx-macros",
-]
-
-[[package]]
-name = "sqlx-core"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105"
-dependencies = [
- "ahash",
- "atoi",
- "bitflags",
- "byteorder",
- "bytes",
- "crc",
- "crossbeam-queue",
- "dotenvy",
- "either",
- "event-listener",
- "flume",
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-intrusive",
- "futures-util",
- "hashlink",
- "hex",
- "indexmap",
- "itoa",
- "libc",
- "libsqlite3-sys",
- "log",
- "memchr",
- "once_cell",
- "paste",
- "percent-encoding",
- "sha2",
- "smallvec",
- "sqlformat",
- "sqlx-rt",
- "stringprep",
- "thiserror",
- "url",
-]
-
-[[package]]
-name = "sqlx-macros"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9"
-dependencies = [
- "dotenvy",
- "either",
- "heck 0.4.0",
- "once_cell",
- "proc-macro2",
- "quote",
- "sha2",
- "sqlx-core",
- "sqlx-rt",
- "syn",
- "url",
-]
-
-[[package]]
-name = "sqlx-rt"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396"
-dependencies = [
- "async-native-tls",
- "async-std",
- "native-tls",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
-name = "stringprep"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "structopt"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
-dependencies = [
- "clap",
- "lazy_static",
- "structopt-derive",
-]
-
-[[package]]
-name = "structopt-derive"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-dependencies = [
- "heck 0.3.3",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "structopt-toml"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d887e6156acb1f4e2d2968d61d1d3b6c5e102af5f23c3ca606723b5ac2c45cb"
-dependencies = [
- "anyhow",
- "clap",
- "serde",
- "serde_derive",
- "skeptic",
- "structopt",
- "structopt-toml-derive",
- "toml",
-]
-
-[[package]]
-name = "structopt-toml-derive"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216c57b49178d22a3ec2f0ce5e961219d11772f7ca70b00c08879d15827d6daf"
-dependencies = [
- "heck 0.4.0",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "subtle"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-
-[[package]]
-name = "syn"
-version = "1.0.103"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "tap"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
-
-[[package]]
-name = "target-lexicon"
-version = "0.12.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d"
-
-[[package]]
-name = "tempfile"
-version = "3.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
-dependencies = [
- "cfg-if",
- "fastrand",
- "libc",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "terminal_size"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "termion"
-version = "1.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
-dependencies = [
- "libc",
- "numtoa",
- "redox_syscall",
- "redox_termios",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "time"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "time"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
-dependencies = [
- "itoa",
- "libc",
- "num_threads",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
-
-[[package]]
-name = "time-macros"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
-[[package]]
-name = "toml"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "typenum"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-
-[[package]]
-name = "uint"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a45526d29728d135c2900b0d30573fe3ee79fceb12ef534c7bb30e810a91b601"
-dependencies = [
- "byteorder",
- "crunchy",
- "hex",
- "static_assertions",
-]
-
-[[package]]
-name = "unicase"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "unicode_categories"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
-
-[[package]]
-name = "universal-hash"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
-dependencies = [
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "url"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
-dependencies = [
- "form_urlencoded",
- "idna",
- "percent-encoding",
- "serde",
-]
-
-[[package]]
-name = "value-bag"
-version = "1.0.0-alpha.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
-dependencies = [
- "ctor",
- "version_check",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "waker-fn"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-
-[[package]]
-name = "walkdir"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
-dependencies = [
- "same-file",
- "winapi",
- "winapi-util",
-]
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
-dependencies = [
- "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-
-[[package]]
-name = "wasm-encoder"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5816e88e8ea7335016aa62eb0485747f786136d505a9b3890f8c400211d9b5f"
-dependencies = [
- "leb128",
-]
-
-[[package]]
-name = "wasmer"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acfd471eb798272c684bf6c958ec70c9e6e2cceefc05c9cfe293d995c7fc9cc0"
-dependencies = [
- "bytes",
- "cfg-if",
- "indexmap",
- "js-sys",
- "more-asserts",
- "serde",
- "serde-wasm-bindgen",
- "target-lexicon",
- "thiserror",
- "wasm-bindgen",
- "wasmer-compiler",
- "wasmer-compiler-cranelift",
- "wasmer-derive",
- "wasmer-types",
- "wasmer-vm",
- "wat",
- "winapi",
-]
-
-[[package]]
-name = "wasmer-compiler"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a075ace8064d26557356cb499ad6e6559346baa825e138122565611c983753ed"
-dependencies = [
- "backtrace",
- "cfg-if",
- "enum-iterator",
- "enumset",
- "lazy_static",
- "leb128",
- "memmap2",
- "more-asserts",
- "region",
- "rustc-demangle",
- "smallvec",
- "thiserror",
- "wasmer-types",
- "wasmer-vm",
- "wasmparser",
- "winapi",
-]
-
-[[package]]
-name = "wasmer-compiler-cranelift"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c45fe71c800c50755d675465b50e017038213b8f75bb14d04b8298b2c16a62e2"
-dependencies = [
- "cranelift-codegen",
- "cranelift-entity",
- "cranelift-frontend",
- "gimli",
- "more-asserts",
- "rayon",
- "smallvec",
- "target-lexicon",
- "tracing",
- "wasmer-compiler",
- "wasmer-types",
-]
-
-[[package]]
-name = "wasmer-compiler-singlepass"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af10e365ef38ab13b1f062d447fb5545546ccc6b99b5daa836fd503eceafb562"
-dependencies = [
- "byteorder",
- "dynasm",
- "dynasmrt",
- "gimli",
- "lazy_static",
- "more-asserts",
- "rayon",
- "smallvec",
- "wasmer-compiler",
- "wasmer-types",
-]
-
-[[package]]
-name = "wasmer-derive"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4bee8b64f88235d9b5ed24b76245cbbcc3a252a696a0f65baeb732060a3d005"
-dependencies = [
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "wasmer-middlewares"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29f50edd5e8e19fe81099a3757e5168d65695ae262c98de0518336148094bdd2"
-dependencies = [
- "wasmer",
- "wasmer-types",
- "wasmer-vm",
-]
-
-[[package]]
-name = "wasmer-types"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5806cf609ca299b265f93b5a8c4c2156933fd7d592c5861a847f11336cf8dc4"
-dependencies = [
- "enum-iterator",
- "enumset",
- "indexmap",
- "more-asserts",
- "rkyv",
- "target-lexicon",
- "thiserror",
-]
-
-[[package]]
-name = "wasmer-vm"
-version = "3.0.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0898e214975ccdbbd0cddc2aa89839b34b6d0f373bc442c7c675cbb024019468"
-dependencies = [
- "backtrace",
- "cc",
- "cfg-if",
- "corosensei",
- "enum-iterator",
- "indexmap",
- "lazy_static",
- "libc",
- "mach",
- "memoffset",
- "more-asserts",
- "region",
- "scopeguard",
- "thiserror",
- "wasmer-types",
- "winapi",
-]
-
-[[package]]
-name = "wasmparser"
-version = "0.83.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a"
-
-[[package]]
-name = "wast"
-version = "48.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84825b5ac7164df8260c9e2b2e814075334edbe7ac426f2469b93a5eeac23cce"
-dependencies = [
- "leb128",
- "memchr",
- "unicode-width",
- "wasm-encoder",
-]
-
-[[package]]
-name = "wat"
-version = "1.0.50"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "129da4a03ec6d2a815f42c88f641824e789d5be0d86d2f90aa8a218c7068e0be"
-dependencies = [
- "wast",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "wepoll-ffi"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75"
-dependencies = [
- "windows_aarch64_msvc 0.33.0",
- "windows_i686_gnu 0.33.0",
- "windows_i686_msvc 0.33.0",
- "windows_x86_64_gnu 0.33.0",
- "windows_x86_64_msvc 0.33.0",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc 0.36.1",
- "windows_i686_gnu 0.36.1",
- "windows_i686_msvc 0.36.1",
- "windows_x86_64_gnu 0.36.1",
- "windows_x86_64_msvc 0.36.1",
-]
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
-[[package]]
-name = "wyz"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e"
-dependencies = [
- "tap",
-]
-
-[[package]]
-name = "yasna"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c"
-dependencies = [
- "time 0.3.17",
-]
-
-[[package]]
-name = "zeroize"
-version = "1.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"

+ 11 - 11
example/dao2/Cargo.toml

@@ -21,30 +21,30 @@ sled = "0.34.7"
 
 # Async
 smol = "1.3.0"
-futures = "0.3.26"
+futures = "0.3.28"
 async-std = {version = "1.12.0", features = ["attributes"]}
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 async-channel = "1.8.0"
-async-executor = "1.5.0"
-easy-parallel = "3.2.0"
+async-executor = "1.5.1"
+easy-parallel = "3.3.0"
 
 # Misc
 log = "0.4.17"
 num_cpus = "1.15.0"
-simplelog = "0.12.0"
-thiserror = "1.0.38"
+simplelog = "0.12.1"
+thiserror = "1.0.40"
 
 # Crypto
-incrementalmerkletree = "0.3.0"
-pasta_curves = "0.4.1"
-halo2_gadgets = "0.2.0"
-halo2_proofs = "0.2.0"
+incrementalmerkletree = "0.3.1"
+pasta_curves = "0.5.1"
+halo2_gadgets = "0.3.0"
+halo2_proofs = "0.3.0"
 rand = "0.8.5"
 chacha20poly1305 = "0.10.1"
 group = "0.13.0"
 
 # Encoding and parsing
-serde_json = "1.0.91"
+serde_json = "1.0.96"
 bs58 = "0.4.0"
 fxhash = "0.2.1"
 

+ 6 - 6
example/dchat/Cargo.toml

@@ -16,16 +16,16 @@ darkfi-serial = {path = "../../src/serial"}
 
 # ANCHOR: dependencies
 async-std = "1.12.0"
-async-trait = "0.1.64"
-easy-parallel = "3.2.0"
+async-trait = "0.1.68"
+easy-parallel = "3.3.0"
 smol = "1.3.0"
 num_cpus = "1.15.0"
 
 log = "0.4.17"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 url = "2.3.1"
 
-serde_json = "1.0.91"
-serde = {version = "1.0.152", features = ["derive"]}
-toml = "0.7.1"
+serde_json = "1.0.96"
+serde = {version = "1.0.160", features = ["derive"]}
+toml = "0.7.3"
 # ANCHOR_END: dependencies

+ 7 - 7
example/p2pdebug/Cargo.toml

@@ -13,22 +13,22 @@ edition = "2021"
 darkfi = {path = "../../", features = ["net", "rpc"]}
 # Async
 smol = "1.3.0"
-futures = "0.3.26"
+futures = "0.3.28"
 async-std = "1.12.0"
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 async-channel = "1.8.0"
-async-executor = "1.5.0"
-easy-parallel = "3.2.0"
+async-executor = "1.5.1"
+easy-parallel = "3.3.0"
 
 # Crypto
 rand = "0.8.5"
 
 # Misc
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 log = "0.4.17"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 fxhash = "0.2.1"
 url = "2.3.1"
 
 # Encoding and parsing
-serde_json = "1.0.91"
+serde_json = "1.0.96"

+ 2 - 2
script/research/arti-exp/Cargo.toml

@@ -8,7 +8,7 @@ edition = "2021"
 [workspace]
 
 [dependencies]
-anyhow = "1.0.69"
+anyhow = "1.0.70"
 async-std = {version = "1.12.0", features = ["attributes"]}
-arti-client = {version = "0.8.2", default-features = false, features = ["async-std", "pt-client", "rustls", "compression"]}
+arti-client = {version = "0.8.3", default-features = false, features = ["async-std", "pt-client", "rustls", "compression"]}
 simplelog = "0.12.1"

+ 1 - 1
script/research/blockchain-explorer/Cargo.toml

@@ -11,7 +11,7 @@ edition = "2021"
 
 [dependencies]
 blake3 = "1.3.3"
-clap = {version = "4.1.4", features = ["derive"]}
+clap = {version = "4.2.2", features = ["derive"]}
 darkfi = {path = "../../../", features = ["blockchain", "wallet", "rpc"]}
 darkfi-sdk = {path = "../../../src/sdk"}
 sled = "0.34.7"

+ 9 - 9
script/research/dhtd/Cargo.toml

@@ -11,21 +11,21 @@ features = ["dht"]
 
 [dependencies]
 async-channel = "1.8.0"
-async-executor = "1.5.0"
+async-executor = "1.5.1"
 async-std = "1.12.0"
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 blake3 = "1.3.3"
-ctrlc = { version = "3.2.4", features = ["termination"] }
-easy-parallel = "3.2.0"
-futures-lite = "1.12.0"
+ctrlc = { version = "3.2.5", features = ["termination"] }
+easy-parallel = "3.3.0"
+futures-lite = "1.13.0"
 log = "0.4.17"
-serde_json = "1.0.91"
-simplelog = "0.12.0"
+serde_json = "1.0.96"
+simplelog = "0.12.1"
 url = "2.3.1"
 
 # Argument parsing
-serde = "1.0.152"
-serde_derive = "1.0.152"
+serde = "1.0.160"
+serde_derive = "1.0.160"
 structopt = "0.3.26"
 structopt-toml = "0.5.1"
 

+ 1 - 1
script/research/last_man_standing/Cargo.toml

@@ -9,7 +9,7 @@ edition = "2021"
 
 [dependencies]
 async-std = "1.12.0"
-dashu = { version = "0.2.0", git = "https://github.com/ertosns/dashu" }
+dashu = { version = "0.3.1", git = "https://github.com/ertosns/dashu" }
 darkfi = {path = "../../../", features = ["blockchain"]}
 darkfi-sdk = {path = "../../../src/sdk"}
 rand = "0.8.5"

+ 11 - 11
script/research/raft-diag/Cargo.toml

@@ -12,26 +12,26 @@ darkfi = {path = "../../../", features = ["raft"]}
 # Async
 smol = "1.3.0"
 async-std = {version = "1.12.0", features = ["attributes"]}
-async-trait = "0.1.64"
+async-trait = "0.1.68"
 async-channel = "1.8.0"
-async-executor = "1.5.0"
-easy-parallel = "3.2.0"
-futures = "0.3.26"
+async-executor = "1.5.1"
+easy-parallel = "3.3.0"
+futures = "0.3.28"
 
 # Misc
 log = "0.4.17"
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 rand = "0.8.5"
-chrono = "0.4.23"
-thiserror = "1.0.38"
-ctrlc = { version = "3.2.4", features = ["termination"] }
+chrono = "0.4.24"
+thiserror = "1.0.40"
+ctrlc = { version = "3.2.5", features = ["termination"] }
 url = "2.3.1"
 fxhash = "0.2.1"
 
 # Encoding and parsing
-serde = {version = "1.0.152", features = ["derive"]}
-serde_json = "1.0.91"
+serde = {version = "1.0.160", features = ["derive"]}
+serde_json = "1.0.96"
 structopt = "0.3.26"
 hex = "0.4.3"
 bs58 = "0.4.0"
-toml = "0.7.1"
+toml = "0.7.3"

+ 1 - 1
script/research/rln/Cargo.toml

@@ -14,4 +14,4 @@ lazy_static = "1.4.0"
 rand = "0.8.5"
 
 [patch.crates-io]
-halo2_proofs = {git="https://github.com/parazyd/halo2", branch="vk-ser"}
+halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v3"}

+ 1 - 1
script/research/sss/Cargo.toml

@@ -8,5 +8,5 @@ edition = "2021"
 [workspace]
 
 [dependencies]
-pasta_curves = "0.5.0"
+pasta_curves = "0.5.1"
 rand = "0.8.5"

+ 1 - 1
script/research/tfhe/Cargo.toml

@@ -8,4 +8,4 @@ edition = "2021"
 [workspace]
 
 [dependencies]
-tfhe = {version = "0.1.7", features = ["boolean", "shortint", "x86_64"]}
+tfhe = {version = "0.2.0", features = ["boolean", "shortint", "x86_64"]}

+ 3 - 3
script/research/x3dh/Cargo.toml

@@ -12,6 +12,6 @@ sha2 = "0.10.6"
 digest = "0.10.6"
 rand = "0.8.5"
 aes-gcm-siv = "0.11.1"
-curve25519-dalek = {version = "4.0.0-rc.1", features = ["digest"]}
-ed25519-dalek = "2.0.0-pre.0"
-x25519-dalek = "2.0.0-pre.1"
+curve25519-dalek = {version = "4.0.0-rc.2", features = ["digest"]}
+ed25519-dalek = "2.0.0-rc.2"
+x25519-dalek = "2.0.0-rc.2"

+ 3 - 4
script/research/zk/ecip-bench/Cargo.toml

@@ -10,11 +10,10 @@ edition = "2021"
 [dependencies]
 darkfi = {path = "../../../../", features = ["zk"]}
 darkfi-sdk = {path = "../../../../src/sdk"}
-halo2_proofs = "0.2.0"
-halo2_gadgets = "0.2.0"
+halo2_proofs = "0.3.0"
+halo2_gadgets = "0.3.0"
 rand = "0.8.5"
 hex = "0.4.3"
 
 [patch.crates-io]
-halo2_proofs = {git="https://github.com/parazyd/halo2", branch="vk-ser"}
-
+halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v3"}

+ 0 - 1
script/research/zk/ecip-bench/src/main.rs

@@ -23,7 +23,6 @@ use halo2_gadgets::{
     utilities::lookup_range_check::LookupRangeCheckConfig,
 };
 use halo2_proofs::{
-    arithmetic::FieldExt,
     circuit::{AssignedCell, Chip, Layouter, Region, SimpleFloorPlanner, Value},
     plonk::{
         Advice, Circuit, Column, ConstraintSystem, Error, Fixed, Instance as InstanceColumn,

+ 1 - 1
src/blockchain/mod.rs

@@ -243,7 +243,7 @@ impl Blockchain {
     /// as the input transactions.
     pub fn add_pending_txs(&self, txs: &[Transaction]) -> Result<Vec<blake3::Hash>> {
         // TODO: Make db writes here completely atomic
-        let txs_hashes = self.pending_txs.insert(&txs)?;
+        let txs_hashes = self.pending_txs.insert(txs)?;
         self.pending_txs_order.insert(&txs_hashes)?;
 
         Ok(txs_hashes)

+ 4 - 0
src/blockchain/tx_store.rs

@@ -113,6 +113,10 @@ impl TxStore {
     pub fn len(&self) -> usize {
         self.0.len()
     }
+
+    pub fn is_empty(&self) -> bool {
+        self.0.len() == 0
+    }
 }
 
 /// The `PendingTxStore` is a `sled` tree storing all the node pending

+ 2 - 2
src/consensus/validator.rs

@@ -288,7 +288,7 @@ impl ValidatorState {
             }
         };
         if !erroneous_txs.is_empty() {
-            filtered_txs.retain(|x| !erroneous_txs.contains(&x));
+            filtered_txs.retain(|x| !erroneous_txs.contains(x));
         }
 
         if let Err(e) = self.blockchain.add_pending_txs(&filtered_txs) {
@@ -349,7 +349,7 @@ impl ValidatorState {
         // Verify transactions and filter erroneous ones
         let erroneous_txs = self.verify_transactions(&unproposed_txs[..], false).await?;
         if !erroneous_txs.is_empty() {
-            unproposed_txs.retain(|x| !erroneous_txs.contains(&x));
+            unproposed_txs.retain(|x| !erroneous_txs.contains(x));
         }
         let mut tree = BridgeTree::<MerkleNode, MERKLE_DEPTH>::new(100);
         // The following is pretty weird, so something better should be done.

+ 3 - 3
src/contract/dao/Cargo.toml

@@ -18,7 +18,7 @@ bs58 = "0.4.0"
 # probably shouldn't be in WASM
 chacha20poly1305 = { version = "0.10.1", optional = true }
 darkfi = { path = "../../../", features = ["zk", "rpc", "blockchain"], optional = true }
-halo2_proofs = { version = "0.2.0", optional = true }
+halo2_proofs = { version = "0.3.0", optional = true }
 log = { version = "0.4.17", optional = true }
 rand = { version = "0.8.5", optional = true }
 
@@ -27,9 +27,9 @@ rand = { version = "0.8.5", optional = true }
 async-std = {version = "1.12.0", features = ["attributes"]}
 darkfi = {path = "../../../", features = ["tx", "blockchain"]}
 darkfi-money-contract = { path = "../money", features = ["client", "no-entrypoint"] }
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 sled = "0.34.7"
-sqlx = {version = "0.6.2", features = ["runtime-async-std-rustls", "sqlite"]}
+sqlx = {version = "0.6.3", features = ["runtime-async-std-rustls", "sqlite"]}
 
 # We need to disable random using "custom" which makes the crate a noop
 # so the wasm32-unknown-unknown target is enabled.

+ 4 - 4
src/contract/money/Cargo.toml

@@ -11,13 +11,13 @@ crate-type = ["cdylib", "rlib"]
 [dependencies]
 darkfi-sdk = { path = "../../sdk" }
 darkfi-serial = { path = "../../serial", features = ["derive", "crypto"] }
-thiserror = "1.0.38"
+thiserror = "1.0.40"
 
 # The following dependencies are used for the client API and
 # probably shouldn't be in WASM
 chacha20poly1305 = { version = "0.10.1", optional = true }
 darkfi = { path = "../../../", features = ["zk", "rpc", "blockchain"], optional = true }
-halo2_proofs = { version = "0.2.0", optional = true }
+halo2_proofs = { version = "0.3.0", optional = true }
 log = { version = "0.4.17", optional = true }
 rand = { version = "0.8.5", optional = true }
 
@@ -26,9 +26,9 @@ rand = { version = "0.8.5", optional = true }
 async-std = {version = "1.12.0", features = ["attributes"]}
 bs58 = "0.4.0"
 darkfi = {path = "../../../", features = ["tx", "blockchain"]}
-simplelog = "0.12.0"
+simplelog = "0.12.1"
 sled = "0.34.7"
-sqlx = {version = "0.6.2", features = ["runtime-async-std-rustls", "sqlite"]}
+sqlx = {version = "0.6.3", features = ["runtime-async-std-rustls", "sqlite"]}
 
 # We need to disable random using "custom" which makes the crate a noop
 # so the wasm32-unknown-unknown target is enabled.

+ 3 - 3
src/net/transport/upgrade_tls.rs

@@ -27,7 +27,7 @@ use futures_rustls::{
         kx_group::X25519,
         server::{ClientCertVerified, ClientCertVerifier},
         version::TLS13,
-        Certificate, ClientConfig, DistinguishedNames, ServerConfig, ServerName,
+        Certificate, ClientConfig, DistinguishedName, ServerConfig, ServerName,
     },
     TlsAcceptor, TlsConnector, TlsStream,
 };
@@ -67,8 +67,8 @@ impl ServerCertVerifier for ServerCertificateVerifier {
 
 struct ClientCertificateVerifier;
 impl ClientCertVerifier for ClientCertificateVerifier {
-    fn client_auth_root_subjects(&self) -> Option<DistinguishedNames> {
-        Some(vec![])
+    fn client_auth_root_subjects(&self) -> &[DistinguishedName] {
+        &[]
     }
 
     fn verify_client_cert(

+ 7 - 8
src/sdk/Cargo.toml

@@ -13,7 +13,7 @@ doctest = false
 
 [dependencies]
 # Error handling
-thiserror = "1.0.38"
+thiserror = "1.0.40"
 
 # Serialization
 darkfi-serial = {version = "0.4.1", path = "../serial", features = ["derive", "pasta_curves"]}
@@ -22,14 +22,14 @@ darkfi-serial = {version = "0.4.1", path = "../serial", features = ["derive", "p
 bs58 = "0.4.0"
 
 # Cryptography
-blake2b_simd = "1.0.0"
+blake2b_simd = "1.0.1"
 blake3 = "1.3.3"
 chacha20poly1305 = "0.10.1"
-halo2_gadgets = "0.2.0"
-incrementalmerkletree = "0.3.0"
+halo2_gadgets = "0.3.0"
+incrementalmerkletree = "0.3.1"
 num-bigint = "0.4.3"
 num-traits = "0.2.15"
-pasta_curves = "0.4.1"
+pasta_curves = "0.5.1"
 rand_core = "0.6.4"
 sha2 = "0.10.6"
 
@@ -38,10 +38,9 @@ lazy_static = "1.4.0"
 subtle = "2.4.1"
 
 [dev-dependencies]
-halo2_proofs = "0.2.0"
+halo2_proofs = "0.3.0"
 halo2_gadgets = {version = "0.2.0", features = ["test-dependencies"]}
 rand = "0.8.5"
 
 [patch.crates-io]
-halo2_proofs = {git="https://github.com/parazyd/halo2", branch="vk-ser"}
-
+halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v3"}

+ 9 - 9
src/sdk/src/crypto/note.rs

@@ -18,7 +18,7 @@
 
 use chacha20poly1305::{AeadInPlace, ChaCha20Poly1305, KeyInit};
 use darkfi_serial::{Decodable, Encodable, SerialDecodable, SerialEncodable};
-use pasta_curves::pallas;
+use pasta_curves::{group::ff::Field, pallas};
 use rand_core::{CryptoRng, RngCore};
 
 use super::{diffie_hellman, poseidon_hash, util::mod_r_p, PublicKey, SecretKey};
@@ -96,12 +96,12 @@ impl<const N: usize> ElGamalEncryptedNote<N> {
         let (ss_x, ss_y) = PublicKey::from(public.inner() * mod_r_p(ephem_secret.inner())).xy();
         let shared_secret = poseidon_hash([ss_x, ss_y]);
 
-        let mut blinds = [pallas::Base::zero(); N];
-        for i in 0..N {
-            blinds[i] = poseidon_hash([shared_secret, pallas::Base::from(i as u64 + 1)]);
+        let mut blinds = [pallas::Base::ZERO; N];
+        for (i, item) in blinds.iter_mut().enumerate().take(N) {
+            *item = poseidon_hash([shared_secret, pallas::Base::from(i as u64 + 1)]);
         }
 
-        let mut encrypted_values = [pallas::Base::zero(); N];
+        let mut encrypted_values = [pallas::Base::ZERO; N];
         for i in 0..N {
             encrypted_values[i] = values[i] + blinds[i];
         }
@@ -115,12 +115,12 @@ impl<const N: usize> ElGamalEncryptedNote<N> {
             PublicKey::from(self.ephem_public.inner() * mod_r_p(secret.inner())).xy();
         let shared_secret = poseidon_hash([ss_x, ss_y]);
 
-        let mut blinds = [pallas::Base::zero(); N];
-        for i in 0..N {
-            blinds[i] = poseidon_hash([shared_secret, pallas::Base::from(i as u64 + 1)]);
+        let mut blinds = [pallas::Base::ZERO; N];
+        for (i, item) in blinds.iter_mut().enumerate().take(N) {
+            *item = poseidon_hash([shared_secret, pallas::Base::from(i as u64 + 1)]);
         }
 
-        let mut decrypted_values = [pallas::Base::zero(); N];
+        let mut decrypted_values = [pallas::Base::ZERO; N];
         for i in 0..N {
             decrypted_values[i] = self.encrypted_values[i] - blinds[i];
         }

+ 41 - 18
src/sdk/src/crypto/smt.rs

@@ -55,25 +55,31 @@ use halo2_gadgets::poseidon::{
     primitives as poseidon,
     primitives::{ConstantLength, P128Pow5T3, Spec},
 };
-use pasta_curves::arithmetic::FieldExt;
+use pasta_curves::group::ff::{FromUniformBytes, WithSmallOrderMulGroup};
 
 use crate::error::{ContractError, GenericResult};
 
-pub trait FieldHasher<F: FieldExt, const L: usize> {
+pub trait FieldHasher<F: WithSmallOrderMulGroup<3> + Ord, const L: usize> {
     fn hash(&self, inputs: [F; L]) -> GenericResult<F>;
     fn hasher() -> Self;
 }
 
 #[derive(Debug, Clone)]
-pub struct Poseidon<F: FieldExt, const L: usize>(PhantomData<F>);
+pub struct Poseidon<F: WithSmallOrderMulGroup<3> + Ord, const L: usize>(PhantomData<F>);
 
-impl<F: FieldExt, const L: usize> Poseidon<F, L> {
+impl<F: WithSmallOrderMulGroup<3> + Ord, const L: usize> Poseidon<F, L> {
     pub fn new() -> Self {
         Poseidon(PhantomData::default())
     }
 }
 
-impl<F: FieldExt, const L: usize> FieldHasher<F, L> for Poseidon<F, L>
+impl<F: WithSmallOrderMulGroup<3> + Ord, const L: usize> Default for Poseidon<F, L> {
+    fn default() -> Self {
+        Self::new()
+    }
+}
+
+impl<F: WithSmallOrderMulGroup<3> + Ord, const L: usize> FieldHasher<F, L> for Poseidon<F, L>
 where
     P128Pow5T3: Spec<F, 3, 2>,
 {
@@ -92,14 +98,14 @@ where
 /// Each pair is used to identify whether an incremental Merkle root construction
 /// is valid at each intermediate step.
 #[derive(Debug, Copy, Clone)]
-pub struct Path<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> {
+pub struct Path<F: WithSmallOrderMulGroup<3> + Ord, H: FieldHasher<F, 2>, const N: usize> {
     /// The path represented as a sequence of sibling pairs.
     pub path: [(F, F); N],
     /// The phantom hasher type used to reconstruct the Merkle root.
     pub marker: PhantomData<H>,
 }
 
-impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> Path<F, H, N> {
+impl<F: WithSmallOrderMulGroup<3> + Ord, H: FieldHasher<F, 2>, const N: usize> Path<F, H, N> {
     /// Assumes leaf contains leaf-level data, i.e. hashes of secrets stored on
     /// leaf-level.
     pub fn calculate_root(&self, leaf: &F, hasher: &H) -> GenericResult<F> {
@@ -109,7 +115,7 @@ impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> Path<F, H, N> {
 
         let mut prev = *leaf;
         // Check levels between leaf level and root
-        for &(ref left_hash, ref right_hash) in &self.path {
+        for (left_hash, right_hash) in &self.path {
             if &prev != left_hash && &prev != right_hash {
                 return Err(ContractError::SmtInvalidPathNodes)
             }
@@ -135,10 +141,10 @@ impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> Path<F, H, N> {
         }
 
         let mut prev = *leaf;
-        let mut index = F::zero();
-        let mut twopower = F::one();
+        let mut index = F::ZERO;
+        let mut twopower = F::ONE;
         // Check levels between leaf level and root
-        for &(ref left_hash, ref right_hash) in &self.path {
+        for (left_hash, right_hash) in &self.path {
             // Check if the previous hash is for a left or right ndoe
             if &prev != left_hash {
                 index += twopower;
@@ -156,7 +162,11 @@ impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> Path<F, H, N> {
 ///
 /// SMT stores a set of leaves represented in a map and a set of empty
 /// hashes that it uses to represent the sparse areas of the tree.
-pub struct SparseMerkleTree<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> {
+pub struct SparseMerkleTree<
+    F: WithSmallOrderMulGroup<3> + Ord,
+    H: FieldHasher<F, 2>,
+    const N: usize,
+> {
     /// A map from leaf indices to leaf data stored as field elements.
     pub tree: BTreeMap<u64, F>,
     /// An array of default hashes hashed with themselves `N` times.
@@ -165,7 +175,12 @@ pub struct SparseMerkleTree<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> {
     marker: PhantomData<H>,
 }
 
-impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> SparseMerkleTree<F, H, N> {
+impl<
+        F: WithSmallOrderMulGroup<3> + Ord + FromUniformBytes<64>,
+        H: FieldHasher<F, 2>,
+        const N: usize,
+    > SparseMerkleTree<F, H, N>
+{
     /// Creates a new SMT from a map of indices to field elements.
     pub fn new(
         leaves: &BTreeMap<u32, F>,
@@ -243,7 +258,7 @@ impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> SparseMerkleTree<F, H, N
     /// Give the path leading from the leaf at `index` up to the root. This is
     /// a "proof" in the sense of "valid path in a Merkle tree", not a ZK argument.
     pub fn generate_membership_proof(&self, index: u64) -> Path<F, H, N> {
-        let mut path = [(F::zero(), F::zero()); N];
+        let mut path = [(F::ZERO, F::ZERO); N];
 
         let tree_index = convert_index_to_last_level(index, N);
 
@@ -278,13 +293,17 @@ impl<F: FieldExt, H: FieldHasher<F, 2>, const N: usize> SparseMerkleTree<F, H, N
 /// `default_leaf` hashed with itself and repeated `N` times with the
 /// intermediate results. These are used to initialize the sparse portion
 /// of the SMT.
-pub fn gen_empty_hashes<F: FieldExt, H: FieldHasher<F, 2>, const N: usize>(
+pub fn gen_empty_hashes<
+    F: WithSmallOrderMulGroup<3> + Ord + FromUniformBytes<64>,
+    H: FieldHasher<F, 2>,
+    const N: usize,
+>(
     hasher: &H,
     default_leaf: &[u8; 64],
 ) -> GenericResult<[F; N]> {
-    let mut empty_hashes = [F::zero(); N];
+    let mut empty_hashes = [F::ZERO; N];
 
-    let mut empty_hash = F::from_bytes_wide(default_leaf);
+    let mut empty_hash = F::from_uniform_bytes(default_leaf);
     for item in empty_hashes.iter_mut().take(N) {
         *item = empty_hash;
         empty_hash = hasher.hash([empty_hash, empty_hash])?;
@@ -369,7 +388,11 @@ mod tests {
     use rand::rngs::OsRng;
 
     /// Helper to change leaves array to BTreeMap and then create SMT.
-    fn create_merkle_tree<F: FieldExt, H: FieldHasher<F, 2>, const N: usize>(
+    fn create_merkle_tree<
+        F: WithSmallOrderMulGroup<3> + Ord,
+        H: FieldHasher<F, 2>,
+        const N: usize,
+    >(
         hasher: H,
         leaves: &[F],
         default_leaf: &[u8; 64],

+ 5 - 2
src/sdk/src/crypto/util.rs

@@ -17,7 +17,10 @@
  */
 
 use halo2_gadgets::poseidon::primitives as poseidon;
-use pasta_curves::{arithmetic::FieldExt, group::ff::PrimeField, pallas};
+use pasta_curves::{
+    group::ff::{FromUniformBytes, PrimeField},
+    pallas,
+};
 
 /// Hash `a` and `b` together with a prefix `persona` and return a `pallas::Scalar`
 /// element from the digest.
@@ -26,7 +29,7 @@ pub fn hash_to_scalar(persona: &[u8], a: &[u8], b: &[u8]) -> pallas::Scalar {
     hasher.update(a);
     hasher.update(b);
     let ret = hasher.finalize();
-    pallas::Scalar::from_bytes_wide(ret.as_array())
+    pallas::Scalar::from_uniform_bytes(ret.as_array())
 }
 
 /// Converts from pallas::Base to pallas::Scalar (aka $x \pmod{r_\mathbb{P}}$).

+ 3 - 3
src/serial/Cargo.toml

@@ -10,12 +10,12 @@ edition = "2021"
 
 [dependencies]
 darkfi-derive = {version = "0.4.1", path = "./derive", optional = true}
-futures-lite = {version = "1.12.0", optional = true}
+futures-lite = {version = "1.13.0", optional = true}
 
 # Supported types for encoding
 blake3 = {version = "1.3.3", optional = true}
-incrementalmerkletree = {version = "0.3.0", optional = true}
-pasta_curves = {version = "0.4.1", optional = true}
+incrementalmerkletree = {version = "0.3.1", optional = true}
+pasta_curves = {version = "0.5.1", optional = true}
 url = {version = "2.3.1", optional = true}
 
 [features]

+ 3 - 3
src/serial/derive-internal/Cargo.toml

@@ -9,6 +9,6 @@ license = "AGPL-3.0-only"
 edition = "2021"
 
 [dependencies]
-proc-macro2 = "1.0.50"
-quote = "1.0.23"
-syn = {version = "1.0.107", features = ["full", "fold"]}
+proc-macro2 = "1.0.56"
+quote = "1.0.26"
+syn = {version = "1.0.109", features = ["full", "fold"]}

+ 3 - 3
src/serial/derive/Cargo.toml

@@ -12,8 +12,8 @@ edition = "2021"
 proc-macro = true
 
 [dependencies]
-proc-macro-crate = "1.3.0"
-proc-macro2 = "1.0.50"
-syn = {version = "1.0.107", features = ["full", "fold"]}
+proc-macro-crate = "1.3.1"
+proc-macro2 = "1.0.56"
+syn = {version = "1.0.109", features = ["full", "fold"]}
 
 darkfi-derive-internal = {version = "0.4.1", path = "../derive-internal"}

+ 2 - 10
src/util/parse.rs

@@ -20,14 +20,6 @@ use std::{iter::FromIterator, str::FromStr};
 
 use crate::{Error, Result};
 
-fn is_digit(c: char) -> bool {
-    ('0'..='9').contains(&c)
-}
-
-fn char_eq(a: char, b: char) -> bool {
-    a == b
-}
-
 pub fn decode_base10(amount: &str, decimal_places: usize, strict: bool) -> Result<u64> {
     let mut s: Vec<char> = amount.to_string().chars().collect();
 
@@ -41,7 +33,7 @@ pub fn decode_base10(amount: &str, decimal_places: usize, strict: bool) -> Resul
 
     // Only digits should remain
     for i in &s {
-        if !is_digit(*i) {
+        if !i.is_ascii_digit() {
             return Err(Error::ParseFailed("Found non-digits"))
         }
     }
@@ -57,7 +49,7 @@ pub fn decode_base10(amount: &str, decimal_places: usize, strict: bool) -> Resul
     if actual_places > decimal_places {
         let end = point + decimal_places;
         for i in &s[end..s.len()] {
-            if !char_eq(*i, '0') {
+            if *i != '0' {
                 round = true;
                 break
             }

+ 2 - 3
src/zk/gadget/arithmetic.rs

@@ -17,15 +17,14 @@
  */
 
 use halo2_proofs::{
-    arithmetic::FieldExt,
     circuit::{AssignedCell, Chip, Layouter},
-    pasta::pallas,
+    pasta::{group::ff::WithSmallOrderMulGroup, pallas},
     plonk,
     plonk::{Advice, Column, ConstraintSystem, Constraints, Selector},
     poly::Rotation,
 };
 
-pub trait ArithInstruction<F: FieldExt>: Chip<F> {
+pub trait ArithInstruction<F: WithSmallOrderMulGroup<3> + Ord>: Chip<F> {
     fn add(
         &self,
         layouter: impl Layouter<F>,

+ 19 - 22
src/zk/gadget/cond_select.rs

@@ -22,8 +22,8 @@
 use core::marker::PhantomData;
 
 use halo2_proofs::{
-    arithmetic::FieldExt,
     circuit::{AssignedCell, Chip, Layouter, Region, Value},
+    pasta::group::ff::WithSmallOrderMulGroup,
     plonk::{Advice, Column, ConstraintSystem, Error, Expression, Selector},
     poly::Rotation,
 };
@@ -31,18 +31,18 @@ use halo2_proofs::{
 pub const NUM_OF_UTILITY_ADVICE_COLUMNS: usize = 4;
 
 #[derive(Clone, Debug)]
-pub struct ConditionalSelectConfig<F: FieldExt> {
+pub struct ConditionalSelectConfig<F: WithSmallOrderMulGroup<3> + Ord> {
     advices: [Column<Advice>; NUM_OF_UTILITY_ADVICE_COLUMNS],
     s_cs: Selector,
     _marker: PhantomData<F>,
 }
 
-pub struct ConditionalSelectChip<F: FieldExt> {
+pub struct ConditionalSelectChip<F: WithSmallOrderMulGroup<3> + Ord> {
     config: ConditionalSelectConfig<F>,
     _marker: PhantomData<F>,
 }
 
-impl<F: FieldExt> Chip<F> for ConditionalSelectChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> Chip<F> for ConditionalSelectChip<F> {
     type Config = ConditionalSelectConfig<F>;
     type Loaded = ();
 
@@ -55,7 +55,7 @@ impl<F: FieldExt> Chip<F> for ConditionalSelectChip<F> {
     }
 }
 
-impl<F: FieldExt> ConditionalSelectChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> ConditionalSelectChip<F> {
     pub fn construct(
         config: <Self as Chip<F>>::Config,
         _loaded: <Self as Chip<F>>::Loaded,
@@ -78,7 +78,7 @@ impl<F: FieldExt> ConditionalSelectChip<F> {
             let out = meta.query_advice(advices[2], Rotation::cur());
             let cond = meta.query_advice(advices[3], Rotation::cur());
             let s_cs = meta.query_selector(s_cs);
-            let one = Expression::Constant(F::one());
+            let one = Expression::Constant(F::ONE);
 
             vec![
                 // cond is 0 or 1
@@ -110,7 +110,7 @@ impl<F: FieldExt> ConditionalSelectChip<F> {
                 let cond = cond.copy_advice(|| "copy cond", &mut region, config.advices[3], 0)?;
 
                 let selected =
-                    if cond.value().copied().to_field() == Value::known(F::one()).to_field() {
+                    if cond.value().copied().to_field() == Value::known(F::ONE).to_field() {
                         a.value().copied()
                     } else {
                         b.value().copied()
@@ -126,18 +126,18 @@ impl<F: FieldExt> ConditionalSelectChip<F> {
 }
 
 #[derive(Clone, Debug)]
-pub struct IsEqualConfig<F: FieldExt> {
+pub struct IsEqualConfig<F: WithSmallOrderMulGroup<3> + Ord> {
     s_is_eq: Selector,
     advices: [Column<Advice>; NUM_OF_UTILITY_ADVICE_COLUMNS],
     _marker: PhantomData<F>,
 }
 
-pub struct IsEqualChip<F: FieldExt> {
+pub struct IsEqualChip<F: WithSmallOrderMulGroup<3> + Ord> {
     config: IsEqualConfig<F>,
     _marker: PhantomData<F>,
 }
 
-impl<F: FieldExt> Chip<F> for IsEqualChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> Chip<F> for IsEqualChip<F> {
     type Config = IsEqualConfig<F>;
     type Loaded = ();
 
@@ -150,7 +150,7 @@ impl<F: FieldExt> Chip<F> for IsEqualChip<F> {
     }
 }
 
-impl<F: FieldExt> IsEqualChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> IsEqualChip<F> {
     pub fn construct(
         config: <Self as Chip<F>>::Config,
         _loaded: <Self as Chip<F>>::Loaded,
@@ -169,7 +169,7 @@ impl<F: FieldExt> IsEqualChip<F> {
             let out = meta.query_advice(advices[2], Rotation::cur());
             let delta_invert = meta.query_advice(advices[3], Rotation::cur());
             let s_is_eq = meta.query_selector(s_is_eq);
-            let one = Expression::Constant(F::one());
+            let one = Expression::Constant(F::ONE);
 
             vec![
                 // out is 0 or 1
@@ -211,7 +211,7 @@ impl<F: FieldExt> IsEqualChip<F> {
                     0,
                     || {
                         if a_field == b_field {
-                            Value::known(F::one())
+                            Value::known(F::ONE)
                         } else {
                             let delta = a_field - b_field;
                             delta.invert().evaluate()
@@ -219,11 +219,8 @@ impl<F: FieldExt> IsEqualChip<F> {
                     },
                 )?;
 
-                let is_eq = if a_field == b_field {
-                    Value::known(F::one())
-                } else {
-                    Value::known(F::zero())
-                };
+                let is_eq =
+                    if a_field == b_field { Value::known(F::ONE) } else { Value::known(F::ZERO) };
 
                 let cell = region.assign_advice(|| "is_eq", config.advices[2], 0, || is_eq)?;
                 Ok(cell)
@@ -235,18 +232,18 @@ impl<F: FieldExt> IsEqualChip<F> {
 }
 
 #[derive(Clone, Debug)]
-pub struct AssertEqualConfig<F: FieldExt> {
+pub struct AssertEqualConfig<F: WithSmallOrderMulGroup<3> + Ord> {
     s_eq: Selector,
     advices: [Column<Advice>; 2],
     _marker: PhantomData<F>,
 }
 
-pub struct AssertEqualChip<F: FieldExt> {
+pub struct AssertEqualChip<F: WithSmallOrderMulGroup<3> + Ord> {
     config: AssertEqualConfig<F>,
     _marker: PhantomData<F>,
 }
 
-impl<F: FieldExt> Chip<F> for AssertEqualChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> Chip<F> for AssertEqualChip<F> {
     type Config = AssertEqualConfig<F>;
     type Loaded = ();
 
@@ -259,7 +256,7 @@ impl<F: FieldExt> Chip<F> for AssertEqualChip<F> {
     }
 }
 
-impl<F: FieldExt> AssertEqualChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> AssertEqualChip<F> {
     pub fn construct(
         config: <Self as Chip<F>>::Config,
         _loaded: <Self as Chip<F>>::Loaded,

+ 7 - 7
src/zk/gadget/is_zero.rs

@@ -17,8 +17,8 @@
  */
 
 use halo2_proofs::{
-    arithmetic::FieldExt,
     circuit::{Region, Value},
+    pasta::group::ff::WithSmallOrderMulGroup,
     plonk::{Advice, Column, ConstraintSystem, Error, Expression, VirtualCells},
     poly::Rotation,
 };
@@ -29,17 +29,17 @@ pub struct IsZeroConfig<F> {
     pub is_zero_expr: Expression<F>,
 }
 
-impl<F: FieldExt> IsZeroConfig<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> IsZeroConfig<F> {
     pub fn expr(&self) -> Expression<F> {
         self.is_zero_expr.clone()
     }
 }
 
-pub struct IsZeroChip<F: FieldExt> {
+pub struct IsZeroChip<F: WithSmallOrderMulGroup<3> + Ord> {
     config: IsZeroConfig<F>,
 }
 
-impl<F: FieldExt> IsZeroChip<F> {
+impl<F: WithSmallOrderMulGroup<3> + Ord> IsZeroChip<F> {
     pub fn construct(config: IsZeroConfig<F>) -> Self {
         Self { config }
     }
@@ -50,7 +50,7 @@ impl<F: FieldExt> IsZeroChip<F> {
         value: impl FnOnce(&mut VirtualCells<'_, F>) -> Expression<F>,
         value_inv: Column<Advice>,
     ) -> IsZeroConfig<F> {
-        let mut is_zero_expr = Expression::Constant(F::zero());
+        let mut is_zero_expr = Expression::Constant(F::ZERO);
 
         meta.create_gate("is_zero", |meta| {
             //
@@ -65,7 +65,7 @@ impl<F: FieldExt> IsZeroChip<F> {
             let q_enable = q_enable(meta);
             let value_inv = meta.query_advice(value_inv, Rotation::cur());
 
-            is_zero_expr = Expression::Constant(F::one()) - value.clone() * value_inv;
+            is_zero_expr = Expression::Constant(F::ONE) - value.clone() * value_inv;
             vec![q_enable * value * is_zero_expr.clone()]
         });
 
@@ -78,7 +78,7 @@ impl<F: FieldExt> IsZeroChip<F> {
         offset: usize,
         value: Value<F>,
     ) -> Result<(), Error> {
-        let value_inv = value.map(|value| value.invert().unwrap_or(F::zero()));
+        let value_inv = value.map(|value| value.invert().unwrap_or(F::ZERO));
         region.assign_advice(|| "value inv", self.config.value_inv, offset, || value_inv)?;
         Ok(())
     }

+ 3 - 3
src/zk/gadget/less_than.rs

@@ -17,7 +17,7 @@
  */
 
 use halo2_proofs::{
-    arithmetic::FieldExt,
+    arithmetic::Field,
     circuit::{AssignedCell, Chip, Layouter, Region, Value},
     pasta::pallas,
     plonk::{Advice, Column, ConstraintSystem, Error, Expression, Selector, TableColumn},
@@ -120,7 +120,7 @@ impl<const WINDOW_SIZE: usize, const NUM_OF_BITS: usize, const NUM_OF_WINDOWS: u
             let b = meta.query_advice(config.b, Rotation::cur());
             let a_offset = meta.query_advice(config.a_offset, Rotation::cur());
             let two_pow_m =
-                Expression::Constant(pallas::Base::from(2).pow(&[NUM_OF_BITS as u64, 0, 0, 0]));
+                Expression::Constant(pallas::Base::from(2).pow([NUM_OF_BITS as u64, 0, 0, 0]));
             // a_offset - 2^m + b - a = 0
             vec![s_lt * (a_offset - two_pow_m + b - a)]
         });
@@ -237,7 +237,7 @@ impl<const WINDOW_SIZE: usize, const NUM_OF_BITS: usize, const NUM_OF_WINDOWS: u
         self.config.s_lt.enable(&mut region, offset)?;
 
         // assign `a + offset`
-        let two_pow_m = pallas::Base::from(2).pow(&[NUM_OF_BITS as u64, 0, 0, 0]);
+        let two_pow_m = pallas::Base::from(2).pow([NUM_OF_BITS as u64, 0, 0, 0]);
         let a_offset = a.value().zip(b.value()).map(|(a, b)| *a + (two_pow_m - b));
         let a_offset =
             region.assign_advice(|| "a_offset", self.config.a_offset, offset, || a_offset)?;

+ 5 - 3
src/zk/gadget/small_range_check.rs

@@ -17,9 +17,8 @@
  */
 
 use halo2_proofs::{
-    arithmetic::FieldExt,
     circuit::{AssignedCell, Chip, Layouter},
-    pasta::pallas,
+    pasta::{group::ff::WithSmallOrderMulGroup, pallas},
     plonk,
     plonk::{Advice, Column, ConstraintSystem, Constraints, Expression, Selector},
     poly::Rotation,
@@ -27,7 +26,10 @@ use halo2_proofs::{
 
 /// Checks that an expression is in the small range [0..range),
 /// i.e. 0 ≤ word < range.
-pub fn range_check<F: FieldExt>(word: Expression<F>, range: u8) -> Expression<F> {
+pub fn range_check<F: WithSmallOrderMulGroup<3> + Ord>(
+    word: Expression<F>,
+    range: u8,
+) -> Expression<F> {
     (1..(range as usize))
         .fold(word.clone(), |acc, i| acc * (Expression::Constant(F::from(i as u64)) - word.clone()))
 }

+ 2 - 2
src/zkas/lexer.rs

@@ -23,11 +23,11 @@ use super::error::ErrorEmitter;
 const SPECIAL_CHARS: [char; 7] = ['{', '}', '(', ')', ',', ';', '='];
 
 fn is_letter(ch: char) -> bool {
-    ('a'..='z').contains(&ch) || ('A'..='Z').contains(&ch) || ch == '_'
+    ch.is_ascii_lowercase() || ch.is_ascii_uppercase() || ch == '_'
 }
 
 fn is_digit(ch: char) -> bool {
-    ('0'..='9').contains(&ch)
+    ch.is_ascii_digit()
 }
 
 #[derive(Copy, Clone, PartialEq, Eq, Debug)]

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.