diff --git a/Cargo.lock b/Cargo.lock index 0d8a66c3d6..6140f87044 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,12 +17,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - [[package]] name = "ahash" version = "0.7.6" @@ -103,7 +97,7 @@ dependencies = [ "http", "http-body", "hyper", - "itoa 1.0.2", + "itoa", "matchit", "memchr", "mime", @@ -136,9 +130,9 @@ dependencies = [ [[package]] name = "axum-server" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf18303ef7e23b045301555bf8a0dfbc1444ea1a37b3c81757a32680ace4d7d" +checksum = "2b26e2731cf84d9c54b3768a2faebe97626cb0568babf04bad68077e8b60c555" dependencies = [ "bytes", "futures-util", @@ -219,12 +213,6 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b" -[[package]] -name = "bech32" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5738be7561b0eeb501ef1d5c5db3f24e01ceb55fededd9b00039aada34966ad" - [[package]] name = "bip39" version = "1.0.1" @@ -237,12 +225,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "bit_field" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" - [[package]] name = "bitcoin" version = "0.28.1" @@ -250,7 +232,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05bba324e6baf655b882df672453dbbc527bc938cadd27750ae510aaccc3a66a" dependencies = [ "base64-compat", - "bech32 0.8.1", + "bech32", "bitcoin_hashes 0.10.0", "secp256k1", "serde", @@ -271,12 +253,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bitcoin_hashes" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" - [[package]] name = "bitcoincore-rpc" version = "0.15.0" @@ -313,10 +289,7 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ - "lazy_static", "memchr", - "regex-automata", - "serde", ] [[package]] @@ -325,12 +298,6 @@ version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" -[[package]] -name = "bytemuck" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53dfa917ec274df8ed3c572698f381a24eef2efba9492d797301b72b6db408a" - [[package]] name = "byteorder" version = "1.4.3" @@ -343,12 +310,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e" -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - [[package]] name = "cc" version = "1.0.73" @@ -382,20 +343,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "bitflags", - "textwrap 0.11.0", - "unicode-width", -] - -[[package]] -name = "clap" -version = "3.2.14" +version = "3.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54635806b078b7925d6e36810b1755f2a4b5b4d57560432c1ecf60bcbe10602b" +checksum = "44bbe24bbd31a185bc2c4f7c2abe80bea13a20d57ee4e55be70ac512bdc76417" dependencies = [ "atty", "bitflags", @@ -405,14 +355,14 @@ dependencies = [ "once_cell", "strsim", "termcolor", - "textwrap 0.15.0", + "textwrap", ] [[package]] name = "clap_derive" -version = "3.2.7" +version = "3.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" +checksum = "9ba52acd3b0a5c33aeada5cdaa3267cdc7c594a98731d4268cdc1532f4264cb4" dependencies = [ "heck", "proc-macro-error", @@ -439,12 +389,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - [[package]] name = "convert_case" version = "0.4.0" @@ -476,47 +420,11 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "criterion" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" -dependencies = [ - "atty", - "cast", - "clap 2.34.0", - "criterion-plot", - "csv", - "itertools", - "lazy_static", - "num-traits", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_cbor", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" -dependencies = [ - "cast", - "itertools", -] - [[package]] name = "crossbeam-channel" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -524,9 +432,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -535,9 +443,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", @@ -549,36 +457,14 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if 1.0.0", "once_cell", ] -[[package]] -name = "csv" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" -dependencies = [ - "bstr", - "csv-core", - "itoa 0.4.8", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" -dependencies = [ - "memchr", -] - [[package]] name = "ctrlc" version = "3.2.2" @@ -589,15 +475,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "deflate" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" -dependencies = [ - "adler32", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -681,22 +558,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ebc5a6d89e3c90b84e8f33c8737933dda8f1c106b5415900b38b9d433841478" -[[package]] -name = "exr" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cc0e06fb5f67e5d6beadf3a382fec9baca1aa751c6d5368fdeee7e5932c215" -dependencies = [ - "bit_field", - "deflate", - "flume", - "half", - "inflate", - "lebe", - "smallvec 1.9.0", - "threadpool", -] - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -711,36 +572,13 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] -[[package]] -name = "flate2" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "flume" -version = "0.10.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ceeb589a3157cac0ab8cc585feb749bd2cea5cb55a6ee802ad72d9fd38303da" -dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "pin-project", - "spin 0.9.4", -] - [[package]] name = "fnv" version = "1.0.7" @@ -914,20 +752,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", - "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "gif" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" -dependencies = [ - "color_quant", - "weezl", ] [[package]] @@ -1019,15 +845,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "html-escape" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e7479fa1ef38eb49fb6a42c426be515df2d063f06cb8efd3e50af073dbc26c" -dependencies = [ - "utf8-width", -] - [[package]] name = "http" version = "0.2.8" @@ -1036,7 +853,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.2", + "itoa", ] [[package]] @@ -1089,7 +906,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.2", + "itoa", "pin-project-lite", "socket2", "tokio", @@ -1133,25 +950,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "image" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "exr", - "gif", - "jpeg-decoder", - "num-rational", - "num-traits", - "png", - "scoped_threadpool", - "tiff", -] - [[package]] name = "indexmap" version = "1.9.1" @@ -1162,15 +960,6 @@ dependencies = [ "hashbrown 0.12.3", ] -[[package]] -name = "inflate" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" -dependencies = [ - "adler32", -] - [[package]] name = "instant" version = "0.1.12" @@ -1186,41 +975,17 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" -[[package]] -name = "itertools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - [[package]] name = "itoa" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" -[[package]] -name = "jpeg-decoder" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b" -dependencies = [ - "rayon", -] - [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -1345,12 +1110,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lebe" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efd1d698db0759e6ef11a7cd44407407399a910c774dd804c64c032da7826ff" - [[package]] name = "libc" version = "0.2.126" @@ -1456,15 +1215,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = [ - "getrandom 0.2.7", -] - [[package]] name = "native-tls" version = "0.2.10" @@ -1516,17 +1266,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -1561,12 +1300,6 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - [[package]] name = "openssl" version = "0.10.41" @@ -1620,13 +1353,10 @@ dependencies = [ "axum", "axum-server", "bdk", - "bech32 0.9.0", "bitcoin", - "bitcoin_hashes 0.11.0", "bitcoincore-rpc", "chrono", - "clap 3.2.14", - "criterion", + "clap", "ctrlc", "derive_more", "dirs", @@ -1634,7 +1364,6 @@ dependencies = [ "executable-path", "hex", "http", - "jsonrpc", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -1642,7 +1371,6 @@ dependencies = [ "lazy_static", "log", "nix", - "qrcode-generator", "rayon", "redb", "regex", @@ -1737,46 +1465,6 @@ version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" -[[package]] -name = "plotters" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9428003b84df1496fb9d6eeee9c5f8145cb41ca375eb0dad204328888832811f" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" - -[[package]] -name = "plotters-svg" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0918736323d1baff32ee0eade54984f6f201ad7e97d5cfb5d6ab4a358529615" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "png" -version = "0.17.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba" -dependencies = [ - "bitflags", - "crc32fast", - "deflate", - "miniz_oxide", -] - [[package]] name = "ppv-lite86" version = "0.2.16" @@ -1818,9 +1506,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" dependencies = [ "unicode-ident", ] @@ -1835,23 +1523,6 @@ dependencies = [ "target-lexicon", ] -[[package]] -name = "qrcode-generator" -version = "4.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501c33c9127afb867693646b38817bf63a9a756d4b66aefbc5c0d7e5e8c3125a" -dependencies = [ - "html-escape", - "image", - "qrcodegen", -] - -[[package]] -name = "qrcodegen" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142" - [[package]] name = "quote" version = "1.0.20" @@ -2043,9 +1714,9 @@ dependencies = [ [[package]] name = "redb" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dfbe4e6a60b6f8f02c2da9f9c614e71a9da2eac6aaa516aacb980fd1555e577" +checksum = "43908055ae1fd6233b365cfc372bc3d911e1b5831ca5daa53fe95bd0fba80583" dependencies = [ "libc", "pyo3-build-config", @@ -2053,9 +1724,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -2082,12 +1753,6 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - [[package]] name = "regex-syntax" version = "0.6.27" @@ -2149,7 +1814,7 @@ dependencies = [ "cc", "libc", "once_cell", - "spin 0.5.2", + "spin", "untrusted", "web-sys", "winapi", @@ -2203,15 +1868,6 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" -[[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" @@ -2222,12 +1878,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "scoped_threadpool" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" - [[package]] name = "scopeguard" version = "1.1.0" @@ -2329,7 +1979,7 @@ version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ - "itoa 1.0.2", + "itoa", "ryu", "serde", ] @@ -2341,7 +1991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.2", + "itoa", "ryu", "serde", ] @@ -2413,15 +2063,6 @@ 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 = "strsim" version = "0.10.0" @@ -2474,15 +2115,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - [[package]] name = "textwrap" version = "0.15.0" @@ -2509,26 +2141,6 @@ dependencies = [ "syn", ] -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "tiff" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cfada0986f446a770eca461e8c6566cb879682f7d687c8348aa0c857bd52286" -dependencies = [ - "flate2", - "jpeg-decoder", - "weezl", -] - [[package]] name = "time" version = "0.1.44" @@ -2540,21 +2152,11 @@ dependencies = [ "winapi", ] -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "tokio" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57aec3cfa4c296db7255446efb4928a6be304b431a806216105542a67b6ca82e" +checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" dependencies = [ "autocfg 1.1.0", "bytes", @@ -2687,9 +2289,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if 1.0.0", "log", @@ -2699,9 +2301,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ "once_cell", ] @@ -2742,12 +2344,6 @@ dependencies = [ "smallvec 0.6.14", ] -[[package]] -name = "unicode-width" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" - [[package]] name = "unindent" version = "0.1.9" @@ -2783,12 +2379,6 @@ dependencies = [ "percent-encoding 2.1.0", ] -[[package]] -name = "utf8-width" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" - [[package]] name = "vcpkg" version = "0.2.15" @@ -2801,17 +2391,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[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 = "want" version = "0.3.0" @@ -2842,9 +2421,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2852,13 +2431,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -2867,9 +2446,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2879,9 +2458,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2889,9 +2468,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ "proc-macro2", "quote", @@ -2902,15 +2481,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "web-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -2935,12 +2514,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "weezl" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" - [[package]] name = "winapi" version = "0.3.9" diff --git a/Cargo.toml b/Cargo.toml index a60311d5ba..10ff771807 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,9 +11,7 @@ anyhow = { version = "1.0.56", features = ["backtrace"] } axum = "0.5.6" axum-server = "0.4.0" bdk = { version = "0.20.0", features = ["keys-bip39", "sqlite"] } -bech32 = "0.9.0" bitcoin = "0.28.1" -bitcoin_hashes = "0.11.0" bitcoincore-rpc = "0.15.0" chrono = "0.4.19" clap = { version = "3.1.0", features = ["derive"] } @@ -21,15 +19,11 @@ ctrlc = "3.2.1" derive_more = "0.99.17" dirs = "4.0.0" env_logger = "0.9.0" -executable-path = "1.0.0" http = "0.2.6" -jsonrpc = "0.12.1" lazy_static = "1.4.0" log = "0.4.14" -qrcode-generator = "4.1.6" rayon = "1.5.1" -redb = "0.3.1" -reqwest = { version = "0.11.10", features = ["blocking", "json"] } +redb = "0.4.0" serde = { version = "1.0.137", features = ["derive"] } serde_cbor = "0.11.2" serde_json = "1.0.81" @@ -37,7 +31,7 @@ tokio = { version = "1.17.0", features = ["rt-multi-thread"] } tower-http = { version = "0.3.3", features = ["cors"] } [dev-dependencies] -criterion = "0.3.5" +executable-path = "1.0.0" hex = "0.4.3" jsonrpc-core = "18.0.0" jsonrpc-core-client = "18.0.0" @@ -45,14 +39,10 @@ jsonrpc-derive = "18.0.0" jsonrpc-http-server = "18.0.0" nix = "0.24.1" regex = "1.5.4" -reqwest = { version = "0.11.9", features = ["blocking"] } +reqwest = { version = "0.11.10", features = ["blocking"] } tempfile = "3.2.0" unindent = "0.1.7" [[test]] name = "integration" path = "tests/lib.rs" - -[[bench]] -name = "index" -harness = false diff --git a/benches/index.rs b/benches/index.rs deleted file mode 100644 index 3e0baf33bf..0000000000 --- a/benches/index.rs +++ /dev/null @@ -1,87 +0,0 @@ -use { - bitcoin::{ - blockdata::{constants::COIN_VALUE, script}, - consensus::Encodable, - Block, BlockHeader, Network, OutPoint, Transaction, TxIn, TxOut, Witness, - }, - criterion::{Criterion, SamplingMode}, - std::{env, fs::File, io::Seek, io::Write, path::Path, process::Command, time::Duration}, - tempfile::TempDir, -}; - -type Result> = std::result::Result; - -fn index(blocksdir: &Path) -> Result { - let tempdir = TempDir::new()?; - let binary = env::current_dir()?.join("target/release/ord"); - assert!(Command::new(binary) - .arg("index") - .arg("--blocksdir") - .arg(blocksdir) - .current_dir(tempdir.path()) - .status()? - .success()); - Ok(()) -} - -fn main() -> Result { - let mut criterion = Criterion::default() - .configure_from_args() - .measurement_time(Duration::from_secs(60)); - - let tempdir = TempDir::new()?; - let blocksdir = tempdir.path().join("blocks"); - - std::fs::create_dir(&blocksdir)?; - let mut blockfile = File::create(blocksdir.join("blk00000.dat"))?; - - let mut blocks = Vec::new(); - - for height in 0..1000 { - blocks.push(Block { - header: BlockHeader { - bits: 0, - merkle_root: Default::default(), - nonce: 0, - prev_blockhash: blocks.last().map(Block::block_hash).unwrap_or_default(), - time: 0, - version: 0, - }, - txdata: vec![Transaction { - input: vec![TxIn { - previous_output: OutPoint::null(), - script_sig: script::Builder::new().push_scriptint(height).into_script(), - sequence: 0, - witness: Witness::new(), - }], - lock_time: 0, - output: vec![TxOut { - value: 50 * COIN_VALUE, - script_pubkey: script::Builder::new().into_script(), - }], - version: 0, - }], - }); - } - - for block in blocks { - let mut encoded = Vec::new(); - block.consensus_encode(&mut encoded)?; - blockfile.write_all(&Network::Bitcoin.magic().to_le_bytes())?; - blockfile.write_all(&(encoded.len() as u32).to_le_bytes())?; - blockfile.write_all(&encoded)?; - } - - blockfile.flush()?; - - eprintln!("Blockfile is {} bytes", blockfile.stream_position()?); - - let mut group = criterion.benchmark_group("index"); - group.sampling_mode(SamplingMode::Flat); - group.bench_function("1000 blocks", |b| b.iter(|| index(&blocksdir))); - group.finish(); - - criterion.final_summary(); - - Ok(()) -} diff --git a/src/index.rs b/src/index.rs index af1de39ff9..4d96c4688b 100644 --- a/src/index.rs +++ b/src/index.rs @@ -291,8 +291,8 @@ impl Index { pub(crate) fn block(&self, height: u64) -> Result> { match self.client.get_block_hash(height) { Ok(hash) => Ok(Some(self.client.get_block(&hash)?)), - Err(bitcoincore_rpc::Error::JsonRpc(jsonrpc::error::Error::Rpc( - jsonrpc::error::RpcError { code: -8, .. }, + Err(bitcoincore_rpc::Error::JsonRpc(bitcoincore_rpc::jsonrpc::error::Error::Rpc( + bitcoincore_rpc::jsonrpc::error::RpcError { code: -8, .. }, ))) => Ok(None), Err(err) => Err(err.into()), } diff --git a/src/main.rs b/src/main.rs index a740004730..2920dced3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,27 +15,25 @@ use { wallet::AddressIndex::LastUnused, KeychainKind, }, - bech32::{FromBase32, ToBase32}, bitcoin::{ blockdata::constants::COIN_VALUE, consensus::Decodable, consensus::Encodable, + hashes::{sha256, Hash, HashEngine}, secp256k1::{ self, rand::{self, thread_rng}, schnorr::Signature, - KeyPair, Secp256k1, SecretKey, XOnlyPublicKey, + KeyPair, Secp256k1, XOnlyPublicKey, }, util::key::PrivateKey, - Address, Block, Network, OutPoint, Transaction, Txid, + Block, Network, OutPoint, Transaction, Txid, }, - bitcoin_hashes::{sha256, Hash, HashEngine}, chrono::{DateTime, NaiveDateTime, Utc}, clap::Parser, derive_more::{Display, FromStr}, dirs::data_dir, lazy_static::lazy_static, - qrcode_generator::QrCodeEcc, redb::{Database, ReadableTable, Table, TableDefinition, WriteTransaction}, serde::{Deserialize, Serialize}, std::{ @@ -44,7 +42,7 @@ use { env, fmt::{self, Display, Formatter}, fs, - io::{self, BufRead, Write}, + io::{self, Write}, net::ToSocketAddrs, ops::{Add, AddAssign, Deref, Sub}, path::PathBuf, diff --git a/src/subcommand.rs b/src/subcommand.rs index 940c7eda42..559e783e48 100644 --- a/src/subcommand.rs +++ b/src/subcommand.rs @@ -2,8 +2,6 @@ use super::*; mod epochs; mod find; -mod generate_paper_wallets; -mod generate_private_key; mod index; mod info; mod list; @@ -20,8 +18,6 @@ mod wallet; pub(crate) enum Subcommand { Epochs, Find(find::Find), - GeneratePaperWallets, - GeneratePrivateKey, Index, Info, List(list::List), @@ -41,8 +37,6 @@ impl Subcommand { match self { Self::Epochs => epochs::run(), Self::Find(find) => find.run(options), - Self::GeneratePaperWallets => generate_paper_wallets::run(), - Self::GeneratePrivateKey => generate_private_key::run(), Self::Index => index::run(options), Self::Info => info::run(options), Self::List(list) => list.run(options), diff --git a/src/subcommand/generate_paper_wallets.rs b/src/subcommand/generate_paper_wallets.rs deleted file mode 100644 index f4bd72b316..0000000000 --- a/src/subcommand/generate_paper_wallets.rs +++ /dev/null @@ -1,120 +0,0 @@ -use { - super::*, bitcoincore_rpc::bitcoincore_rpc_json::ScanTxOutResult, fs::File, std::process::Command, -}; - -pub(crate) fn run() -> Result { - let secp = Secp256k1::new(); - - for (i, result) in io::stdin().lock().lines().enumerate() { - let line = result?; - let mut split = line.split_whitespace(); - let privkey = split.next().unwrap(); - let address = split.next().unwrap(); - - eprintln!("Getting utxos for {address}…"); - - let output = Command::new("bitcoin-cli") - .arg("scantxoutset") - .arg("start") - .arg(format!("[\"addr({address})\"]")) - .output()?; - - let result = serde_json::from_slice::(&output.stdout)?; - - if result.unspents.is_empty() { - return Err(anyhow!("Found no utxos")); - } - - assert_eq!(result.unspents.len(), 1); - - let utxo = &result.unspents[0]; - - let outpoint = format!("{}:{}", utxo.txid, utxo.vout); - - eprintln!("outpoint: {outpoint}"); - - eprintln!("Getting ordinals…"); - - let ranges: Vec<(Ordinal, Ordinal)> = - reqwest::blocking::get(format!("http://api.ordinals.com:8000/list/{outpoint}"))?.json()?; - - for (start, end) in &ranges { - eprintln!("[{start},{end})"); - } - - let sats = utxo.amount.as_sat(); - - let (_, secret_key_base32, _) = bech32::decode(privkey).unwrap(); - - let secret_key = SecretKey::from_slice(&Vec::from_base32(&secret_key_base32)?)?; - - let key_pair = KeyPair::from_secret_key(&secp, secret_key); - - let public_key = key_pair.public_key(); - let address_from_privkey = Address::p2tr(&secp, public_key, None, Network::Bitcoin); - assert_eq!(Address::from_str(address)?, address_from_privkey); - - let qr_uri = address_from_privkey.to_qr_uri(); - - let public_key_bech32 = bech32::encode( - "pubkey", - public_key.serialize().to_base32(), - bech32::Variant::Bech32m, - ) - .unwrap(); - - let address_qr_code = - qrcode_generator::to_svg_to_string(qr_uri, QrCodeEcc::High, 1024, Some(""))?; - - let ordinals = ranges - .iter() - .map(|(start, end)| format!("
  • [{start},{end})
  • ")) - .collect::(); - - let mut wallet = File::create(format!("wallet{i}.html"))?; - - write!( - wallet, - r#" - - - - - - -

    Public key: {public_key_bech32}

    - -

    Address: {address}

    - -

    Sats: {sats}

    - -

    Ordinals

    - -
      {ordinals}
    - - {address_qr_code} - -
    - -

    Private key: {privkey}

    - -

    - The above private key is a bech32-encoded secp256k1 seckey. The address - on the other side is a p2tr address generated using the corresponding - public key, with no tweak. -

    - -"# - )?; - } - - Ok(()) -} diff --git a/src/subcommand/generate_private_key.rs b/src/subcommand/generate_private_key.rs deleted file mode 100644 index 3a80a8a9cc..0000000000 --- a/src/subcommand/generate_private_key.rs +++ /dev/null @@ -1,15 +0,0 @@ -use super::*; - -pub(crate) fn run() -> Result { - let mut rng = rand::thread_rng(); - - let private_key = PrivateKey { - compressed: true, - network: Network::Bitcoin, - inner: SecretKey::new(&mut rng), - }; - - println!("{}", private_key.to_wif()); - - Ok(()) -}