From b19d9a50d32edd4ed50b07b1cbc09857075d49f3 Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Wed, 4 Sep 2019 12:11:44 -0700 Subject: [PATCH] Transition to ureq http client (#5777) * Transition to ureq http client * Remove unwrap --- Cargo.lock | 326 ++++++++++--------------- cli/Cargo.toml | 2 +- cli/src/validator_info.rs | 5 +- client/Cargo.toml | 2 +- client/src/client_error.rs | 8 +- client/src/rpc_client_request.rs | 88 ++++--- core/Cargo.toml | 2 +- core/tests/rpc.rs | 38 ++- install/Cargo.toml | 2 +- install/src/command.rs | 10 +- metrics/Cargo.toml | 2 +- metrics/src/metrics.rs | 6 +- programs/btc_spv_bin/Cargo.toml | 5 +- programs/btc_spv_bin/src/blockheade.rs | 40 ++- validator/Cargo.toml | 2 +- validator/src/main.rs | 22 +- 16 files changed, 236 insertions(+), 324 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e7d2011d8d..ff7d511fdb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,10 +1,5 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -[[package]] -name = "adler32" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "aho-corasick" version = "0.5.3" @@ -79,6 +74,11 @@ name = "ascii" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "ascii-canvas" version = "1.0.0" @@ -296,9 +296,10 @@ name = "btc_spv_bin" version = "0.1.0" dependencies = [ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -457,6 +458,11 @@ dependencies = [ "wasm-bindgen 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "chunked_transfer" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "clang-sys" version = "0.26.4" @@ -590,23 +596,6 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "cookie_store" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "core-foundation" version = "0.6.4" @@ -640,14 +629,6 @@ dependencies = [ "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crc32fast" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "criterion-stats" version = "0.3.0" @@ -944,14 +925,6 @@ name = "encode_unicode" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "encoding_rs" -version = "0.8.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "endian-type" version = "0.1.2" @@ -1010,15 +983,6 @@ dependencies = [ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "error-chain" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "backtrace 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "escargot" version = "0.4.0" @@ -1076,16 +1040,6 @@ name = "fixedbitset" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "flate2" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide_c_api 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "fnv" version = "1.0.6" @@ -1438,18 +1392,6 @@ dependencies = [ "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "hyper-tls" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", - "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "idna" version = "0.1.5" @@ -1819,34 +1761,6 @@ dependencies = [ "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "mime_guess" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "miniz_oxide" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "miniz_oxide_c_api" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "mio" version = "0.6.19" @@ -2366,15 +2280,11 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "publicsuffix" -version = "1.5.2" +name = "qstring" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2700,44 +2610,24 @@ dependencies = [ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "reqwest" -version = "0.9.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "rgb" version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "ring" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", + "spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rocksdb" version = "0.11.0" @@ -2765,6 +2655,19 @@ dependencies = [ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rustls" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "sct 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rusty-fork" version = "0.2.2" @@ -2818,6 +2721,15 @@ name = "scopeguard" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "sct" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "security-framework" version = "0.3.1" @@ -2878,17 +2790,6 @@ dependencies = [ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "serde_urlencoded" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "serde_yaml" version = "0.8.9" @@ -3137,31 +3038,18 @@ dependencies = [ "solana-sdk 0.19.0-pre0", ] -[[package]] -name = "solana-bitcoin-spv-api" -version = "0.0.1" -dependencies = [ - "bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-sdk 0.19.0-pre0", -] - [[package]] name = "solana-bitcoin-spv-program" -version = "0.0.1" +version = "0.19.0-pre0" dependencies = [ "bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", + "solana-btc-spv-api 0.19.0-pre0", "solana-sdk 0.19.0-pre0", ] @@ -3204,6 +3092,20 @@ dependencies = [ "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "solana-btc-spv-api" +version = "0.19.0-pre0" +dependencies = [ + "bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", + "solana-sdk 0.19.0-pre0", +] + [[package]] name = "solana-budget-api" version = "0.19.0-pre0" @@ -3252,7 +3154,6 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "pretty-hex 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3271,6 +3172,7 @@ dependencies = [ "solana-storage-api 0.19.0-pre0", "solana-vote-api 0.19.0-pre0", "solana-vote-signer 0.19.0-pre0", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3285,13 +3187,13 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "solana-logger 0.19.0-pre0", "solana-netutil 0.19.0-pre0", "solana-sdk 0.19.0-pre0", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3363,7 +3265,6 @@ dependencies = [ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "reed-solomon-erasure 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3398,6 +3299,7 @@ dependencies = [ "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3544,7 +3446,6 @@ dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3556,6 +3457,7 @@ dependencies = [ "solana-sdk 0.19.0-pre0", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3670,12 +3572,12 @@ dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "solana-sdk 0.19.0-pre0", "sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3937,7 +3839,6 @@ dependencies = [ "console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "solana-client 0.19.0-pre0", "solana-core 0.19.0-pre0", @@ -3951,6 +3852,7 @@ dependencies = [ "solana-vote-signer 0.19.0-pre0", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4962,14 +4864,6 @@ name = "try-lock" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "try_from" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "typeable" version = "0.1.2" @@ -5052,11 +4946,34 @@ name = "unsigned-varint" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "untrusted" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "untrusted" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "ureq" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ascii 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "chunked_transfer 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "qstring 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki-roots 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "url" version = "1.7.2" @@ -5087,14 +5004,6 @@ name = "utf8-ranges" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "uuid" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "vcpkg" version = "0.2.7" @@ -5192,6 +5101,24 @@ name = "wasm-bindgen-shared" version = "0.2.50" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "webpki" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "webpki-roots" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "which" version = "2.0.1" @@ -5327,7 +5254,6 @@ dependencies = [ ] [metadata] -"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66" "checksum aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "36b7aa1ccb7d7ea3f437cf025a2ab1c47cc6c1bc9fc84918ff449def12f5e282" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" @@ -5339,6 +5265,7 @@ dependencies = [ "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" "checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" "checksum ascii 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50" +"checksum ascii 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" "checksum ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b385d69402821a1c254533a011a312531cbcc0e3e24f19bbb4747a5a2daf37e2" "checksum assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2dc477793bd82ec39799b6f6b3df64938532fdf2ab0d49ef817eac65856a5a1e" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" @@ -5384,6 +5311,7 @@ dependencies = [ "checksum cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "64a4b57c8f4e3a2e9ac07e0f6abc9c24b6fc9e1b54c3478cfb598f3d0023e51c" "checksum chashmap 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff41a3c2c1e39921b9003de14bf0439c7b63a9039637c291e1a64925d8ddfa45" "checksum chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "27429a03ca54100bf6bdc726c09adc46a74187ac93f9ce96dc7aaa9594ebf707" +"checksum chunked_transfer 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f98beb6554de08a14bd7b5c6014963c79d6a25a1c66b1d4ecb9e733ccba51d6c" "checksum clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ef0c1bcf2e99c649104bd7a7012d8f8802684400e03db0ec0af48583c6fa0e4" "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" @@ -5398,12 +5326,10 @@ dependencies = [ "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" "checksum cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e3d6405328b6edb412158b3b7710e2634e23f3614b9bb1c412df7952489a626" -"checksum cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" "checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" "checksum core_affinity 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6d162c6e463c31dbf78fefa99d042156c1c74d404e299cfe3df2923cb857595b" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" -"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum criterion-stats 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "387df94cb74ada1b33e10ce034bb0d9360cc73edb5063e7d7d4120a40ee1c9d2" "checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" "checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" @@ -5436,14 +5362,12 @@ dependencies = [ "checksum elfkit 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "02f182eda16a7360c80a2f8638d0726e9d5478173058f1505c42536ca666ecd2" "checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00" "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" -"checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" "checksum endian-type 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" "checksum enum-primitive-derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2b90e520ec62c1864c8c78d637acbfe8baf5f63240f2fb8165b8325c07812dd" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" "checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" "checksum errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2a071601ed01b988f896ab14b95e67335d1eeb50190932a1320f7fe3cadc84e" "checksum errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" -"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" "checksum escargot 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ceb9adbf9874d5d028b5e4c5739d22b71988252b25c9c98fe7cf9738bee84597" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" @@ -5451,7 +5375,6 @@ dependencies = [ "checksum feature-probe 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" "checksum filetime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "450537dc346f0c4d738dda31e790da1da5d4bd12145aad4da0d03d713cb3794f" "checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" -"checksum flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "550934ad4808d5d39365e5d61727309bf18b3b02c6c56b729cb92e7dd84bc3d8" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" @@ -5490,7 +5413,6 @@ dependencies = [ "checksum hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)" = "7cb44cbce9d8ee4fb36e4c0ad7b794ac44ebaad924b9c8291a63215bb44c2c8f" "checksum hyper 0.9.18 (registry+https://github.com/rust-lang/crates.io-index)" = "1b9bf64f730d6ee4b0528a5f0a316363da9d8104318731509d4ccc86248f82b3" "checksum hyper-native-tls 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6d375598f442742b0e66208ee12501391f1c7ac0bafb90b4fe53018f81f06068" -"checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" "checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" "checksum indexmap 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4d6d89e0948bf10c08b9ecc8ac5b83f07f857ebe2c0cbe38de15b4e4f510356" @@ -5533,9 +5455,6 @@ dependencies = [ "checksum memsec 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ccabb92f665f997bcb4f3ade019a8e07315148d8bcef3e65fbc5dbd65a22eb04" "checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" -"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599" -"checksum miniz_oxide 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c061edee74a88eb35d876ce88b94d77a0448a201de111c244b70d047f5820516" -"checksum miniz_oxide_c_api 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6c675792957b0d19933816c4e1d56663c341dd9bfa31cb2140ff2267c1d8ecf4" "checksum mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)" = "83f51996a3ed004ef184e16818edc51fadffe8e7ca68be67f9dee67d84d0ff23" "checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" @@ -5593,7 +5512,7 @@ dependencies = [ "checksum proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cf147e022eacf0c8a054ab864914a7602618adba841d800a9a9868a5237a529f" "checksum proptest-derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d31edb17edac73aeacc947bd61462dda15220584268896a58e12f053d767f15b" "checksum protobuf 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8aefcec9f142b524d98fc81d07827743be89dd6586a1ba6ab21fa66a500b3fa5" -"checksum publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5afecba86dcf1e4fd610246f89899d1924fe12e1e89f555eb7c7f710f3c5ad1d" +"checksum qstring 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "545ec057a36a93e25fb5883baed912e4984af4e2543bbf0e3463d962e0408469" "checksum quick-error 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ac990ab4e038dd8481a5e3fd00641067fcfc674ad663f3222752ed5284e05d4" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" @@ -5630,12 +5549,13 @@ dependencies = [ "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" "checksum rental 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "01916ebd9fc2e81978a5dc9542a2fa47f5bb2ca3402e14c7cc42d6e3c5123e1f" "checksum rental-impl 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82260d54cf2cbe9608df161f7e7c98e81fae702aa13af9e4d5d39dc2ffb25ab6" -"checksum reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)" = "0f6d896143a583047512e59ac54a215cb203c29cc941917343edea3be8df9c78" "checksum rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4f089652ca87f5a82a62935ec6172a534066c7b97be003cc8f702ee9a7a59c92" +"checksum ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c" "checksum rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1651697fefd273bfb4fd69466cc2a9d20de557a0213b97233b22b5e95924b5e" "checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +"checksum rustls 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f271e3552cd835fa28c541c34a7e8fdd8cdff09d77fe4eb8f6c42e87a11b096e" "checksum rusty-fork 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae" "checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" @@ -5644,6 +5564,7 @@ dependencies = [ "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" +"checksum sct 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f5adf8fbd58e1b1b52699dc8bed2630faecb6d8c7bee77d009d6bbe4af569b9" "checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" "checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" @@ -5651,7 +5572,6 @@ dependencies = [ "checksum serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f" "checksum serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "cb4dc18c61206b08dc98216c98faa0232f4337e1e1b8574551d5bad29ea1b425" "checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704" -"checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" "checksum serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "38b08a9a90e5260fe01c6480ec7c811606df6d3a660415808c3c3fa8ed95b582" "checksum serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50bfbc39343545618d97869d77f38ed43e48dd77432717dbc7ed39d797f3ecbe" "checksum serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "89dd85be2e2ad75b041c9df2892ac078fa6e0b90024028b2b9fb4125b7530f01" @@ -5755,7 +5675,6 @@ dependencies = [ "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" "checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" -"checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" "checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" "checksum typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6c06a92aef38bb4dc5b0df00d68496fc31307c5344c867bb61678c6e1671ec5" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" @@ -5770,12 +5689,13 @@ dependencies = [ "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" "checksum unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2c64cdf40b4a9645534a943668681bcb219faf51874d4b65d2e0abda1b10a2ab" +"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60369ef7a31de49bcb3f6ca728d4ba7300d9a1658f94c727d4cab8c8d9f4aece" +"checksum ureq 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b09f386574a6cf10b34b5f1aaf0e5ac5a6140555ee3aa7e440800966091fe7c1" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" "checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61" "checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f" "checksum utf8-ranges 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9d50aa7650df78abf942826607c62468ce18d9019673d4a2ebe1865dbb96ffde" -"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" "checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" @@ -5788,6 +5708,8 @@ dependencies = [ "checksum wasm-bindgen-macro 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "3ff88201a482abfc63921621f6cb18eb1efd74f136b05e5841e7f8ca434539e9" "checksum wasm-bindgen-macro-support 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "6a433d89ecdb9f77d46fcf00c8cf9f3467b7de9954d8710c175f61e2e245bb0e" "checksum wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "d41fc1bc3570cdf8d108c15e014045fd45a95bb5eb36605f96a90461fc34027d" +"checksum webpki 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4f7e1cd7900a3a6b65a3e8780c51a3e6b59c0e2c55c6dc69578c288d69f7d082" +"checksum webpki-roots 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c10fa4212003ba19a564f25cd8ab572c6791f99a03cc219c13ed35ccab00de0e" "checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 1920f9dd16..f769951cd4 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -21,7 +21,6 @@ lazy_static = "1.4.0" log = "0.4.8" num-traits = "0.2" pretty-hex = "0.1.0" -reqwest = "0.9.20" serde = "1.0.99" serde_derive = "1.0.99" serde_json = "1.0.40" @@ -38,6 +37,7 @@ solana-stake-api = { path = "../programs/stake_api", version = "0.19.0-pre0" } solana-storage-api = { path = "../programs/storage_api", version = "0.19.0-pre0" } solana-vote-api = { path = "../programs/vote_api", version = "0.19.0-pre0" } solana-vote-signer = { path = "../vote-signer", version = "0.19.0-pre0" } +ureq = "0.11.0" url = "2.1.0" [dev-dependencies] diff --git a/cli/src/validator_info.rs b/cli/src/validator_info.rs index d793bf0ab4..d539461052 100644 --- a/cli/src/validator_info.rs +++ b/cli/src/validator_info.rs @@ -4,7 +4,6 @@ use crate::{ }; use bincode::deserialize; use clap::ArgMatches; -use reqwest::Client; use serde_derive::{Deserialize, Serialize}; use serde_json::{Map, Value}; use solana_client::rpc_client::RpcClient; @@ -88,8 +87,7 @@ fn verify_keybase( "https://keybase.pub/{}/solana/validator-{:?}", keybase_username, validator_pubkey ); - let client = Client::new(); - if client.head(&url).send()?.status().is_success() { + if ureq::head(&url).call().ok() { Ok(()) } else { Err(format!("keybase_username could not be confirmed at: {}. Please add this pubkey file to your keybase profile to connect", url))? @@ -103,7 +101,6 @@ fn verify_keybase( } fn parse_args(matches: &ArgMatches<'_>) -> Value { - println!("{:?}", matches); let mut map = Map::new(); map.insert( "name".to_string(), diff --git a/client/Cargo.toml b/client/Cargo.toml index e0c17725df..2eb7cc95d5 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -15,12 +15,12 @@ jsonrpc-core = "13.1.0" log = "0.4.8" rand = "0.6.5" rayon = "1.2.0" -reqwest = "0.9.20" serde = "1.0.99" serde_derive = "1.0.99" serde_json = "1.0.40" solana-netutil = { path = "../netutil", version = "0.19.0-pre0" } solana-sdk = { path = "../sdk", version = "0.19.0-pre0" } +ureq = { version = "0.11.0", features = ["json"] } [dev-dependencies] jsonrpc-core = "13.1.0" diff --git a/client/src/client_error.rs b/client/src/client_error.rs index 8eb6ca7432..f53c86a65a 100644 --- a/client/src/client_error.rs +++ b/client/src/client_error.rs @@ -5,10 +5,10 @@ use std::{fmt, io}; #[derive(Debug)] pub enum ClientError { Io(io::Error), - Reqwest(reqwest::Error), RpcError(rpc_request::RpcError), SerdeJson(serde_json::error::Error), TransactionError(TransactionError), + Ureq(String), } impl fmt::Display for ClientError { @@ -25,9 +25,9 @@ impl From for ClientError { } } -impl From for ClientError { - fn from(err: reqwest::Error) -> ClientError { - ClientError::Reqwest(err) +impl From<&ureq::Error> for ClientError { + fn from(err: &ureq::Error) -> ClientError { + ClientError::Ureq(err.to_string()) } } diff --git a/client/src/rpc_client_request.rs b/client/src/rpc_client_request.rs index 427eefb120..5bce80c1fb 100644 --- a/client/src/rpc_client_request.rs +++ b/client/src/rpc_client_request.rs @@ -2,32 +2,34 @@ use crate::client_error::ClientError; use crate::generic_rpc_client_request::GenericRpcClientRequest; use crate::rpc_request::{RpcError, RpcRequest}; use log::*; -use reqwest; -use reqwest::header::CONTENT_TYPE; use solana_sdk::timing::{DEFAULT_TICKS_PER_SECOND, DEFAULT_TICKS_PER_SLOT}; +use std::io::{Error as IoError, ErrorKind}; use std::thread::sleep; use std::time::Duration; +use ureq::Error; pub struct RpcClientRequest { - client: reqwest::Client, + client: ureq::Agent, url: String, + timeout: Option, } impl RpcClientRequest { pub fn new(url: String) -> Self { Self { - client: reqwest::Client::new(), + client: ureq::agent(), url, + timeout: None, } } + // Timeout applies separately to each socket action: connect, read, write pub fn new_with_timeout(url: String, timeout: Duration) -> Self { - let client = reqwest::Client::builder() - .timeout(timeout) - .build() - .expect("build rpc client"); - - Self { client, url } + Self { + client: ureq::agent(), + url, + timeout: Some(timeout), + } } } @@ -44,38 +46,48 @@ impl GenericRpcClientRequest for RpcClientRequest { let request_json = request.build_request_json(request_id, params); loop { - match self + let mut request_builder = self .client .post(&self.url) - .header(CONTENT_TYPE, "application/json") - .body(request_json.to_string()) - .send() - { - Ok(mut response) => { - let json: serde_json::Value = serde_json::from_str(&response.text()?)?; - if json["error"].is_object() { - Err(RpcError::RpcRequestError(format!( - "RPC Error response: {}", - serde_json::to_string(&json["error"]).unwrap() - )))? - } - return Ok(json["result"].clone()); + .set("Content-Type", "application/json") + .build(); + if self.timeout.is_some() { + request_builder = request_builder + .timeout_connect(self.timeout.unwrap().as_millis() as u64) + .timeout_read(self.timeout.unwrap().as_millis() as u64) + .timeout_write(self.timeout.unwrap().as_millis() as u64) + .build(); + } + let response = request_builder.send_json(request_json.clone()); + if response.ok() { + let json: serde_json::Value = response.into_json()?; + if json["error"].is_object() { + Err(RpcError::RpcRequestError(format!( + "RPC Error response: {}", + serde_json::to_string(&json["error"]).unwrap() + )))? } - Err(e) => { - info!( - "make_rpc_request({:?}) failed, {} retries left: {:?}", - request, retries, e - ); - if retries == 0 { - Err(e)?; - } - retries -= 1; + return Ok(json["result"].clone()); + } else { + let io_error = Error::Io(IoError::new(ErrorKind::Other, "Unspecified error")); + let error = if let Some(err) = response.synthetic_error().as_ref() { + err + } else { + &io_error + }; + info!( + "make_rpc_request({:?}) failed, {} retries left: {:?}", + request, retries, error + ); + if retries == 0 { + Err(error)?; + } + retries -= 1; - // Sleep for approximately half a slot - sleep(Duration::from_millis( - 500 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND, - )); - } + // Sleep for approximately half a slot + sleep(Duration::from_millis( + 500 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND, + )); } } } diff --git a/core/Cargo.toml b/core/Cargo.toml index 3c4240e31a..fc46857939 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -44,7 +44,6 @@ num-traits = "0.2" rand = "0.6.5" rand_chacha = "0.1.1" rayon = "1.2.0" -reqwest = "0.9.20" serde = "1.0.99" serde_derive = "1.0.99" serde_json = "1.0.40" @@ -95,6 +94,7 @@ hex-literal = "0.2.1" matches = "0.1.6" serial_test = "0.2.0" serial_test_derive = "0.2.0" +ureq = { version = "0.11.0", default-features = false, features = ["json"] } [[bench]] name = "banking_stage" diff --git a/core/tests/rpc.rs b/core/tests/rpc.rs index bb3baee064..c00819e513 100644 --- a/core/tests/rpc.rs +++ b/core/tests/rpc.rs @@ -1,7 +1,5 @@ use bincode::serialize; use log::*; -use reqwest; -use reqwest::header::CONTENT_TYPE; use serde_json::{json, Value}; use solana_client::rpc_client::get_rpc_request_str; use solana_core::validator::new_validator_for_tests; @@ -19,7 +17,7 @@ fn test_rpc_send_tx() { let (server, leader_data, alice, ledger_path) = new_validator_for_tests(); let bob_pubkey = Pubkey::new_rand(); - let client = reqwest::Client::new(); + let client = ureq::agent(); let request = json!({ "jsonrpc": "2.0", "id": 1, @@ -28,20 +26,18 @@ fn test_rpc_send_tx() { }); let rpc_addr = leader_data.rpc; let rpc_string = get_rpc_request_str(rpc_addr, false); - let mut response = client + let response = client .post(&rpc_string) - .header(CONTENT_TYPE, "application/json") - .body(request.to_string()) - .send() - .unwrap(); - let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); + .set("Content-Type", "application/json") + .send_json(request); + let json: Value = serde_json::from_str(&response.into_string().unwrap()).unwrap(); let blockhash: Hash = json["result"][0].as_str().unwrap().parse().unwrap(); info!("blockhash: {:?}", blockhash); let tx = system_transaction::transfer(&alice, &bob_pubkey, 20, blockhash); let serial_tx = serialize(&tx).unwrap(); - let client = reqwest::Client::new(); + let client = ureq::agent(); let request = json!({ "jsonrpc": "2.0", "id": 1, @@ -50,18 +46,16 @@ fn test_rpc_send_tx() { }); let rpc_addr = leader_data.rpc; let rpc_string = get_rpc_request_str(rpc_addr, false); - let mut response = client + let response = client .post(&rpc_string) - .header(CONTENT_TYPE, "application/json") - .body(request.to_string()) - .send() - .unwrap(); - let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); + .set("Content-Type", "application/json") + .send_json(request); + let json: Value = serde_json::from_str(&response.into_string().unwrap()).unwrap(); let signature = &json["result"]; let mut confirmed_tx = false; - let client = reqwest::Client::new(); + let client = ureq::agent(); let request = json!({ "jsonrpc": "2.0", "id": 1, @@ -70,13 +64,11 @@ fn test_rpc_send_tx() { }); for _ in 0..solana_sdk::timing::DEFAULT_TICKS_PER_SLOT { - let mut response = client + let response = client .post(&rpc_string) - .header(CONTENT_TYPE, "application/json") - .body(request.to_string()) - .send() - .unwrap(); - let response_json_text = response.text().unwrap(); + .set("Content-Type", "application/json") + .send_json(request.clone()); + let response_json_text = response.into_string().unwrap(); let json: Value = serde_json::from_str(&response_json_text).unwrap(); if true == json["result"] { diff --git a/install/Cargo.toml b/install/Cargo.toml index 2e7ccc9899..826b451ba2 100644 --- a/install/Cargo.toml +++ b/install/Cargo.toml @@ -26,7 +26,6 @@ indicatif = "0.11.0" lazy_static = "1.4.0" log = "0.4.8" nix = "0.15.0" -reqwest = "0.9.20" semver = "0.9.0" serde = "1.0.99" serde_derive = "1.0.99" @@ -39,6 +38,7 @@ solana-sdk = { path = "../sdk", version = "0.19.0-pre0" } tar = "0.4.26" tempdir = "0.3.7" url = "2.1.0" +ureq = "0.11.0" [target."cfg(windows)".dependencies] winapi = "0.3.8" diff --git a/install/src/command.rs b/install/src/command.rs index ef20fabccc..91af364c7e 100644 --- a/install/src/command.rs +++ b/install/src/command.rs @@ -73,17 +73,15 @@ fn download_to_temp_archive( let temp_dir = TempDir::new(clap::crate_name!())?; let temp_file = temp_dir.path().join("release.tar.bz2"); - let client = reqwest::Client::new(); + let client = ureq::agent(); let progress_bar = new_spinner_progress_bar(); progress_bar.set_message(&format!("{}Downloading...", TRUCK)); - let response = client.get(url.as_str()).send()?; + let response = client.get(url.as_str()).call(); let download_size = { response - .headers() - .get(reqwest::header::CONTENT_LENGTH) - .and_then(|content_length| content_length.to_str().ok()) + .header("Content-Length") .and_then(|content_length| content_length.parse().ok()) .unwrap_or(0) }; @@ -116,7 +114,7 @@ fn download_to_temp_archive( let mut source = DownloadProgress { progress_bar, - response, + response: response.into_reader(), }; let mut file = File::create(&temp_file)?; diff --git a/metrics/Cargo.toml b/metrics/Cargo.toml index 950ef59f05..d09a945bda 100644 --- a/metrics/Cargo.toml +++ b/metrics/Cargo.toml @@ -13,9 +13,9 @@ env_logger = "0.6.2" influx_db_client = "0.3.6" lazy_static = "1.4.0" log = "0.4.8" -reqwest = "0.9.20" solana-sdk = { path = "../sdk", version = "0.19.0-pre0" } sys-info = "0.5.7" +ureq = "0.11.0" [dev-dependencies] rand = "0.6.5" diff --git a/metrics/src/metrics.rs b/metrics/src/metrics.rs index 5e929f2e30..6abeb507a7 100644 --- a/metrics/src/metrics.rs +++ b/metrics/src/metrics.rs @@ -523,9 +523,9 @@ pub fn query(q: &str) -> Result { &config.host, &config.username, &config.password, &q ); - let response = reqwest::get(query.as_str()) - .map_err(|err| err.to_string())? - .text() + let response = ureq::get(query.as_str()) + .call() + .into_string() .map_err(|err| err.to_string())?; Ok(response) diff --git a/programs/btc_spv_bin/Cargo.toml b/programs/btc_spv_bin/Cargo.toml index c0ee392fdb..a0594ebcba 100644 --- a/programs/btc_spv_bin/Cargo.toml +++ b/programs/btc_spv_bin/Cargo.toml @@ -5,10 +5,11 @@ authors = ["patrick "] edition = "2018" [dependencies] -reqwest="0.9.19" clap="2.33.0" -serde_derive="1.0.98" serde="1.0.99" +serde_derive="1.0.98" +serde_json = "1.0.40" +ureq = { version = "0.11.0", features = ["json"] } [[bin]] name = "blockheaders" diff --git a/programs/btc_spv_bin/src/blockheade.rs b/programs/btc_spv_bin/src/blockheade.rs index 894cad83a7..685e11687b 100644 --- a/programs/btc_spv_bin/src/blockheade.rs +++ b/programs/btc_spv_bin/src/blockheade.rs @@ -1,7 +1,6 @@ use clap; use clap::{App, Arg}; -use reqwest; -use serde::Deserialize; +use serde_derive::Deserialize; // pub type blockHash = [u8; 32]; pub type BlockHeader = [u8; 80]; @@ -28,35 +27,24 @@ struct JsonBH { #[allow(dead_code)] fn get_header_json(hash: &str) -> JsonBH { let qs = format!("https://www.blockchain.info/rawblock/{}", hash); - let body = reqwest::get(&qs); - match body { - Err(e) => panic!("rest request failed {}", e), - Ok(mut n) => { - if n.status().is_success() { - let jsonbh: JsonBH = n.json().unwrap(); - jsonbh - } else { - panic!("request failed"); - } - } + let body = ureq::get(&qs).call(); + if body.error() { + panic!("request failed"); + } else { + serde_json::from_value(body.into_json().unwrap()).unwrap() } } fn get_header_raw(hash: &str) -> String { let qs = format!("https://blockchain.info/block/{}?format=hex", hash); - let body = reqwest::get(&qs); - match body { - Err(e) => panic!("rest request failed {}", e), - Ok(mut n) => { - if n.status().is_success() { - let textbh: String = n.text().unwrap(); - let hs = &textbh[0..160]; // 160 characters since it's in hex format - let header: String = hs.to_string(); - header - } else { - panic!("request failed"); - } - } + let body = ureq::get(&qs).call(); + if body.error() { + panic!("request failed"); + } else { + let textbh: String = body.into_string().unwrap(); + let hs = &textbh[0..160]; // 160 characters since it's in hex format + let header: String = hs.to_string(); + header } } diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 272821b5bf..80982c5ee5 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -14,7 +14,6 @@ clap = "2.33.0" console = "0.8.0" log = "0.4.8" indicatif = "0.11.0" -reqwest = "0.9.20" serde_json = "1.0.40" solana-client = { path = "../client", version = "0.19.0-pre0" } solana-core = { path = "../core", version = "0.19.0-pre0" } @@ -28,6 +27,7 @@ solana-vote-api = { path = "../programs/vote_api", version = "0.19.0-pre0" } solana-vote-signer = { path = "../vote-signer", version = "0.19.0-pre0" } tempfile = "3.1.0" tar = "0.4.26" +ureq = { version = "0.11.0", default-features = false } [features] cuda = ["solana-core/cuda"] diff --git a/validator/src/main.rs b/validator/src/main.rs index 5dbd015c79..7e68fd613a 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -66,17 +66,19 @@ fn download_tar_bz2( let progress_bar = new_spinner_progress_bar(); progress_bar.set_message(&format!("{}Downloading {}...", TRUCK, url)); - let client = reqwest::Client::new(); - let response = client - .get(url.as_str()) - .send() - .and_then(|response| response.error_for_status()) - .map_err(|err| format!("Unable to get: {:?}", err))?; + let client = ureq::agent(); + let response = client.get(url.as_str()).call(); + if response.error() { + let error = if let Some(err) = response.synthetic_error().as_ref() { + format!("Unable to get: {:?}", err) + } else { + "Unable to get: unspecified error".to_string() + }; + Err(error)? + } let download_size = { response - .headers() - .get(reqwest::header::CONTENT_LENGTH) - .and_then(|content_length| content_length.to_str().ok()) + .header("Content-Length") .and_then(|content_length| content_length.parse().ok()) .unwrap_or(0) }; @@ -109,7 +111,7 @@ fn download_tar_bz2( let mut source = DownloadProgress { progress_bar, - response, + response: response.into_reader(), }; let mut file = File::create(&temp_archive_path)