diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock index a60f640e..8ca58f9c 100644 --- a/Cargo-minimal.lock +++ b/Cargo-minimal.lock @@ -8,6 +8,16 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals", + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.22.1" @@ -16,9 +26,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bech32" -version = "0.10.0-beta" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98f7eed2b2781a6f0b5c903471d48e15f56fb4e1165df8a9a2337fd1a59d45ea" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] name = "bip322" @@ -26,7 +36,8 @@ version = "0.0.7" dependencies = [ "base64", "bitcoin", - "bitcoin_hashes 0.14.0", + "bitcoin-io", + "bitcoin_hashes", "hex", "miniscript", "pretty_assertions", @@ -35,23 +46,26 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.31.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85783c2fe40083ea54a33aa2f0ba58831d90fcd190f5bdc47e74e84d2a96ae" +checksum = "0032b0e8ead7074cda7fc4f034409607e3f03a6f71d66ade8a307f79b4d99e73" dependencies = [ + "base58ck", "bech32", "bitcoin-internals", - "bitcoin_hashes 0.13.0", - "hex-conservative 0.1.2", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative", "hex_lit", "secp256k1", ] [[package]] name = "bitcoin-internals" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" [[package]] name = "bitcoin-io" @@ -60,13 +74,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" [[package]] -name = "bitcoin_hashes" -version = "0.13.0" +name = "bitcoin-units" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.2", ] [[package]] @@ -76,7 +89,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" dependencies = [ "bitcoin-io", - "hex-conservative 0.2.1", + "hex-conservative", ] [[package]] @@ -106,12 +119,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - [[package]] name = "hex-conservative" version = "0.2.1" @@ -129,20 +136,19 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" [[package]] name = "miniscript" -version = "11.2.0" +version = "12.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3127e10529a57a8f7fa9b1332c4c2f72baadaca6777798f910dff3c922620b14" +checksum = "add2d4aee30e4291ce5cffa3a322e441ff4d4bc57b38c8d9bf0e94faa50ab626" dependencies = [ "bech32", "bitcoin", - "bitcoin-internals", ] [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", "yansi", @@ -168,19 +174,19 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ - "bitcoin_hashes 0.13.0", + "bitcoin_hashes", "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] @@ -193,18 +199,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "snafu" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b835cb902660db3415a672d862905e791e54d306c6e8189168c7f3d9ae1c79d" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" dependencies = [ "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d1e02fca405f6280643174a50c942219f0bbf4dbf7d480f1dd864d6f211ae5" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ "heck", "proc-macro2", @@ -231,6 +237,6 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "yansi" -version = "0.5.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" diff --git a/Cargo-recent.lock b/Cargo-recent.lock index a60f640e..8ca58f9c 100644 --- a/Cargo-recent.lock +++ b/Cargo-recent.lock @@ -8,6 +8,16 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals", + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.22.1" @@ -16,9 +26,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bech32" -version = "0.10.0-beta" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98f7eed2b2781a6f0b5c903471d48e15f56fb4e1165df8a9a2337fd1a59d45ea" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] name = "bip322" @@ -26,7 +36,8 @@ version = "0.0.7" dependencies = [ "base64", "bitcoin", - "bitcoin_hashes 0.14.0", + "bitcoin-io", + "bitcoin_hashes", "hex", "miniscript", "pretty_assertions", @@ -35,23 +46,26 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.31.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85783c2fe40083ea54a33aa2f0ba58831d90fcd190f5bdc47e74e84d2a96ae" +checksum = "0032b0e8ead7074cda7fc4f034409607e3f03a6f71d66ade8a307f79b4d99e73" dependencies = [ + "base58ck", "bech32", "bitcoin-internals", - "bitcoin_hashes 0.13.0", - "hex-conservative 0.1.2", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative", "hex_lit", "secp256k1", ] [[package]] name = "bitcoin-internals" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" [[package]] name = "bitcoin-io" @@ -60,13 +74,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" [[package]] -name = "bitcoin_hashes" -version = "0.13.0" +name = "bitcoin-units" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.2", ] [[package]] @@ -76,7 +89,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" dependencies = [ "bitcoin-io", - "hex-conservative 0.2.1", + "hex-conservative", ] [[package]] @@ -106,12 +119,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - [[package]] name = "hex-conservative" version = "0.2.1" @@ -129,20 +136,19 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" [[package]] name = "miniscript" -version = "11.2.0" +version = "12.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3127e10529a57a8f7fa9b1332c4c2f72baadaca6777798f910dff3c922620b14" +checksum = "add2d4aee30e4291ce5cffa3a322e441ff4d4bc57b38c8d9bf0e94faa50ab626" dependencies = [ "bech32", "bitcoin", - "bitcoin-internals", ] [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", "yansi", @@ -168,19 +174,19 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ - "bitcoin_hashes 0.13.0", + "bitcoin_hashes", "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] @@ -193,18 +199,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "snafu" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b835cb902660db3415a672d862905e791e54d306c6e8189168c7f3d9ae1c79d" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" dependencies = [ "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d1e02fca405f6280643174a50c942219f0bbf4dbf7d480f1dd864d6f211ae5" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ "heck", "proc-macro2", @@ -231,6 +237,6 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "yansi" -version = "0.5.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" diff --git a/Cargo.lock b/Cargo.lock index a60f640e..8ca58f9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,6 +8,16 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals", + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.22.1" @@ -16,9 +26,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bech32" -version = "0.10.0-beta" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98f7eed2b2781a6f0b5c903471d48e15f56fb4e1165df8a9a2337fd1a59d45ea" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] name = "bip322" @@ -26,7 +36,8 @@ version = "0.0.7" dependencies = [ "base64", "bitcoin", - "bitcoin_hashes 0.14.0", + "bitcoin-io", + "bitcoin_hashes", "hex", "miniscript", "pretty_assertions", @@ -35,23 +46,26 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.31.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85783c2fe40083ea54a33aa2f0ba58831d90fcd190f5bdc47e74e84d2a96ae" +checksum = "0032b0e8ead7074cda7fc4f034409607e3f03a6f71d66ade8a307f79b4d99e73" dependencies = [ + "base58ck", "bech32", "bitcoin-internals", - "bitcoin_hashes 0.13.0", - "hex-conservative 0.1.2", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative", "hex_lit", "secp256k1", ] [[package]] name = "bitcoin-internals" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" [[package]] name = "bitcoin-io" @@ -60,13 +74,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" [[package]] -name = "bitcoin_hashes" -version = "0.13.0" +name = "bitcoin-units" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.2", ] [[package]] @@ -76,7 +89,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" dependencies = [ "bitcoin-io", - "hex-conservative 0.2.1", + "hex-conservative", ] [[package]] @@ -106,12 +119,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - [[package]] name = "hex-conservative" version = "0.2.1" @@ -129,20 +136,19 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" [[package]] name = "miniscript" -version = "11.2.0" +version = "12.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3127e10529a57a8f7fa9b1332c4c2f72baadaca6777798f910dff3c922620b14" +checksum = "add2d4aee30e4291ce5cffa3a322e441ff4d4bc57b38c8d9bf0e94faa50ab626" dependencies = [ "bech32", "bitcoin", - "bitcoin-internals", ] [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", "yansi", @@ -168,19 +174,19 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ - "bitcoin_hashes 0.13.0", + "bitcoin_hashes", "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] @@ -193,18 +199,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "snafu" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b835cb902660db3415a672d862905e791e54d306c6e8189168c7f3d9ae1c79d" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" dependencies = [ "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d1e02fca405f6280643174a50c942219f0bbf4dbf7d480f1dd864d6f211ae5" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ "heck", "proc-macro2", @@ -231,6 +237,6 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "yansi" -version = "0.5.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" diff --git a/Cargo.toml b/Cargo.toml index 5a485772..140e45ce 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,11 +13,12 @@ default = [] [dependencies] base64 = "0.22.1" -bitcoin = "0.31.2" +bitcoin = "0.32.3" +bitcoin-io = "0.1.2" bitcoin_hashes = "0.14.0" hex = "0.4.3" -miniscript = "11.0.0" -snafu = { version = "0.8.4", default-features = false, features = ["rust_1_61", "std"] } +miniscript = "12.2.0" +snafu = { version = "0.8.5", default-features = false, features = ["rust_1_61", "std"] } [dev-dependencies] -pretty_assertions = "1.4.0" +pretty_assertions = "1.4.1" diff --git a/justfile b/justfile index c9fff815..3d81584a 100644 --- a/justfile +++ b/justfile @@ -33,6 +33,15 @@ wasm: serve: wasm python3 -m http.server -b 127.0.0.1 -d www 8080 +locks: + #!/usr/bin/env bash + set -euo pipefail + for file in Cargo-minimal.lock Cargo-recent.lock; do + cp "$file" Cargo.lock + cargo check + cp Cargo.lock "$file" + done + prepare-release revision='master': #!/usr/bin/env bash set -euxo pipefail diff --git a/src/error.rs b/src/error.rs index 5f736615..4b980d71 100644 --- a/src/error.rs +++ b/src/error.rs @@ -9,7 +9,7 @@ pub enum Error { address: String, }, #[snafu(display("Failed to parse private key"))] - PrivateKeyParse { source: bitcoin::key::Error }, + PrivateKeyParse { source: bitcoin::key::FromWifError }, #[snafu(display("Unsuported address `{address}`, only P2TR, P2WPKH and P2SH-P2WPKH allowed"))] UnsupportedAddress { address: String }, #[snafu(display("Decode error for signature `{signature}`"))] @@ -18,7 +18,7 @@ pub enum Error { signature: String, }, #[snafu(display("Transaction encode error"))] - TransactionEncode { source: std::io::Error }, + TransactionEncode { source: bitcoin_io::Error }, #[snafu(display("Transaction extract error"))] TransactionExtract { source: bitcoin::psbt::ExtractTxError, @@ -44,7 +44,7 @@ pub enum Error { #[snafu(display("Witness empty"))] WitnessEmpty, #[snafu(display("Encode witness error"))] - WitnessEncoding { source: std::io::Error }, + WitnessEncoding { source: bitcoin_io::Error }, #[snafu(display("Signature of wrong length `{length}`"))] SignatureLength { length: usize, diff --git a/src/lib.rs b/src/lib.rs index 62f00190..e0f2ca91 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,7 @@ use { base64::{engine::general_purpose, Engine}, bitcoin::{ absolute::LockTime, - address::Payload, + address::AddressData, blockdata::script, consensus::Decodable, consensus::Encodable, @@ -19,7 +19,7 @@ use { bitcoin_hashes::{sha256, Hash}, error::Error, snafu::{ResultExt, Snafu}, - std::{io::Cursor, str::FromStr}, + std::str::FromStr, }; mod error; @@ -69,7 +69,7 @@ mod tests { "".as_bytes() ) .unwrap() - .txid() + .compute_txid() .to_string(), "c5680aa69bb8d860bf82d4e9cd3504b55dde018de765a91bb566283c545a99a7" ); @@ -80,7 +80,7 @@ mod tests { "Hello World".as_bytes() ) .unwrap() - .txid() + .compute_txid() .to_string(), "b79d196740ad5217771c1098fc4a4b51e0535c32236c71f1ea4d61a2d603352b" ); @@ -97,7 +97,7 @@ mod tests { let to_sign = create_to_sign(&to_spend, None).unwrap(); assert_eq!( - to_sign.unsigned_tx.txid().to_string(), + to_sign.unsigned_tx.compute_txid().to_string(), "1e9654e951a5ba44c8604c4de6c67fd78a27e81dcadcfe1edf638ba3aaebaed6" ); @@ -110,7 +110,7 @@ mod tests { let to_sign = create_to_sign(&to_spend, None).unwrap(); assert_eq!( - to_sign.unsigned_tx.txid().to_string(), + to_sign.unsigned_tx.compute_txid().to_string(), "88737ae86f2077145f93cc4b153ae9a1cb8d56afa511988c149c5c8c9d93bddf" ); } diff --git a/src/sign.rs b/src/sign.rs index afdfe417..3cf84fe6 100644 --- a/src/sign.rs +++ b/src/sign.rs @@ -55,8 +55,8 @@ pub fn sign_full( let to_spend = create_to_spend(address, message)?; let mut to_sign = create_to_sign(&to_spend, None)?; - let witness = match address.payload() { - Payload::WitnessProgram(witness_program) => { + let witness = match address.to_address_data() { + AddressData::Segwit { witness_program } => { let version = witness_program.version().to_num(); let program_len = witness_program.program().len(); @@ -80,7 +80,7 @@ pub fn sign_full( } } } - Payload::ScriptHash(_) => { + AddressData::P2sh { script_hash: _ } => { create_message_signature_p2wpkh(&to_spend, &to_sign, private_key, true) } _ => { @@ -120,7 +120,7 @@ fn create_message_signature_p2wpkh( ) .expect("signature hash should compute"); - let sig = secp.sign_ecdsa( + let signature = secp.sign_ecdsa( &secp256k1::Message::from_digest_slice(sighash.as_ref()) .expect("should be cryptographically secure hash"), &private_key.inner, @@ -132,8 +132,8 @@ fn create_message_signature_p2wpkh( witness.push( bitcoin::ecdsa::Signature { - sig, - hash_ty: sighash_type, + signature, + sighash_type, } .to_vec(), ); @@ -175,7 +175,7 @@ fn create_message_signature_taproot( .tap_tweak(&secp, to_sign.inputs[0].tap_merkle_root) .to_inner(); - let sig = secp.sign_schnorr_no_aux_rand( + let signature = secp.sign_schnorr_no_aux_rand( &secp256k1::Message::from_digest_slice(sighash.as_ref()) .expect("should be cryptographically secure hash"), &key_pair, @@ -187,8 +187,8 @@ fn create_message_signature_taproot( witness.push( bitcoin::taproot::Signature { - sig, - hash_ty: sighash_type, + signature, + sighash_type, } .to_vec(), ); diff --git a/src/util.rs b/src/util.rs index ee383569..362456f6 100644 --- a/src/util.rs +++ b/src/util.rs @@ -43,7 +43,7 @@ pub fn create_to_spend(address: &Address, message: &[u8]) -> Result pub fn create_to_sign(to_spend: &Transaction, witness: Option) -> Result { let inputs = vec![TxIn { previous_output: OutPoint { - txid: to_spend.txid(), + txid: to_spend.compute_txid(), vout: 0, }, script_sig: ScriptBuf::new(), diff --git a/src/verify.rs b/src/verify.rs index 2fb568e1..d9b05b36 100644 --- a/src/verify.rs +++ b/src/verify.rs @@ -6,7 +6,7 @@ pub fn verify_simple_encoded(address: &str, message: &str, signature: &str) -> R .context(error::AddressParse { address })? .assume_checked(); - let mut cursor = Cursor::new( + let mut cursor = bitcoin_io::Cursor::new( general_purpose::STANDARD .decode(signature) .context(error::SignatureDecode { signature })?, @@ -24,7 +24,7 @@ pub fn verify_full_encoded(address: &str, message: &str, to_sign: &str) -> Resul .context(error::AddressParse { address })? .assume_checked(); - let mut cursor = Cursor::new(general_purpose::STANDARD.decode(to_sign).context( + let mut cursor = bitcoin_io::Cursor::new(general_purpose::STANDARD.decode(to_sign).context( error::TransactionBase64Decode { transaction: to_sign, }, @@ -52,24 +52,24 @@ pub fn verify_simple(address: &Address, message: &[u8], signature: Witness) -> R /// Verifies the BIP-322 full from proper Rust types. pub fn verify_full(address: &Address, message: &[u8], to_sign: Transaction) -> Result<()> { - match address.payload() { - Payload::WitnessProgram(witness) - if witness.version().to_num() == 1 && witness.program().len() == 32 => + match address.to_address_data() { + AddressData::Segwit { witness_program } + if witness_program.version().to_num() == 1 && witness_program.program().len() == 32 => { - let pub_key = XOnlyPublicKey::from_slice(witness.program().as_bytes()) + let pub_key = XOnlyPublicKey::from_slice(witness_program.program().as_bytes()) .map_err(|_| Error::InvalidPublicKey)?; verify_full_p2tr(address, message, to_sign, pub_key) } - Payload::WitnessProgram(witness) - if witness.version().to_num() == 0 && witness.program().len() == 20 => + AddressData::Segwit { witness_program } + if witness_program.version().to_num() == 0 && witness_program.program().len() == 20 => { let pub_key = PublicKey::from_slice(&to_sign.input[0].witness[1]).map_err(|_| Error::InvalidPublicKey)?; verify_full_p2wpkh(address, message, to_sign, pub_key, false) } - Payload::ScriptHash(_) => { + AddressData::P2sh { script_hash: _ } => { let pub_key = PublicKey::from_slice(&to_sign.input[0].witness[1]).map_err(|_| Error::InvalidPublicKey)?; @@ -92,7 +92,7 @@ fn verify_full_p2wpkh( let to_sign = create_to_sign(&to_spend, Some(to_sign.input[0].witness.clone()))?; let to_spend_outpoint = OutPoint { - txid: to_spend.txid(), + txid: to_spend.compute_txid(), vout: 0, }; @@ -176,7 +176,7 @@ fn verify_full_p2tr( let to_sign = create_to_sign(&to_spend, Some(to_sign.input[0].witness.clone()))?; let to_spend_outpoint = OutPoint { - txid: to_spend.txid(), + txid: to_spend.compute_txid(), vout: 0, }; diff --git a/www/Cargo.lock b/www/Cargo.lock index 5ab76fe5..d87acbe0 100644 --- a/www/Cargo.lock +++ b/www/Cargo.lock @@ -8,6 +8,16 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals", + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.22.1" @@ -16,9 +26,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bech32" -version = "0.10.0-beta" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98f7eed2b2781a6f0b5c903471d48e15f56fb4e1165df8a9a2337fd1a59d45ea" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] name = "bip322" @@ -26,7 +36,8 @@ version = "0.0.7" dependencies = [ "base64", "bitcoin", - "bitcoin_hashes 0.14.0", + "bitcoin-io", + "bitcoin_hashes", "hex", "miniscript", "snafu", @@ -34,23 +45,26 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.31.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85783c2fe40083ea54a33aa2f0ba58831d90fcd190f5bdc47e74e84d2a96ae" +checksum = "0032b0e8ead7074cda7fc4f034409607e3f03a6f71d66ade8a307f79b4d99e73" dependencies = [ + "base58ck", "bech32", "bitcoin-internals", - "bitcoin_hashes 0.13.0", - "hex-conservative 0.1.2", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative", "hex_lit", "secp256k1", ] [[package]] name = "bitcoin-internals" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" [[package]] name = "bitcoin-io" @@ -59,13 +73,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" [[package]] -name = "bitcoin_hashes" -version = "0.13.0" +name = "bitcoin-units" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.2", ] [[package]] @@ -75,7 +88,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" dependencies = [ "bitcoin-io", - "hex-conservative 0.2.1", + "hex-conservative", ] [[package]] @@ -108,12 +121,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - [[package]] name = "hex-conservative" version = "0.2.1" @@ -137,13 +144,12 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "miniscript" -version = "11.2.0" +version = "12.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3127e10529a57a8f7fa9b1332c4c2f72baadaca6777798f910dff3c922620b14" +checksum = "add2d4aee30e4291ce5cffa3a322e441ff4d4bc57b38c8d9bf0e94faa50ab626" dependencies = [ "bech32", "bitcoin", - "bitcoin-internals", ] [[package]] @@ -172,37 +178,37 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ - "bitcoin_hashes 0.13.0", + "bitcoin_hashes", "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] [[package]] name = "snafu" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b835cb902660db3415a672d862905e791e54d306c6e8189168c7f3d9ae1c79d" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" dependencies = [ "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d1e02fca405f6280643174a50c942219f0bbf4dbf7d480f1dd864d6f211ae5" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ "heck", "proc-macro2", @@ -229,19 +235,20 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", @@ -254,9 +261,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -264,9 +271,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", @@ -277,9 +284,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "www" diff --git a/www/Cargo.toml b/www/Cargo.toml index 677704de..c53c134c 100644 --- a/www/Cargo.toml +++ b/www/Cargo.toml @@ -8,8 +8,8 @@ crate-type = ["cdylib"] [dependencies] bip322 = "0.0.7" -bitcoin = "0.31.2" -wasm-bindgen = "0.2.92" +bitcoin = "0.32.3" +wasm-bindgen = "0.2.95" [patch.crates-io] bip322 = { path = '../' }