From 42a290a4d1ef8bf54a29f88c9f72fe990e8f911e Mon Sep 17 00:00:00 2001 From: edouardparis Date: Fri, 20 Sep 2024 09:41:59 +0200 Subject: [PATCH] wip: this commit is for testing new bitbox firmware --- gui/Cargo.lock | 158 ++++++++++++++++++++++++++++++++++++++++--------- gui/Cargo.toml | 2 +- gui/src/hw.rs | 7 ++- 3 files changed, 136 insertions(+), 31 deletions(-) diff --git a/gui/Cargo.lock b/gui/Cargo.lock index 7bcd78373..ecdd25b03 100644 --- a/gui/Cargo.lock +++ b/gui/Cargo.lock @@ -200,12 +200,12 @@ dependencies = [ [[package]] name = "async-hwi" version = "0.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5e1703fc8cf217444fde8f3fdcf44382a1dec3afe5430620aa1b421c692b58" +source = "git+https://github.com/wizardsardine/async-hwi?branch=bitbox-tapminiscript#0c3bffc3b4ac3bc81933dd72ce759fe442cd870e" dependencies = [ "async-trait", "bitbox-api", - "bitcoin", + "bitcoin 0.31.1", + "bitcoin 0.32.2", "coldcard", "futures", "hidapi", @@ -278,6 +278,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals 0.3.0", + "bitcoin_hashes 0.14.0", +] + [[package]] name = "base64" version = "0.13.1" @@ -311,7 +321,7 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c601c4dc7e6c3efa538a0afbb43b964cefab9a9b5e8f352fa0ca38145448a5e7" dependencies = [ - "bitcoin", + "bitcoin 0.31.1", "miniscript", ] @@ -337,6 +347,12 @@ version = "0.10.0-beta" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98f7eed2b2781a6f0b5c903471d48e15f56fb4e1165df8a9a2337fd1a59d45ea" +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + [[package]] name = "bip39" version = "2.0.0" @@ -371,21 +387,21 @@ checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" [[package]] name = "bitbox-api" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c0e1d593628bd289304902364f69c24686734d1825c54e03d89e003aa87b4f" +version = "0.5.0" +source = "git+https://github.com/BitBoxSwiss/bitbox-api-rs?branch=taproot-policies#ef09a972620d6fb5a44d2cf35858df2dab976146" dependencies = [ "async-trait", "base32", - "bitcoin", + "bitcoin 0.32.2", "byteorder", + "chrono", "getrandom", "hex", "hidapi", "noise-protocol", "noise-rust-crypto", "num-bigint", - "prost 0.12.2", + "prost 0.13.2", "prost-build", "semver", "serde", @@ -402,13 +418,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd00f3c09b5f21fb357abe32d29946eb8bb7a0862bae62c0b5e4a692acbbe73c" dependencies = [ "base64 0.21.6", - "bech32", - "bitcoin-internals", + "bech32 0.10.0-beta", + "bitcoin-internals 0.2.0", "bitcoin_hashes 0.13.0", "core2", - "hex-conservative", + "hex-conservative 0.1.1", + "hex_lit", + "secp256k1 0.28.1", + "serde", +] + +[[package]] +name = "bitcoin" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea507acc1cd80fc084ace38544bbcf7ced7c2aa65b653b102de0ce718df668f6" +dependencies = [ + "base58ck", + "base64 0.21.6", + "bech32 0.11.0", + "bitcoin-internals 0.3.0", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes 0.14.0", + "hex-conservative 0.2.1", "hex_lit", - "secp256k1", + "secp256k1 0.29.1", "serde", ] @@ -421,12 +456,37 @@ dependencies = [ "serde", ] +[[package]] +name = "bitcoin-internals" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" +dependencies = [ + "serde", +] + +[[package]] +name = "bitcoin-io" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" + [[package]] name = "bitcoin-private" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" +[[package]] +name = "bitcoin-units" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" +dependencies = [ + "bitcoin-internals 0.3.0", + "serde", +] + [[package]] name = "bitcoin_hashes" version = "0.11.0" @@ -448,9 +508,20 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ - "bitcoin-internals", + "bitcoin-internals 0.2.0", "core2", - "hex-conservative", + "hex-conservative 0.1.1", + "serde", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative 0.2.1", "serde", ] @@ -1291,7 +1362,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89008f106be6f303695522f2f4c1f28b40c3e8367ed8b3bb227f1f882cb52cc2" dependencies = [ - "bitcoin", + "bitcoin 0.31.1", "byteorder", "libc", "log", @@ -1988,6 +2059,15 @@ dependencies = [ "core2", ] +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + [[package]] name = "hex_lit" version = "0.1.1" @@ -2617,7 +2697,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8606a9c7375fb139e68fc1ca7cf9c6709566eeca448ff33e37632d8a4302eefe" dependencies = [ "async-trait", - "bitcoin", + "bitcoin 0.31.1", "miniscript", ] @@ -2679,7 +2759,7 @@ dependencies = [ name = "liana_ui" version = "0.1.0" dependencies = [ - "bitcoin", + "bitcoin 0.31.1", "chrono", "iced", ] @@ -2955,9 +3035,9 @@ version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86a23dd3ad145a980e231185d114399f25a0a307d2cd918010ddda6334323df9" dependencies = [ - "bech32", - "bitcoin", - "bitcoin-internals", + "bech32 0.10.0-beta", + "bitcoin 0.31.1", + "bitcoin-internals 0.2.0", "serde", ] @@ -3684,12 +3764,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.2" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5a410fc7882af66deb8d01d01737353cf3ad6204c408177ba494291a626312" +checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995" dependencies = [ "bytes", - "prost-derive 0.12.2", + "prost-derive 0.13.2", ] [[package]] @@ -3729,12 +3809,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.12.2" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065717a5dfaca4a83d2fe57db3487b311365200000551d7a364e715dbf4346bc" +checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.60", @@ -4257,8 +4337,19 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f622567e3b4b38154fb8190bcf6b160d7a4301d70595a49195b48c116007a27" dependencies = [ - "bitcoin_hashes 0.12.0", - "secp256k1-sys", + "bitcoin_hashes 0.13.0", + "secp256k1-sys 0.9.2", + "serde", +] + +[[package]] +name = "secp256k1" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" +dependencies = [ + "bitcoin_hashes 0.14.0", + "secp256k1-sys 0.10.1", "serde", ] @@ -4271,6 +4362,15 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + [[package]] name = "self_cell" version = "1.0.3" diff --git a/gui/Cargo.toml b/gui/Cargo.toml index a7e7fd52a..051c5ef89 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -15,7 +15,7 @@ path = "src/main.rs" [dependencies] async-trait = "0.1" -async-hwi = { version = "0.0.23" } +async-hwi = { git = "https://github.com/wizardsardine/async-hwi", branch = "bitbox-tapminiscript" } liana = { git = "https://github.com/wizardsardine/liana", branch = "master", default-features = false, features = ["nonblocking_shutdown"] } liana_ui = { path = "ui" } backtrace = "0.3" diff --git a/gui/src/hw.rs b/gui/src/hw.rs index eb21c1a45..0166ca2b7 100644 --- a/gui/src/hw.rs +++ b/gui/src/hw.rs @@ -873,7 +873,7 @@ fn ledger_version_supported(version: Option<&Version>) -> bool { // Kind and minimal version of devices supporting tapminiscript. // We cannot use a lazy_static HashMap yet, because DeviceKind does not implement Hash. -const DEVICES_COMPATIBLE_WITH_TAPMINISCRIPT: [(DeviceKind, Option); 4] = [ +const DEVICES_COMPATIBLE_WITH_TAPMINISCRIPT: [(DeviceKind, Option); 5] = [ ( DeviceKind::Ledger, Some(Version { @@ -894,6 +894,11 @@ const DEVICES_COMPATIBLE_WITH_TAPMINISCRIPT: [(DeviceKind, Option); 4] prerelease: None, }), ), + ( + DeviceKind::BitBox02, + // TODO: change for the real firmware release version + None, + ), ]; pub fn is_compatible_with_tapminiscript(