Merge branch 'nickez/high-fee-warning-wording'
What changed, and why it matters
This commit only changes the wording of an on-screen warning shown to users when a transaction fee is unusually high. The old message read 'The fee is X%\nthe send amount.' and now reads 'Fee is X%\nof the send amount.' The same change is applied to a related warning about fees relative to all inputs. No security logic, thresholds, or calculations are modified.
No security action required. This is a wording-only UI change. Reviewers may verify that the new strings are acceptable to product/UX and that translations are updated consistently.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch updates user-facing strings in src/rust/bitbox02-rust/src/workflow/transaction.rs and synchronizes the corresponding test vectors and unit tests in src/rust/bitbox-test-vectors and src/rust/bitbox02-rust/src/hww/api/cardano/sign_transaction.rs and ethereum/sign.rs. The warning_message helper now formats ‘Fee is {}%\nof the send amount.’ and ‘Fee is {}%\nof all inputs.’ instead of the previous phrasing. Test expectations are version-gated so pre-v9.28.0 behavior is preserved in historical vectors and post-v9.28.0 behavior uses the new wording.
Changed components
bitbox02-rust/src/workflow/transaction.rsbitbox02-rust/src/hww/api/cardano/sign_transaction.rs (tests only)bitbox02-rust/src/hww/api/ethereum/sign.rs (tests only)bitbox-test-vectors (tests and testdata only)Inspect captured patch +1532 / −98
### src/rust/bitbox-test-vectors/src/btc_transaction/cases/common.rs
@@ -57,7 +57,7 @@ pub fn transaction_vector(
options: psbt_options,
},
expected_needs_prevtxs,
- expectations,
+ expectations: super::screens::with_historical_fee_warnings(expectations),
registrations: vec![],
expected_signatures,
expected_generated_outputs: BTreeMap::new(),
### src/rust/bitbox-test-vectors/src/btc_transaction/cases/screens.rs
@@ -2,6 +2,7 @@
use super::common::SOME_XPUB;
use crate::btc_transaction::{Coin, Outcome, Screen, VersionExpectation};
+use semver::Version;
const TBTC_EXTERNAL_ADDRESS: &str =
"tb1pff8vkq80pu2cgtu7ttgad2znw62v2lguhw6ptrppwns6nrpqau2qcuz37d";
@@ -25,8 +26,54 @@ const PSBT_OTHER_ACCOUNT_ADDRESS_GROUPED: &str =
// cannot be mistaken for the screens shown by the device.
const COMPLETE_TRANSACTION_SCREEN_CAPTURE_VERSION: &str = "9.20.0";
const LOCKTIME_CONFIRMATION_UPDATE_VERSION: &str = "9.27.0";
+const HIGH_FEE_WORDING_UPDATE_VERSION: &str = "9.28.0";
pub const DEVICE_POLICY_XPUB: &str = "[4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv";
+/// Preserve the pre-v9.28 fee wording, splitting only ranges that span the wording change.
+pub(super) fn with_historical_fee_warnings(
+ expectations: Vec<VersionExpectation>,
+) -> Vec<VersionExpectation> {
+ let update_version = Version::parse(HIGH_FEE_WORDING_UPDATE_VERSION).unwrap();
+ let mut result = Vec::new();
+ for mut expectation in expectations {
+ if expectation
+ .min_version
+ .as_deref()
+ .is_some_and(|min| Version::parse(min).unwrap() >= update_version)
+ {
+ result.push(expectation);
+ continue;
+ }
+
+ let mut previous = expectation.clone();
+ for screen in &mut previous.screens {
+ if let Screen::Confirm { title, body, .. } = screen
+ && title == "High fee"
+ && let Some(message) = body.strip_prefix("Fee is ")
+ {
+ *body = format!(
+ "The fee is {}",
+ message.replace("%\nof the send amount.", "%\nthe send amount.")
+ );
+ }
+ }
+ if previous.screens == expectation.screens {
+ result.push(expectation);
+ } else if expectation
+ .max_version_exclusive
+ .as_deref()
+ .is_some_and(|max| Version::parse(max).unwrap() <= update_version)
+ {
+ result.push(previous);
+ } else {
+ previous.max_version_exclusive = Some(HIGH_FEE_WORDING_UPDATE_VERSION.into());
+ expectation.min_version = Some(HIGH_FEE_WORDING_UPDATE_VERSION.into());
+ result.extend([previous, expectation]);
+ }
+ }
+ result
+}
+
fn success(
min_version: Option<&str>,
max_version_exclusive: Option<&str>,
@@ -113,15 +160,15 @@ fn high_fee(percent: u32) -> Screen {
fn high_fee_decimal(percent: &str) -> Screen {
Screen::Confirm {
title: "High fee".into(),
- body: format!("The fee is {percent}%\nthe send amount.\nProceed?"),
+ body: format!("Fee is {percent}%\nof the send amount.\nProceed?"),
longtouch: true,
}
}
fn high_fee_total_inputs(percent: u32) -> Screen {
Screen::Confirm {
title: "High fee".into(),
- body: format!("The fee is {percent}.0%\nof all inputs.\nProceed?"),
+ body: format!("Fee is {percent}.0%\nof all inputs.\nProceed?"),
longtouch: true,
}
}
### src/rust/bitbox-test-vectors/src/btc_transaction/mod.rs
@@ -455,6 +455,93 @@ mod tests {
assert_eq!(super::try_generate_json().unwrap(), expected);
}
+ #[test]
+ fn test_test_vectors_high_fee_wording() {
+ let file = super::test_vectors();
+ for (id, version, expected) in [
+ (
+ "high-fee-rounding",
+ "9.20.0",
+ Some("The fee is 18.1%\nthe send amount.\nProceed?"),
+ ),
+ (
+ "high-fee-rounding",
+ "9.26.0",
+ Some("The fee is 18.1%\nthe send amount.\nProceed?"),
+ ),
+ (
+ "high-fee-rounding",
+ "9.27.2",
+ Some("The fee is 18.1%\nthe send amount.\nProceed?"),
+ ),
+ (
+ "high-fee-rounding",
+ "9.28.0",
+ Some("Fee is 18.1%\nof the send amount.\nProceed?"),
+ ),
+ (
+ "high-fee-rounding",
+ "10.0.0",
+ Some("Fee is 18.1%\nof the send amount.\nProceed?"),
+ ),
+ ("all-change-high-fee", "9.26.0", None),
+ (
+ "all-change-high-fee",
+ "9.27.1",
+ Some("The fee is 70.0%\nof all inputs.\nProceed?"),
+ ),
+ (
+ "all-change-high-fee",
+ "9.28.0",
+ Some("Fee is 70.0%\nof all inputs.\nProceed?"),
+ ),
+ (
+ "payment-request-owned-output",
+ "9.26.2",
+ Some("The fee is 50.0%\nthe send amount.\nProceed?"),
+ ),
+ ("payment-request-owned-output", "9.26.3", None),
+ ] {
+ let vector = file.vectors.iter().find(|vector| vector.id == id).unwrap();
+ let version = super::Version::parse(version).unwrap();
+ let expectations: Vec<_> = vector
+ .expectations
+ .iter()
+ .filter(|expectation| {
+ expectation
+ .min_version
+ .as_deref()
+ .is_none_or(|min| version >= super::Version::parse(min).unwrap())
+ && expectation
+ .max_version_exclusive
+ .as_deref()
+ .is_none_or(|max| version < super::Version::parse(max).unwrap())
+ })
+ .collect();
+ assert_eq!(expectations.len(), 1, "{id} at {version}");
+ let warnings: Vec<_> = expectations[0]
+ .screens
+ .iter()
+ .filter_map(|screen| match screen {
+ super::Screen::Confirm {
+ title,
+ body,
+ longtouch,
+ } if title == "High fee" => {
+ assert!(longtouch);
+ Some(body.as_str())
+ }
+ _ => None,
+ })
+ .collect();
+ assert_eq!(
+ warnings,
+ expected.into_iter().collect::<Vec<_>>(),
+ "{id} at {version}"
+ );
+ }
+ }
+
#[test]
fn test_validate_vector_identity() {
assert_invalid(|file| file.vectors[0].id.clear(), "empty id");
### src/rust/bitbox-test-vectors/testdata/btc-transaction-test-vectors.json
@@ -41,6 +41,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -66,6 +67,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "1.00000000 TBTC",
+ "fee": "0.80000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 400.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -123,6 +152,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -148,6 +178,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "2.00000000 TBTC",
+ "fee": "1.80000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 900.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -286,6 +344,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -323,6 +382,46 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "1-of-2\nBTC Testnet multisig",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "test wsh multisig",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -445,6 +544,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -506,6 +606,70 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n2 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test wsh policy",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "wsh(or_b(pk(@0/<0;1>/*),s:pk(@1/<0;1>/*)))",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/2",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 2/2",
+ "body": "tpubDFgycCkexSxkdZfeyaasDHityE97kiYM1BeCNoivDHvydGugKtoNobt4vEX6YSHNPy2cqmWQHKjKxciJuocepsGPGxcDZVmiMBnxgA1JKQk",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -628,6 +792,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -683,6 +848,64 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n1 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test tr keyspend policy",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "tr(@0/<0;1>/*)",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/1",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -811,6 +1034,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -872,57 +1096,121 @@
"body": "confirmed"
}
]
- }
- ],
- "registrations": [
- {
- "script_config": {
- "type": "policy",
- "policy": "tr(@0/<0;1>/*,pk(@1/<0;1>/*))",
- "keys": [
- {
- "xpub": "tpubDFgycCkexSxkdZfeyaasDHityE97kiYM1BeCNoivDHvydGugKtoNobt4vEX6YSHNPy2cqmWQHKjKxciJuocepsGPGxcDZVmiMBnxgA1JKQk"
- },
- {
- "root_fingerprint": "4c00739d",
- "keypath": "m/48'/1'/0'/3'",
- "xpub": "xpub6EhivkawbkKDTyZXUfDUntyKvkx4fcniJY3RRMdcvvkKTEt7gX7CfotifBsm1iDYzLpRk9pspB6g2r2sjxVePkCScgDmkPiGUAWg2ESMKNA"
- }
- ]
- },
- "name": "test tr scriptspend policy"
- }
- ],
- "expected_signatures": [
- {
- "input_index": 0,
- "kind": "taproot_script",
- "pubkey": "3a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b2",
- "leaf_hash": "c3aa2951885f3ddabebfba4eb4873dbdb2c41e287562d542cf8782e2a857071b",
- "sighash": "default"
- }
- ]
- },
- {
- "id": "taproot-to-non-taproot-change",
- "description": "Signs all-Taproot inputs with P2WPKH change, requiring previous transactions for the added non-Taproot output config.",
- "coin": "tbtc",
- "psbt": {
- "transaction": "70736274ff0100a60200000002f8e60a3e44fa93f5d7a7b57dc5983aac5d50f84071772938b4ddff45ce9bf3270000000000fffffffff8e60a3e44fa93f5d7a7b57dc5983aac5d50f84071772938b4ddff45ce9bf3270100000000ffffffff0200e1f505000000001600149e2597ee0b2fbffec6275bd6cab7d2b4737b6e95002d3101000000002251204a4ecb00ef0f15842f9e5ad1d6a8537694c57d1cbbb4158c2174e1a98c20ef140000000000010089020000000131313131313131313131313131313131313131313131313131313131313131310000000000ffffffff0200e1f505000000002251205745c9989285350a6aa88c88f6fb3c43e6bcce823446a0920eb3bc6a93995f1a00e1f5050000000022512036c6a3ef943986e3fdfb7d5a750ae013f746966f6fe0971d3bdc7360f29db4220000000001012b00e1f505000000002251205745c9989285350a6aa88c88f6fb3c43e6bcce823446a0920eb3bc6a93995f1a21166c9e72468f297c110e46bfedd7ffe83ab20470a1ae6a7fc13ccf94986541292e19004c00739d56000080010000800000008000000000000000000117206c9e72468f297c110e46bfedd7ffe83ab20470a1ae6a7fc13ccf94986541292e00010089020000000131313131313131313131313131313131313131313131313131313131313131310000000000ffffffff0200e1f505000000002251205745c9989285350a6aa88c88f6fb3c43e6bcce823446a0920eb3bc6a93995f1a00e1f5050000000022512036c6a3ef943986e3fdfb7d5a750ae013f746966f6fe0971d3bdc7360f29db4220000000001012b00e1f5050000000022512036c6a3ef943986e3fdfb7d5a750ae013f746966f6fe0971d3bdc7360f29db42221169e2a4b40d2c021b903ca48aa305545f56716f5c85e998bdc677d968a4057434319004c00739d56000080010000800000008000000000010000000117209e2a4b40d2c021b903ca48aa305545f56716f5c85e998bdc677d968a4057434300220202dca870342cf7bc12c2d6c23dc6a0761160b1ff54e820be4b48c8f3ba9a8dc239184c00739d54000080010000800000008001000000000000000000"
- },
- "expected_needs_prevtxs": true,
- "expectations": [
+ },
{
- "min_version": "9.20.0",
- "max_version_exclusive": "9.26.0",
+ "min_version": "9.28.0",
"outcome": "success",
"screens": [
{
- "type": "transaction_address",
- "amount": "0.20000000 TBTC",
- "address": "tb1pff8vkq80pu2cgtu7ttgad2znw62v2lguhw6ptrppwns6nrpqau2qcuz37d"
- },
- {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n2 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test tr scriptspend policy",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "tr(@0/<0;1>/*,pk(@1/<0;1>/*))",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/2",
+ "body": "tpubDFgycCkexSxkdZfeyaasDHityE97kiYM1BeCNoivDHvydGugKtoNobt4vEX6YSHNPy2cqmWQHKjKxciJuocepsGPGxcDZVmiMBnxgA1JKQk",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 2/2",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
+ }
+ ],
+ "registrations": [
+ {
+ "script_config": {
+ "type": "policy",
+ "policy": "tr(@0/<0;1>/*,pk(@1/<0;1>/*))",
+ "keys": [
+ {
+ "xpub": "tpubDFgycCkexSxkdZfeyaasDHityE97kiYM1BeCNoivDHvydGugKtoNobt4vEX6YSHNPy2cqmWQHKjKxciJuocepsGPGxcDZVmiMBnxgA1JKQk"
+ },
+ {
+ "root_fingerprint": "4c00739d",
+ "keypath": "m/48'/1'/0'/3'",
+ "xpub": "xpub6EhivkawbkKDTyZXUfDUntyKvkx4fcniJY3RRMdcvvkKTEt7gX7CfotifBsm1iDYzLpRk9pspB6g2r2sjxVePkCScgDmkPiGUAWg2ESMKNA"
+ }
+ ]
+ },
+ "name": "test tr scriptspend policy"
+ }
+ ],
+ "expected_signatures": [
+ {
+ "input_index": 0,
+ "kind": "taproot_script",
+ "pubkey": "3a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b2",
+ "leaf_hash": "c3aa2951885f3ddabebfba4eb4873dbdb2c41e287562d542cf8782e2a857071b",
+ "sighash": "default"
+ }
+ ]
+ },
+ {
+ "id": "taproot-to-non-taproot-change",
+ "description": "Signs all-Taproot inputs with P2WPKH change, requiring previous transactions for the added non-Taproot output config.",
+ "coin": "tbtc",
+ "psbt": {
+ "transaction": "70736274ff0100a60200000002f8e60a3e44fa93f5d7a7b57dc5983aac5d50f84071772938b4ddff45ce9bf3270000000000fffffffff8e60a3e44fa93f5d7a7b57dc5983aac5d50f84071772938b4ddff45ce9bf3270100000000ffffffff0200e1f505000000001600149e2597ee0b2fbffec6275bd6cab7d2b4737b6e95002d3101000000002251204a4ecb00ef0f15842f9e5ad1d6a8537694c57d1cbbb4158c2174e1a98c20ef140000000000010089020000000131313131313131313131313131313131313131313131313131313131313131310000000000ffffffff0200e1f505000000002251205745c9989285350a6aa88c88f6fb3c43e6bcce823446a0920eb3bc6a93995f1a00e1f5050000000022512036c6a3ef943986e3fdfb7d5a750ae013f746966f6fe0971d3bdc7360f29db4220000000001012b00e1f505000000002251205745c9989285350a6aa88c88f6fb3c43e6bcce823446a0920eb3bc6a93995f1a21166c9e72468f297c110e46bfedd7ffe83ab20470a1ae6a7fc13ccf94986541292e19004c00739d56000080010000800000008000000000000000000117206c9e72468f297c110e46bfedd7ffe83ab20470a1ae6a7fc13ccf94986541292e00010089020000000131313131313131313131313131313131313131313131313131313131313131310000000000ffffffff0200e1f505000000002251205745c9989285350a6aa88c88f6fb3c43e6bcce823446a0920eb3bc6a93995f1a00e1f5050000000022512036c6a3ef943986e3fdfb7d5a750ae013f746966f6fe0971d3bdc7360f29db4220000000001012b00e1f5050000000022512036c6a3ef943986e3fdfb7d5a750ae013f746966f6fe0971d3bdc7360f29db42221169e2a4b40d2c021b903ca48aa305545f56716f5c85e998bdc677d968a4057434319004c00739d56000080010000800000008000000000010000000117209e2a4b40d2c021b903ca48aa305545f56716f5c85e998bdc677d968a4057434300220202dca870342cf7bc12c2d6c23dc6a0761160b1ff54e820be4b48c8f3ba9a8dc239184c00739d54000080010000800000008001000000000000000000"
+ },
+ "expected_needs_prevtxs": true,
+ "expectations": [
+ {
+ "min_version": "9.20.0",
+ "max_version_exclusive": "9.26.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1pff8vkq80pu2cgtu7ttgad2znw62v2lguhw6ptrppwns6nrpqau2qcuz37d"
+ },
+ {
"type": "transaction_fee",
"amount": "1.00000000 TBTC",
"fee": "0.80000000 TBTC",
@@ -943,6 +1231,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -968,6 +1257,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "1.00000000 TBTC",
+ "fee": "0.80000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 400.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -1038,6 +1355,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -1063,6 +1381,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 BTC",
+ "address": "sp1q qgst e7k9 hx0q ftg6 qmwl kqtw uy6c ycya vzmz j85c 6qdf hjdp djtd gqju exzk 6mur w56s uy3e 0rd2 cgqv ycxt tddw svgx e2us fpxu mr70 xc9p kqwv"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "2.00000000 BTC",
+ "fee": "1.80000000 BTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 900.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -1158,6 +1504,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -1183,6 +1530,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "This BitBox (same account): tb1q l34n y8mc pgjq r0ng snjm lpzj pgnc yz2y gh2g ye"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.50000000 TBTC",
+ "fee": "0.30000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 150.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -1263,6 +1638,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -1288,6 +1664,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "This BitBox (account #2): tb1q vrcm 2akp 30d7 ecnq djk8 qdu0 9962 ak00 5rcp 6j"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.50000000 TBTC",
+ "fee": "0.30000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 150.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -1382,6 +1786,7 @@
},
{
"min_version": "9.27.2",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -1425,6 +1830,52 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "Test Merchant"
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Memo from: Test Merchant",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Memo 1/2",
+ "body": "TextMemo line1",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Memo 2/2",
+ "body": "TextMemo line2",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.50000000 TBTC",
+ "fee": "0.30000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 150.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -1914,6 +2365,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -1960,6 +2412,55 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "1.00000000 BTC",
+ "address": "12ZE w5Hc v1hT b6YU QJ69 y1V7 uhco Dz92 PH"
+ },
+ {
+ "type": "transaction_address",
+ "amount": "10.34567890 BTC",
+ "address": "34oV nh4g NviJ GMnN vgqu MeLA xvXJ uaRV MZ"
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.00006000 BTC",
+ "address": "bc1q xven xven xven xven xven xven xven xven 2ymj t8"
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.00007000 BTC",
+ "address": "bc1q g3zy g3zy g3zy g3zy g3zy g3zy g3zy g3zy g3zy g3zy g3zy g3zy g3zq d8sx w4"
+ },
+ {
+ "type": "confirm",
+ "title": "Warning",
+ "body": "There are 2\nchange outputs.\nProceed?",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "13.39999900 BTC",
+ "fee": "2.05419010 BTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 18.1%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2022,6 +2523,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2053,6 +2555,40 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 BTC",
+ "address": "Test Merchant"
+ },
+ {
+ "type": "swap",
+ "title": "Swap",
+ "from": "0.20000000 BTC",
+ "to": "0.25 ETH"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 BTC",
+ "fee": "0.10000000 BTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2160,6 +2696,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2185,6 +2722,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2236,6 +2801,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2261,6 +2827,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2312,6 +2906,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2337,6 +2932,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2429,6 +3052,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2460,6 +3084,40 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Locktime on block:\n10",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2552,6 +3210,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2583,6 +3242,40 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Locktime on block:\n10",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2675,6 +3368,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2706,6 +3400,40 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 LTC",
+ "address": "ltc1 qw50 8d6q ejxt dg4y 5r3z arva ry0c 5xw7 kgmn 4n9"
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Locktime on block:\n10",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 LTC",
+ "fee": "0.10000000 LTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -2798,6 +3526,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2829,9 +3558,43 @@
"body": "confirmed"
}
]
- }
- ],
- "expected_signatures": [
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 LTC",
+ "address": "ltc1 qw50 8d6q ejxt dg4y 5r3z arva ry0c 5xw7 kgmn 4n9"
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Locktime on block:\n10",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 LTC",
+ "fee": "0.10000000 LTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
+ }
+ ],
+ "expected_signatures": [
{
"input_index": 0,
"kind": "ecdsa",
@@ -2880,6 +3643,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -2905,6 +3669,34 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 BTC",
+ "address": "bc1p mg5d hafm s6h9 nts4 dteh gkan ym6y eccf mk5h x3ts 3jxn m4zh 2knq v80h a5"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 BTC",
+ "fee": "0.10000000 BTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -3092,6 +3884,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -3123,6 +3916,40 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "OP_RETURN\ndata (hex)",
+ "body": "0102030405",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -3256,6 +4083,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -3276,6 +4104,29 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "transaction_fee",
+ "amount": "0.70000000 BTC",
+ "fee": "0.70000000 BTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 70.0%\nof all inputs.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -3328,6 +4179,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -3354,6 +4206,35 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "OP_RETURN",
+ "body": "metadata",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.70000000 BTC",
+ "fee": "0.70000000 BTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 70.0%\nof all inputs.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"expected_signatures": [
@@ -3498,6 +4379,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -3535,6 +4417,46 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "1-of-2\nBTC Testnet multisig",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "test sh-wsh multisig",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -3642,6 +4564,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -3679,6 +4602,46 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "7-of-15\nBTC Testnet multisig",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "test large multisig",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -3820,6 +4783,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -3881,45 +4845,109 @@
"body": "confirmed"
}
]
- }
- ],
- "registrations": [
- {
- "script_config": {
- "type": "policy",
- "policy": "tr(@0/**,pk(@1/**))",
- "keys": [
- {
- "root_fingerprint": "4c00739d",
- "keypath": "m/48'/1'/0'/3'",
- "xpub": "xpub6EhivkawbkKDTyZXUfDUntyKvkx4fcniJY3RRMdcvvkKTEt7gX7CfotifBsm1iDYzLpRk9pspB6g2r2sjxVePkCScgDmkPiGUAWg2ESMKNA"
- },
- {
- "xpub": "tpubDFfyBnQAERJZWHv4W5rrhkpKJnPjycGzBpv8H1WgFjpkK7bVpuKw6JkeNvXqJix6csrQP3QgPZ19Yed2kbc7sniVHtNiQkX3cHsBxEqnz7Y"
- }
- ]
- },
- "name": "test tr tweaked keyspend"
- }
- ],
- "expected_signatures": [
+ },
{
- "input_index": 0,
- "kind": "taproot_key",
- "pubkey": "3a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b2",
- "sighash": "default"
- }
- ]
- },
- {
- "id": "policy-tr-unspendable-internal-key",
- "description": "Signs a Taproot script path with a provably unspendable internal key and displays that property in the policy review.",
- "coin": "tbtc",
- "psbt": {
- "transaction": "70736274ff0100890200000001a8346bd79715029f26a2628a872d2299934cfc774bb3c4e52209ef404f07278f0000000000ffffffff02801d2c0400000000225120f191a4cb0a3d8f8b47251bc375159b8ff3aac672264cb0e0c9c5adeba37a09e4002d3101000000002251204a4ecb00ef0f15842f9e5ad1d6a8537694c57d1cbbb4158c2174e1a98c20ef14000000000001012b00e1f50500000000225120c5340ec5fb5662a6ef7290f9dffedf9c727d503c2f69377cb4c8560e9f02e45b4114bc0eab168b76abf60a0a6f3c197ea0f9b7973e27ca1aba50daa09c62de813c68e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c08558405d9d7da26d848dd9562ab95b348ac6414e1bc28a2f8ccd839b7dd5b452abc513d099a0f0efcd011fdcc9b5f18b3c69cb9122391b751e274a67dc74b61757ab5d2215c01ab64872242fff67a9cc2429d50bd615532e55122665e448ae0e53a3f4a2ce594720bc0eab168b76abf60a0a6f3c197ea0f9b7973e27ca1aba50daa09c62de813c68ac203a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b2ba529cc021161ab64872242fff67a9cc2429d50bd615532e55122665e448ae0e53a3f4a2ce590d007c461e5d000000000000000021163a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b23d01e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c085584c00739d3000008001000080000000800300008000000000000000002116bc0eab168b76abf60a0a6f3c197ea0f9b7973e27ca1aba50daa09c62de813c683d01e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c0855808f56e293000008001000080000000800300008000000000000000000117201ab64872242fff67a9cc2429d50bd615532e55122665e448ae0e53a3f4a2ce59011820e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c0855800010520349092f96b1dd44a23e6a05986e7934bae5d6a87b9a050c1e13b38a0ae4e52c101064900c04620dbe4edc0edbcb5f212c9fa1d1bcbdb4b3f6e875a5ea52ac3cafed4057379302bac208c35dddf5bd951db2bf053d944200d11f029f37af9b5255025338f7eb9aae44aba529c2107349092f96b1dd44a23e6a05986e7934bae5d6a87b9a050c1e13b38a0ae4e52c10d007c461e5d010000000000000021078c35dddf5bd951db2bf053d944200d11f029f37af9b5255025338f7eb9aae44a3d014b40a0f212ea2f428474b933288cec2f2a50121ba995173e8d601dbb1b2d9a784c00739d3000008001000080000000800300008001000000000000002107dbe4edc0edbcb5f212c9fa1d1bcbdb4b3f6e875a5ea52ac3cafed4057379302b3d014b40a0f212ea2f428474b933288cec2f2a50121ba995173e8d601dbb1b2d9a7808f56e293000008001000080000000800300008001000000000000000000",
- "options": {
- "force_script_config": {
- "script_config": {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n2 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test tr tweaked keyspend",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "tr(@0/**,pk(@1/**))",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/2",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 2/2",
+ "body": "tpubDFfyBnQAERJZWHv4W5rrhkpKJnPjycGzBpv8H1WgFjpkK7bVpuKw6JkeNvXqJix6csrQP3QgPZ19Yed2kbc7sniVHtNiQkX3cHsBxEqnz7Y",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
+ }
+ ],
+ "registrations": [
+ {
+ "script_config": {
+ "type": "policy",
+ "policy": "tr(@0/**,pk(@1/**))",
+ "keys": [
+ {
+ "root_fingerprint": "4c00739d",
+ "keypath": "m/48'/1'/0'/3'",
+ "xpub": "xpub6EhivkawbkKDTyZXUfDUntyKvkx4fcniJY3RRMdcvvkKTEt7gX7CfotifBsm1iDYzLpRk9pspB6g2r2sjxVePkCScgDmkPiGUAWg2ESMKNA"
+ },
+ {
+ "xpub": "tpubDFfyBnQAERJZWHv4W5rrhkpKJnPjycGzBpv8H1WgFjpkK7bVpuKw6JkeNvXqJix6csrQP3QgPZ19Yed2kbc7sniVHtNiQkX3cHsBxEqnz7Y"
+ }
+ ]
+ },
+ "name": "test tr tweaked keyspend"
+ }
+ ],
+ "expected_signatures": [
+ {
+ "input_index": 0,
+ "kind": "taproot_key",
+ "pubkey": "3a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b2",
+ "sighash": "default"
+ }
+ ]
+ },
+ {
+ "id": "policy-tr-unspendable-internal-key",
+ "description": "Signs a Taproot script path with a provably unspendable internal key and displays that property in the policy review.",
+ "coin": "tbtc",
+ "psbt": {
+ "transaction": "70736274ff0100890200000001a8346bd79715029f26a2628a872d2299934cfc774bb3c4e52209ef404f07278f0000000000ffffffff02801d2c0400000000225120f191a4cb0a3d8f8b47251bc375159b8ff3aac672264cb0e0c9c5adeba37a09e4002d3101000000002251204a4ecb00ef0f15842f9e5ad1d6a8537694c57d1cbbb4158c2174e1a98c20ef14000000000001012b00e1f50500000000225120c5340ec5fb5662a6ef7290f9dffedf9c727d503c2f69377cb4c8560e9f02e45b4114bc0eab168b76abf60a0a6f3c197ea0f9b7973e27ca1aba50daa09c62de813c68e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c08558405d9d7da26d848dd9562ab95b348ac6414e1bc28a2f8ccd839b7dd5b452abc513d099a0f0efcd011fdcc9b5f18b3c69cb9122391b751e274a67dc74b61757ab5d2215c01ab64872242fff67a9cc2429d50bd615532e55122665e448ae0e53a3f4a2ce594720bc0eab168b76abf60a0a6f3c197ea0f9b7973e27ca1aba50daa09c62de813c68ac203a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b2ba529cc021161ab64872242fff67a9cc2429d50bd615532e55122665e448ae0e53a3f4a2ce590d007c461e5d000000000000000021163a1712b41eb509147fbbd80c3fac4af4ad0f0eaeaef36e6e08918002afd8e9b23d01e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c085584c00739d3000008001000080000000800300008000000000000000002116bc0eab168b76abf60a0a6f3c197ea0f9b7973e27ca1aba50daa09c62de813c683d01e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c0855808f56e293000008001000080000000800300008000000000000000000117201ab64872242fff67a9cc2429d50bd615532e55122665e448ae0e53a3f4a2ce59011820e0ed23b292365b738059122f0e9f6887887b474a1e9593cb55e872c7a0c0855800010520349092f96b1dd44a23e6a05986e7934bae5d6a87b9a050c1e13b38a0ae4e52c101064900c04620dbe4edc0edbcb5f212c9fa1d1bcbdb4b3f6e875a5ea52ac3cafed4057379302bac208c35dddf5bd951db2bf053d944200d11f029f37af9b5255025338f7eb9aae44aba529c2107349092f96b1dd44a23e6a05986e7934bae5d6a87b9a050c1e13b38a0ae4e52c10d007c461e5d010000000000000021078c35dddf5bd951db2bf053d944200d11f029f37af9b5255025338f7eb9aae44a3d014b40a0f212ea2f428474b933288cec2f2a50121ba995173e8d601dbb1b2d9a784c00739d3000008001000080000000800300008001000000000000002107dbe4edc0edbcb5f212c9fa1d1bcbdb4b3f6e875a5ea52ac3cafed4057379302b3d014b40a0f212ea2f428474b933288cec2f2a50121ba995173e8d601dbb1b2d9a7808f56e293000008001000080000000800300008001000000000000000000",
+ "options": {
+ "force_script_config": {
+ "script_config": {
"type": "policy",
"policy": "tr(@0/<0;1>/*,multi_a(2,@1/<0;1>/*,@2/<0;1>/*))",
"keys": [
@@ -4021,6 +5049,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -4088,6 +5117,76 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n3 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test unspendable policy",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "tr(@0/<0;1>/*,multi_a(2,@1/<0;1>/*,@2/<0;1>/*))",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/3",
+ "body": "Provably unspendable: tpubD6NzVbkrYhZ4XnyFMCH9qsN7VhcUSwyj5MN4juKrFBbgE9e3qCpEQsHSmq4zHA2FAkSwBQEzFGKjvXtb2xrRLioqRdqAkqN3Y9WrBf7yNj8",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 2/3",
+ "body": "tpubDF93VcTYKK2grTowjbqJMst4gS19G6rtWTNKcBnxCpQfs2BaFShNYoBDisxqhTsBWj4YhigxVArhhZN43NyWBH4E3puXS7tCrHsbjb2dvBi",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 3/3",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -4234,6 +5333,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -4301,6 +5401,76 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n3 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test complex unspendable",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "tr(@0/<0;1>/*,{and_v(v:multi_a(1,@1/<2;3>/*,@2/<2;3>/*),older(2)),multi_a(2,@1/<0;1>/*,@2/<0;1>/*)})",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/3",
+ "body": "Provably unspendable: tpubD6NzVbkrYhZ4YRYppNDw8BpfEz6cSU8qt45Eoqpj8YtPLFXoZsb3dYdAyLFp32GeY3b5ccVdtr45ajBGBDHgapb53xT9kMBcpHSF7yA8kXm",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 2/3",
+ "body": "[4040280c/48'/1'/0'/2']tpubDEWR7iVng7GH7BhbVBa6avnELDTSWEWHtAethvSrYYLEFm1XB1qT4Fb9xkPGZ9S7zU1FFrpVc6wRSo5BRNYvDAP7Edr5a6FJSjeCt7tWgQR",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 3/3",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -4369,6 +5539,7 @@
},
{
"min_version": "9.27.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -4430,6 +5601,70 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n1 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test timestamp locktime",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "wsh(and_v(v:pk(@0/**),after(1800000000)))",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/1",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Locktime (UTC):\n2027-01-15\n08:00:00",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
@@ -4552,6 +5787,7 @@
},
{
"min_version": "9.26.0",
+ "max_version_exclusive": "9.28.0",
"outcome": "success",
"screens": [
{
@@ -4613,6 +5849,70 @@
"body": "confirmed"
}
]
+ },
+ {
+ "min_version": "9.28.0",
+ "outcome": "success",
+ "screens": [
+ {
+ "type": "confirm",
+ "title": "Spend from",
+ "body": "BTC Testnet\npolicy with\n2 keys",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Name",
+ "body": "test multipath policy",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "",
+ "body": "Show policy\ndetails?",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Policy",
+ "body": "wsh(multi(2,@0/<10;11>/*,@1/<20;21>/*))",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 1/2",
+ "body": "This device: [4c00739d/48'/1'/0'/3']tpubDF5MSzQdK2GfjmkNvrCZzpJhFt3if1HmrAdimugmGqWDCXYpkjxHpFZYuDxYYDAnnFMLMjLkMGvij2XV8pLtHBejgGy5RvNW4875nFGBDWv",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "Key 2/2",
+ "body": "tpubDFfyBnQAERJZWHv4W5rrhkpKJnPjycGzBpv8H1WgFjpkK7bVpuKw6JkeNvXqJix6csrQP3QgPZ19Yed2kbc7sniVHtNiQkX3cHsBxEqnz7Y",
+ "longtouch": false
+ },
+ {
+ "type": "transaction_address",
+ "amount": "0.20000000 TBTC",
+ "address": "tb1p ff8v kq80 pu2c gtu7 ttga d2zn w62v 2lgu hw6p trpp wns6 nrpq au2q cuz3 7d"
+ },
+ {
+ "type": "transaction_fee",
+ "amount": "0.30000000 TBTC",
+ "fee": "0.10000000 TBTC",
+ "longtouch": false
+ },
+ {
+ "type": "confirm",
+ "title": "High fee",
+ "body": "Fee is 50.0%\nof the send amount.\nProceed?",
+ "longtouch": true
+ },
+ {
+ "type": "status",
+ "title": "Transaction",
+ "body": "confirmed"
+ }
+ ]
}
],
"registrations": [
### src/rust/bitbox02-rust/src/hww/api/cardano/sign_transaction.rs
@@ -1090,7 +1090,7 @@ mod tests {
},
Screen::Confirm {
title: "High fee".into(),
- body: "The fee is 17.0%\nthe send amount.\nProceed?".into(),
+ body: "Fee is 17.0%\nof the send amount.\nProceed?".into(),
longtouch: true
},
Screen::Status {
@@ -1305,7 +1305,7 @@ mod tests {
},
Screen::Confirm {
title: "High fee".into(),
- body: "The fee is 17.0%\nthe send amount.\nProceed?".into(),
+ body: "Fee is 17.0%\nof the send amount.\nProceed?".into(),
longtouch: true
},
Screen::Status {
@@ -1357,7 +1357,7 @@ mod tests {
assert!(
mock_hal
.ui
- .contains_confirm("High fee", "The fee is 17.0%\nthe send amount.\nProceed?")
+ .contains_confirm("High fee", "Fee is 17.0%\nof the send amount.\nProceed?")
);
}
### src/rust/bitbox02-rust/src/hww/api/ethereum/sign.rs
@@ -938,7 +938,7 @@ mod tests {
},
Screen::Confirm {
title: "High fee".into(),
- body: "The fee is 12.0%\nthe send amount.\nProceed?".into(),
+ body: "Fee is 12.0%\nof the send amount.\nProceed?".into(),
longtouch: true,
},
Screen::Status {
@@ -1000,7 +1000,7 @@ mod tests {
},
Screen::Confirm {
title: "High fee".into(),
- body: "The fee is 12.0%\nthe send amount.\nProceed?".into(),
+ body: "Fee is 12.0%\nof the send amount.\nProceed?".into(),
longtouch: true,
},
Screen::Status {
### src/rust/bitbox02-rust/src/workflow/transaction.rs
@@ -23,10 +23,10 @@ impl FeePercentageBasis {
fn warning_message(&self, fee_percentage: &str) -> String {
match self {
FeePercentageBasis::SendAmount => {
- format!("The fee is {}%\nthe send amount.\nProceed?", fee_percentage)
+ format!("Fee is {}%\nof the send amount.\nProceed?", fee_percentage)
}
FeePercentageBasis::TotalInputs => {
- format!("The fee is {}%\nof all inputs.\nProceed?", fee_percentage)
+ format!("Fee is {}%\nof all inputs.\nProceed?", fee_percentage)
}
}
}Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.