From 7eb6fcf43c7413d336dc194c7e64b1a221114675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Jas=CC=8Cko?= Date: Fri, 8 Dec 2023 13:48:53 +0100 Subject: [PATCH] feat(cardano): Tag sets --- common/protob/messages-cardano.proto | 1 + .../fixtures/cardano/sign_tx.failed.json | 210 ++++++++----- common/tests/fixtures/cardano/sign_tx.json | 222 ++++++++++---- .../cardano/sign_tx.multisig.failed.json | 54 ++-- .../fixtures/cardano/sign_tx.multisig.json | 27 +- .../cardano/sign_tx.plutus.failed.json | 15 +- .../fixtures/cardano/sign_tx.plutus.json | 158 ++++++++-- .../cardano/sign_tx.show_details.json | 27 +- .../fixtures/cardano/sign_tx.slip39.json | 9 +- ...ign_tx_stake_pool_registration.failed.json | 80 +++-- .../sign_tx_stake_pool_registration.json | 21 +- .../helpers/hash_builder_collection.py | 13 + core/src/apps/cardano/sign_tx/signer.py | 69 +++-- core/src/apps/common/cbor.py | 10 +- core/src/trezor/messages.py | 2 + core/tests/test_apps.common.cbor.py | 17 ++ python/src/trezorlib/cardano.py | 2 + python/src/trezorlib/cli/cardano.py | 3 + python/src/trezorlib/messages.py | 3 + .../src/protos/generated/messages_cardano.rs | 276 ++++++++++-------- tests/device_tests/cardano/test_sign_tx.py | 1 + 21 files changed, 847 insertions(+), 373 deletions(-) diff --git a/common/protob/messages-cardano.proto b/common/protob/messages-cardano.proto index 738fdba80b..0f259027a1 100644 --- a/common/protob/messages-cardano.proto +++ b/common/protob/messages-cardano.proto @@ -235,6 +235,7 @@ message CardanoSignTxInit { optional uint64 total_collateral = 20; optional uint32 reference_inputs_count = 21 [default=0]; optional bool chunkify = 22; // display the address in chunks of 4 characters + optional bool tag_cbor_sets = 23 [default=false]; // use tag 258 for sets in cbor } /** diff --git a/common/tests/fixtures/cardano/sign_tx.failed.json b/common/tests/fixtures/cardano/sign_tx.failed.json index 1a3911c26b..d993594a3c 100644 --- a/common/tests/fixtures/cardano/sign_tx.failed.json +++ b/common/tests/fixtures/cardano/sign_tx.failed.json @@ -37,7 +37,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid input" @@ -76,7 +77,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -115,7 +117,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -154,7 +157,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -193,7 +197,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -232,7 +237,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -271,7 +277,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Fee is out of range" @@ -315,7 +322,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Total transaction amount is out of range!" @@ -354,7 +362,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Output address network mismatch" @@ -393,7 +402,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Output address network mismatch" @@ -432,7 +442,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -471,7 +482,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -510,7 +522,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid network id/protocol magic combination!" @@ -549,7 +562,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid network id/protocol magic combination!" @@ -588,7 +602,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -630,7 +645,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output" @@ -674,7 +690,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -718,7 +735,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -762,7 +780,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -806,7 +825,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -851,7 +871,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -896,7 +917,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -941,7 +963,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -985,7 +1008,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1029,7 +1053,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1073,7 +1098,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1117,7 +1143,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1161,7 +1188,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1206,7 +1234,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1251,7 +1280,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -1292,7 +1322,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid auxiliary data" @@ -1341,7 +1372,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address parameters" @@ -1392,7 +1424,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid auxiliary data" @@ -1449,7 +1482,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid auxiliary data" @@ -1489,7 +1523,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output datum hash" @@ -1528,7 +1563,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid script data hash" @@ -1573,7 +1609,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1615,7 +1652,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1654,7 +1692,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1698,7 +1737,8 @@ ], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1739,7 +1779,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output" @@ -1781,7 +1822,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output" @@ -1826,7 +1868,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid change output path" @@ -1871,7 +1914,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid change output staking path" @@ -1916,7 +1960,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address parameters" @@ -1955,7 +2000,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address" @@ -1999,7 +2045,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate path" @@ -2043,7 +2090,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -2097,7 +2145,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid token bundle in output" @@ -2156,7 +2205,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid token bundle in output" @@ -2209,7 +2259,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid mint token bundle" @@ -2267,7 +2318,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid mint token bundle" @@ -2325,7 +2377,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid token bundle in output" @@ -2393,7 +2446,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid token bundle in output" @@ -2450,7 +2504,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid mint token bundle" @@ -2517,7 +2572,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid mint token bundle" @@ -2560,7 +2616,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -2603,7 +2660,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -2644,7 +2702,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address parameters" @@ -2734,7 +2793,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -2777,7 +2837,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -2871,7 +2932,8 @@ "path": "m/1855'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -2916,7 +2978,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -2960,7 +3023,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -3004,7 +3068,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -3054,7 +3119,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -3104,7 +3170,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -3153,7 +3220,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -3197,7 +3265,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -3238,7 +3307,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" diff --git a/common/tests/fixtures/cardano/sign_tx.json b/common/tests/fixtures/cardano/sign_tx.json index 69a99deaf2..102bc9fbed 100644 --- a/common/tests/fixtures/cardano/sign_tx.json +++ b/common/tests/fixtures/cardano/sign_tx.json @@ -37,7 +37,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "73e09bdebf98a9e0f17f86a2d11e0f14f4f8dae77cdf26ff1678e821f20c8db6", @@ -89,7 +90,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "81b14b7e62972127eb33c0b1198de6430540ad3a98eec621a3194f2baac43a43", @@ -142,7 +144,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "16fe72bb198be423677577e6326f1f648ec5fc11263b072006382d8125a6edda", @@ -204,7 +207,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "7e16a0b47bdfc37abf4ddd3143f7481af07ffe7abd68f752676f5b0b2890d05b", @@ -275,7 +279,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "5ddbb530b8a89e2b08fc91db03950c876c4a9c1c3fb6e628c4cab638b1c97648", @@ -329,7 +334,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1fc82ce2420c173a0947eaf49af76fcd6f4e400e2bfb5fa152a482ea12dde24b", @@ -383,7 +389,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "abd1b24ac0638251398444ee136110f952738df32a512ce35894f8453d0e8edf", @@ -436,7 +443,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "d1610bb89bece22ed3158738bc1fbb31c6af0685053e2993361e3380f49afad9", @@ -489,7 +497,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1d6fc2044d54d4af5b44e4be4c1ce3670fe4d2e37523a945d087252c27b215f2", @@ -544,7 +553,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "40535fa8f88515f1da008d3cdf544cf9dbf1675c3cb0adb13b74b9293f1b7096", @@ -596,7 +606,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "d3570557b197604109481a80aeb66cd2cfabc57f802ad593bacc12eb658e5d72", @@ -648,7 +659,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1a3a295908afd8b2afc368071272d6964be6ee0af062bb765aea65ca454dc0c9", @@ -701,7 +713,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "e200b2c91f3493a1f3b9cfc8b6c141f70181741025e53941e9d57d22b1470c5c", @@ -711,6 +724,72 @@ "pub_key": "5d010cf16fdeff40955633d6c565f3844a288a24967cf6b76acbeb271b4f13c1", "signature": "79a357517a08c7256b0fab1e93a92a477386f4c2d72cea7bc68527c0133c32472305f010350665d72e8017bb6c2080b5742680ce7700bbddda561c917f294a07", "chain_code": null + }, + { + "type": 1, + "pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e", + "signature": "dca542910d0362fc22744e7a24732343db4e013495a7d9b47562886f09af8eb56ecaa105e20a9df3e4248fdab61dd91b6fb2a3bfc15d0d9a0442671c07e1ba02", + "chain_code": null + } + ] + } + }, + { + "description": "transaction with conway stake registration certificate and 258-tagged sets", + "parameters": { + "protocol_magic": 764824073, + "network_id": 1, + "fee": 42, + "ttl": 10, + "validity_interval_start": null, + "certificates": [ + { + "type": 7, + "path": "m/1852'/1815'/0'/2/0", + "deposit": 2000000 + } + ], + "withdrawals": [], + "auxiliary_data": null, + "inputs": [ + { + "path": "m/1852'/1815'/0'/0/0", + "prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7", + "prev_index": 0 + } + ], + "outputs": [ + { + "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", + "amount": "1" + } + ], + "mint": [], + "script_data_hash": null, + "collateral_inputs": [], + "required_signers": [], + "collateral_return": null, + "total_collateral": null, + "reference_inputs": [], + "signing_mode": "ORDINARY_TRANSACTION", + "additional_witness_requests": [], + "include_network_id": false, + "tag_cbor_sets": true + }, + "result": { + "tx_hash": "5e27f8fba938603411452a8cb373462fb64305539573b7a9edc9155be5cd6473", + "witnesses": [ + { + "type": 1, + "pub_key": "5d010cf16fdeff40955633d6c565f3844a288a24967cf6b76acbeb271b4f13c1", + "signature": "13c136487d8048ab7bbb081a324aa6b999e0b3237f956503b5446a4c409ec1062091b82e9e5459dee7ab0ba67ed874692d788872c8bbdb5ad4a3975c465fea09", + "chain_code": null + }, + { + "type": 1, + "pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e", + "signature": "f0674db7194d8e04d7df416af8ad9dcf1b1203ca4b78f14c1e394d47418c8f7e95fd41a8f01c43eeeb39df6264359c865a41621fc1e6b540819b25c7c4df5803", + "chain_code": null } ] } @@ -748,7 +827,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "03535791d04fc1b4457fada025f1c1f7778b5c2d7fa580bbac8abd53b85d3255", @@ -805,7 +885,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "439764b5f7e08839881536a3191faeaf111e75d9f00f83b102c5c1c6fa9fcaf9", @@ -863,7 +944,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "3aca1784d151dc75bdbb80fae71bda3f4b26af3f5fd71bd5e9e9bbcdd2b64ad1", @@ -922,7 +1004,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "564ad55097101e1ca85629cffe839f43a19bf33aa1940c99a62eb8f14392eebb", @@ -985,7 +1068,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "22c67f12e6f6aa0f2f09fd27d472b19c7208ccd7c3af4b09604fd5d462c1de2b", @@ -1044,7 +1128,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "cc068a25994ef6a90cdab8adfbe302d6f742de9901ba2495dd64a09f2ef951f5", @@ -1106,7 +1191,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1669062fd6efc4f11ed8ae9511a9c9f4454fa4f64e2043483f99d7c711236664", @@ -1168,7 +1254,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "fccf753e4f96e20c880e5ea933041ed33509ec6c0dc1aee8b25a1fe3d562b7aa", @@ -1229,7 +1316,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "01d0f76fadc899087c5352befac56cbfdc2e868ac715fbfe00230bab3f7fa751", @@ -1290,7 +1378,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "567e9bd00787190f1ab51879dcf834002b76007130c526b2e4d1bf9a996f5ad0", @@ -1345,7 +1434,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1875f1d59a53f1cb4c43949867d72bcfd857fa3b64feb88f41b78ddaa1a21cbf", @@ -1403,7 +1493,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "839a587109358e0aa81b8fb3d5fa74665fac303425ec544a4db7f6ba4e882dff", @@ -1476,7 +1567,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "15e4e382d913a743776b93d730fee3ca39bfa3ee203801205333bc9aad249612", @@ -1546,7 +1638,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "98357cec961c4c2bfef747bb204a06945ab55077166ec4367b644882136b8b39", @@ -1611,7 +1704,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "a5c5506777fb62aa98e6c45f1c85ab9ddf706a1f199e777c43f2288a6b4fdcab", @@ -1679,7 +1773,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "c5b5f451fb5992e97ab50364467348c1899a2c8972d2d79ae5893bbac37eb51f", @@ -1744,7 +1839,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "c5b5f451fb5992e97ab50364467348c1899a2c8972d2d79ae5893bbac37eb51f", @@ -1805,7 +1901,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "47cf79f20c6c62edb4162b3b232a57afc1bd0b57c7fd8389555276408a004776", @@ -1869,7 +1966,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "b7269ddc59e4094a6581c653e0d5dc1e553e3a5fb6ffae47d3d094dff1cfe87b", @@ -1946,7 +2044,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "0b929def7bd9f44f5602f809bc0f9be30521f6b93d625525cf33b956993bfb22", @@ -1995,7 +2094,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "b621e22f7cb9aac1a70a3362fde88bdfd31fc100e20f3f3c24a7b853536b4f50", @@ -2053,7 +2153,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "00d393f7fc9a8c17b3efccb44dad9d7e15fdaf2d942a3a455b52b5be016066dd", @@ -2112,7 +2213,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "f4b7315ec080d05024d1f7bf6795dd234c6624970d8e272a245702de539feaa2", @@ -2165,7 +2267,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "cabc87a76ad8944e8a97a7cbf9c893a77ed7d1bd963c428c3786d663adb7f0dd", @@ -2317,7 +2420,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "f98e1b5edfd376356eb211103bfae679380929bf7fbc40b3355a68e98111d091", @@ -2442,7 +2546,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "042c1d3a6eab693d2ea6b186a88aed038159e7eb581da80464bca7339fb9afe0", @@ -2495,7 +2600,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": true + "include_network_id": true, + "tag_cbor_sets": false }, "result": { "tx_hash": "4fcd4532bb0a9dfff2368e60be80d46819a92a9acfb2c64a7bf5975040789bac", @@ -2543,7 +2649,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8ea2765f1e46d84f02d8b25a5f0cf445aaeaadcab913e17e59388a4f898ca812", @@ -2593,7 +2700,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "b90ad6dd0e1155559bd3e66f2fce91f4c85598d47c90922f01e121ea4f51f96e", @@ -2640,7 +2748,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "06d6587ddd79e000b6922c54069b78bb931b0cba06d97ba4171f3ce6590438d2", @@ -2687,7 +2796,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8606e5b69b5c40bd359d7bad6ed6f77810b8e8acba6cbca298c13f92b11178d4", @@ -2738,7 +2848,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8c328640f974f47cecbcaed56e46c3ba4f2ea6769e6e3528915deb3bb518aa06", @@ -2821,7 +2932,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "b664d33bfcbfc1b54f34c813438ab4dac788ce715a3461f85142c4d19460e949", @@ -2871,7 +2983,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "719d33e1e2811f82046951dccee1a9af82d8fe1d8abc36d581a9eccc421c3204", @@ -2923,7 +3036,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "821e8163c5cf225c09f338f385c81e4326610f830e2abb89f9961e20741e6b70", @@ -3066,7 +3180,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "f1bda77315626ce61c784f3e60a74128f29b7d00a0c8baca030464293da2d7c4", @@ -3119,7 +3234,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "f2c5b7bd408add0234e2302d1b46cc72e0af8a88e6d12add95d230c51febdb04", @@ -3171,7 +3287,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "62baf68499258a35809faab713420d7d609dd0a1a3bbc5f6e3332917cf5ddece", @@ -3223,7 +3340,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "ac4bdaaf2288a0108654919e7f89811b32274d54da834162e407635db39de4f4", diff --git a/common/tests/fixtures/cardano/sign_tx.multisig.failed.json b/common/tests/fixtures/cardano/sign_tx.multisig.failed.json index caf6fe7bc2..d6bcd7c370 100644 --- a/common/tests/fixtures/cardano/sign_tx.multisig.failed.json +++ b/common/tests/fixtures/cardano/sign_tx.multisig.failed.json @@ -45,7 +45,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -92,7 +93,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -142,7 +144,8 @@ "path": "m/1854'/1815'/2'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -192,7 +195,8 @@ "path": "m/1854'/1815'/2'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -240,7 +244,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -288,7 +293,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -335,7 +341,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -382,7 +389,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -433,7 +441,8 @@ "reference_inputs": [], "signing_mode": "MULTISIG_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -480,7 +489,8 @@ "reference_inputs": [], "signing_mode": "MULTISIG_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid withdrawal" @@ -522,7 +532,8 @@ "path": "m/1852'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -566,7 +577,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output" @@ -608,7 +620,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -701,7 +714,8 @@ "path": "m/1855'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid witness request" @@ -748,7 +762,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -793,7 +808,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -835,7 +851,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -882,7 +899,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" diff --git a/common/tests/fixtures/cardano/sign_tx.multisig.json b/common/tests/fixtures/cardano/sign_tx.multisig.json index 44051c5004..a5e47f6749 100644 --- a/common/tests/fixtures/cardano/sign_tx.multisig.json +++ b/common/tests/fixtures/cardano/sign_tx.multisig.json @@ -94,7 +94,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "042c1d3a6eab693d2ea6b186a88aed038159e7eb581da80464bca7339fb9afe0", @@ -155,7 +156,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "ed9fc2755091fa72b58e9dd06db05cce87c0c6f3962f587d5fc348fe478f0752", @@ -218,7 +220,8 @@ "path": "m/1854'/1815'/0'/2/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "26fb07b23368898665829283985ffe6c4cb2ec13758e83f467b78e5061f9619b", @@ -282,7 +285,8 @@ "path": "m/1854'/1815'/0'/2/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "c4e70484c964eca910219047542632ac9a9ac81f11f5d5afd8bb1b0ef4366d69", @@ -351,7 +355,8 @@ "path": "m/1854'/1815'/0'/2/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "e02d252c5cad2a4d8f163069cd7f0822c7876d16af9ad8ac2d461655812b2d1b", @@ -464,7 +469,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": true + "include_network_id": true, + "tag_cbor_sets": false }, "result": { "tx_hash": "c3637e34529fae17dbbb90c58307df0cf3b818f4c034860fff362d1ea864cca4", @@ -527,7 +533,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8ea2765f1e46d84f02d8b25a5f0cf445aaeaadcab913e17e59388a4f898ca812", @@ -577,7 +584,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "ee065ce429d8dbcc2432aa81706877f2eee4fc5031d1e1ae06fe993b9987b1be", @@ -631,7 +639,8 @@ "path": "m/1854'/1815'/0'/0/2" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "dae07f98f82878ecd1a6ad988c55f80870c2fb299705ed181458664906583e51", diff --git a/common/tests/fixtures/cardano/sign_tx.plutus.failed.json b/common/tests/fixtures/cardano/sign_tx.plutus.failed.json index 0f4e8065b2..973a528a5f 100644 --- a/common/tests/fixtures/cardano/sign_tx.plutus.failed.json +++ b/common/tests/fixtures/cardano/sign_tx.plutus.failed.json @@ -43,7 +43,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid collateral input" @@ -89,7 +90,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid address parameters" @@ -138,7 +140,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid required signer" @@ -185,7 +188,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid collateral return" @@ -233,7 +237,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid collateral return" diff --git a/common/tests/fixtures/cardano/sign_tx.plutus.json b/common/tests/fixtures/cardano/sign_tx.plutus.json index 8643c03915..b7fce3e634 100644 --- a/common/tests/fixtures/cardano/sign_tx.plutus.json +++ b/common/tests/fixtures/cardano/sign_tx.plutus.json @@ -42,7 +42,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "598dc85bc03cc682ee7ce8b4db798d836a0840429cae7fc62fe388e727a669a2", @@ -107,7 +108,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "ff4a515636b38ed2b2b37f64501f75f04a25d05349b5b84c07f319b6f86372f4", @@ -139,6 +141,95 @@ ] } }, + { + "description": "Plutus transaction with required signers, reference input and 258-tagged sets", + "parameters": { + "protocol_magic": 764824073, + "network_id": 1, + "fee": 42, + "ttl": 10, + "validity_interval_start": null, + "certificates": [], + "withdrawals": [], + "auxiliary_data": null, + "inputs": [ + { + "prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc", + "prev_index": 0 + } + ], + "outputs": [ + { + "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", + "amount": "1" + } + ], + "mint": [], + "script_data_hash": "d593fd793c377ac50a3169bb8378ffc257c944da31aa8f355dfa5a4f6ff89e02", + "collateral_inputs": [ + { + "path": "m/1852'/1815'/0'/0/0", + "prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc", + "prev_index": 0 + } + ], + "required_signers": [ + { + "key_path": "m/1852'/1815'/0'/0/1" + }, + { + "key_path": "m/1854'/1815'/0'/0/0" + }, + { + "key_path": "m/1855'/1815'/0'" + }, + { + "key_hash": "3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c490711" + } + ], + "collateral_return": null, + "total_collateral": null, + "reference_inputs": [ + { + "prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc", + "prev_index": 0 + } + ], + "signing_mode": "PLUTUS_TRANSACTION", + "additional_witness_requests": [], + "include_network_id": false, + "tag_cbor_sets": true + }, + "result": { + "tx_hash": "9cb88fd25d43f4e8140be00dd9538c59b0e8fe1f3186890421d8820cf33e6be7", + "witnesses": [ + { + "type": 1, + "pub_key": "5d010cf16fdeff40955633d6c565f3844a288a24967cf6b76acbeb271b4f13c1", + "signature": "5f9426495c0fe515a2f933cb43a2d3f4de32b5102e32ce8d71e1d3718fda2b6a91c6845f9d612787096813c8be7aea4bc140c1288ac24f6bedf9d6c105ff7c05", + "chain_code": null + }, + { + "type": 1, + "pub_key": "36a8ef21d5b98fdf23a27325cf643deaac35e912c835e35037f23d1061ae5b16", + "signature": "a2251fc5daa777643db0c12becf35b8d75d14743888beb7f48da0a5c2428bfade90926b4df6f70a9d967b26d6a09208e6278d210fbfc84a5a01ad7d0fd04d90e", + "chain_code": null + }, + { + "type": 1, + "pub_key": "b10be5c0d11ad8292bbe69e220ca0cfbe154610b3041a8e72f9d515c226ab3b1", + "signature": "0a457eca4d1dac83f9f794f07215e625d4af4db361ce303f8744efc609714f4f075805e0ad81c9127bd0d8ad5f22a21b6d166c2d9cab2c8309d90c493956ca07", + "chain_code": null + }, + { + "type": 1, + "pub_key": "b75258e4f61eb7b313d8554c2fe10673cf214ca2d762bfd53ec3b7846e2ee872", + "signature": "f60e26cb4152179ebe9af3beae7c54abe04d4d195efe5cebde1d007084dcce3c664fc43629da524ae33ba9fe40bba8a8f36964845c196fafc182459ad8f7f60e", + "chain_code": null + } + ] + } + }, { "description": "Simple Plutus transaction with additional witness requests", "parameters": { @@ -187,7 +278,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "598dc85bc03cc682ee7ce8b4db798d836a0840429cae7fc62fe388e727a669a2", @@ -255,7 +347,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "3fbf931170d2ed6df95a35572d850b40bab4b350763872cb9110f93e9ce8668b", @@ -316,7 +409,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "08bd557131d89c5008cf79f7bdf9c47d27ad7c00b3a1a19dfecedd7c1f7508d8", @@ -439,7 +533,8 @@ "path": "m/1855'/1815'/0'" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "f1ff85026488d1ea60950d9d1819ee00a012560074cd60435f2510e917d86a7f", @@ -512,7 +607,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "0c4a8ec4a0e6718d81a391d09bbc7d48e14f879c94b7e48a35092ef532ebf597", @@ -587,7 +683,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "53d7a7ee887178a08ac70ff2088f8bfbafc7b6bcd5a54e79a686b013455d5e25", @@ -663,7 +760,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "c55ef20e0c8da066bab5221a5c010c32d90905753b0257576e34d7e639f65c9d", @@ -744,7 +842,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "b3ccc29173719973363988763826eb853cb314df8dde07fcf82dab9961d47c25", @@ -825,7 +924,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "717e9b63b08fda304bf7625d5df4149200b28b740db9b66082961a1d2f938ccd", @@ -912,7 +1012,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "baabb4e6dced60de330a089590ea38b7bbe505bbf9c785ef88078242f0ea9860", @@ -981,7 +1082,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "bb4d26c40c67d23ca74bb2e4ad28f586567b99907b86c0337fb7d8f4cde90100", @@ -1035,7 +1137,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "5581fb7a99b8e0ebaf552a5d7157cebb37c9624602d78d86337dfbf838fb2e13", @@ -1089,7 +1192,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "e5beff2153154ab3dba4ff5c638f40ae8c1594c67aee3310bd19997f5013e47b", @@ -1143,7 +1247,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "2399f1743e4074d3e18a742898c3e4d5eac66a7284a949ddcd1eac004498720f", @@ -1197,7 +1302,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8c131e38f378d141deb05d4bf2eb2d13bb75d6363dd470a1f524ba027eff566a", @@ -1263,7 +1369,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "6c5ccc9f6ec1b0b25ccb81ae533b9d46e545af4b745f7e287c967f13a152d537", @@ -1331,7 +1438,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "c95a6f99f5763d89926b44b8a0f7fa12f14ee3978c120e42c581a3f47638d490", @@ -1383,7 +1491,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "3a2a702ed7a907323a7f6ef7bf5d5ad4685bd1a605a0594e535b93597a33b574", @@ -1449,7 +1558,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "6852e7285d0a187f692bdb2ea93451f96952303c54168d5bd7c428a78d0fac07", @@ -1517,7 +1627,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1bef5859c3e23fad63141b61e03aa45537c5ec10ad7c4780a4ed198c17bee165", @@ -1574,7 +1685,8 @@ ], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "98657251d3014dfd98e1eab94bf0a7f6252968d683df9bc8585bf431b4c72a51", diff --git a/common/tests/fixtures/cardano/sign_tx.show_details.json b/common/tests/fixtures/cardano/sign_tx.show_details.json index 7d89e6cedf..3bf0151414 100644 --- a/common/tests/fixtures/cardano/sign_tx.show_details.json +++ b/common/tests/fixtures/cardano/sign_tx.show_details.json @@ -37,7 +37,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "73e09bdebf98a9e0f17f86a2d11e0f14f4f8dae77cdf26ff1678e821f20c8db6", @@ -94,7 +95,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "22c67f12e6f6aa0f2f09fd27d472b19c7208ccd7c3af4b09604fd5d462c1de2b", @@ -148,7 +150,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8ea2765f1e46d84f02d8b25a5f0cf445aaeaadcab913e17e59388a4f898ca812", @@ -199,7 +202,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "8c328640f974f47cecbcaed56e46c3ba4f2ea6769e6e3528915deb3bb518aa06", @@ -257,7 +261,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "ea6d50d786a7c252451704379a05bb21d3f9ad47d043d90fcc88cad5b78ca3bc", @@ -311,7 +316,8 @@ "path": "m/1854'/1815'/0'/0/2" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "dae07f98f82878ecd1a6ad988c55f80870c2fb299705ed181458664906583e51", @@ -385,7 +391,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "1bef5859c3e23fad63141b61e03aa45537c5ec10ad7c4780a4ed198c17bee165", @@ -442,7 +449,8 @@ ], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "98657251d3014dfd98e1eab94bf0a7f6252968d683df9bc8585bf431b4c72a51", @@ -510,7 +518,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "15e4e382d913a743776b93d730fee3ca39bfa3ee203801205333bc9aad249612", diff --git a/common/tests/fixtures/cardano/sign_tx.slip39.json b/common/tests/fixtures/cardano/sign_tx.slip39.json index 3e0b89907c..a706a91cc1 100644 --- a/common/tests/fixtures/cardano/sign_tx.slip39.json +++ b/common/tests/fixtures/cardano/sign_tx.slip39.json @@ -41,7 +41,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "73e09bdebf98a9e0f17f86a2d11e0f14f4f8dae77cdf26ff1678e821f20c8db6", @@ -93,7 +94,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "4c43ce4c72f145b145ae7add414722735e250d048f61c4585a5becafcbffa6ae", @@ -145,7 +147,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "93a2c3cfb67ef1e4bae167b0f443c3370664bdb9171bc9cd41bad98e5cc049b2", diff --git a/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.failed.json b/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.failed.json index b13d4f77f0..8548de8c64 100644 --- a/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.failed.json +++ b/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.failed.json @@ -58,7 +58,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -121,7 +122,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -181,7 +183,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -241,7 +244,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -322,7 +326,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -365,7 +370,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -430,7 +436,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -490,7 +497,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Stakepool registration transaction can only contain the pool owner witness request" @@ -549,7 +557,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "ProcessError: Invalid address" @@ -608,7 +617,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "ProcessError: Invalid address" @@ -701,7 +711,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid pool owner staking path" @@ -794,7 +805,8 @@ "reference_inputs": [], "signing_mode": "ORDINARY_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -887,7 +899,8 @@ "reference_inputs": [], "signing_mode": "MULTISIG_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -980,7 +993,8 @@ "reference_inputs": [], "signing_mode": "PLUTUS_TRANSACTION", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid certificate" @@ -1077,7 +1091,8 @@ "path": "m/1854'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Stakepool registration transaction can only contain the pool owner witness request" @@ -1174,7 +1189,8 @@ "path": "m/1855'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Stakepool registration transaction can only contain the pool owner witness request" @@ -1298,7 +1314,8 @@ "path": "m/1855'/1815'/0'/0/0" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1377,7 +1394,7 @@ } ], "outputs": [ - { + { "addressType": 0, "path": "m/1852'/1815'/0'/0/0", "stakingPath": "m/1852'/1815'/0'/2/0", @@ -1393,7 +1410,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output" @@ -1487,7 +1505,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid output" @@ -1580,7 +1599,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1679,7 +1699,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1775,7 +1796,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1868,7 +1890,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -1966,7 +1989,8 @@ ], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -2063,7 +2087,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Invalid tx signing request" @@ -2160,7 +2185,8 @@ "path": "m/1852'/1815'/0'/2/1" } ], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "error_message": "Stakepool registration transaction can only contain the pool owner witness request" diff --git a/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.json b/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.json index 033c577cc7..6c94b85033 100644 --- a/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.json +++ b/common/tests/fixtures/cardano/sign_tx_stake_pool_registration.json @@ -91,7 +91,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "e3b9a5657bf62609465a930c8359d774c73944973cfc5a104a0f0ed1e1e8db21", @@ -192,7 +193,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "c0d944db15446cf05e8db014685414c928d4d9a3e96aea229234be56eeae34c5", @@ -294,7 +296,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "f3d62758ff2f520e7256e65be9d8165da60c7979a97202c19d625709412411fd", @@ -362,7 +365,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "504f9214142996e0b7e315103b25d88a4afa3d01dd5be22376921b52b01483c3", @@ -430,7 +434,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "12921b4f8e77f815e0c8ed97c541fbd5ba38a6d3323f4ff1af0cb934b8ac6b39", @@ -533,7 +538,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "880fafab19a36407e9af300c2905e2f6bc8a8debd8b625005f56994d242ba460", @@ -634,7 +640,8 @@ "reference_inputs": [], "signing_mode": "POOL_REGISTRATION_AS_OWNER", "additional_witness_requests": [], - "include_network_id": false + "include_network_id": false, + "tag_cbor_sets": false }, "result": { "tx_hash": "36d7e5b9acc9487b9190c3bbe8fa0ec60a6fd66b3c0af7cfd8a015a18b00d765", diff --git a/core/src/apps/cardano/helpers/hash_builder_collection.py b/core/src/apps/cardano/helpers/hash_builder_collection.py index 430a7426bc..22b6d238e1 100644 --- a/core/src/apps/cardano/helpers/hash_builder_collection.py +++ b/core/src/apps/cardano/helpers/hash_builder_collection.py @@ -90,6 +90,19 @@ class HashBuilderList(HashBuilderCollection, Generic[T]): return cbor.create_array_header(self.size) +class HashBuilderSet(HashBuilderList, Generic[T]): + def __init__(self, size: int, *, tagged: bool) -> None: + super().__init__(size) + self.tagged = tagged + + def _header_bytes(self) -> bytes: + return ( + cbor.create_tagged_set_header(self.size) + if self.tagged + else cbor.create_array_header(self.size) + ) + + class HashBuilderDict(HashBuilderCollection, Generic[K, V]): key_order_error: wire.ProcessError previous_encoded_key: bytes diff --git a/core/src/apps/cardano/sign_tx/signer.py b/core/src/apps/cardano/sign_tx/signer.py index d2c66c09e9..7ef83a320a 100644 --- a/core/src/apps/cardano/sign_tx/signer.py +++ b/core/src/apps/cardano/sign_tx/signer.py @@ -16,7 +16,11 @@ from apps.common import safety_checks from .. import addresses, certificates, layout, seed from ..helpers import INPUT_PREV_HASH_SIZE, LOVELACE_MAX_SUPPLY from ..helpers.credential import Credential -from ..helpers.hash_builder_collection import HashBuilderDict, HashBuilderList +from ..helpers.hash_builder_collection import ( + HashBuilderDict, + HashBuilderList, + HashBuilderSet, +) from ..helpers.paths import SCHEMA_STAKING from ..helpers.utils import derive_public_key @@ -140,10 +144,13 @@ class Signer: msg = self.msg # local_cache_attribute add = self.tx_dict.add # local_cache_attribute HBL = HashBuilderList # local_cache_global + HBS = HashBuilderSet # local_cache_global - inputs_list: HashBuilderList[tuple[bytes, int]] = HBL(msg.inputs_count) - with add(_TX_BODY_KEY_INPUTS, inputs_list): - await self._process_inputs(inputs_list) + inputs_set: HashBuilderSet[tuple[bytes, int]] = HBS( + msg.inputs_count, tagged=self.msg.tag_cbor_sets + ) + with add(_TX_BODY_KEY_INPUTS, inputs_set): + await self._process_inputs(inputs_set) outputs_list: HashBuilderList = HBL(msg.outputs_count) with add(_TX_BODY_KEY_OUTPUTS, outputs_list): @@ -155,9 +162,11 @@ class Signer: add(_TX_BODY_KEY_TTL, msg.ttl) if msg.certificates_count > 0: - certificates_list: HashBuilderList = HBL(msg.certificates_count) - with add(_TX_BODY_KEY_CERTIFICATES, certificates_list): - await self._process_certificates(certificates_list) + certificates_set: HashBuilderSet = HBS( + msg.certificates_count, tagged=self.msg.tag_cbor_sets + ) + with add(_TX_BODY_KEY_CERTIFICATES, certificates_set): + await self._process_certificates(certificates_set) if msg.withdrawals_count > 0: withdrawals_dict: HashBuilderDict[bytes, int] = HashBuilderDict( @@ -184,18 +193,18 @@ class Signer: await self._process_script_data_hash() if msg.collateral_inputs_count > 0: - collateral_inputs_list: HashBuilderList[tuple[bytes, int]] = HBL( - msg.collateral_inputs_count + collateral_inputs_set: HashBuilderSet[tuple[bytes, int]] = HBS( + msg.collateral_inputs_count, tagged=self.msg.tag_cbor_sets ) - with add(_TX_BODY_KEY_COLLATERAL_INPUTS, collateral_inputs_list): - await self._process_collateral_inputs(collateral_inputs_list) + with add(_TX_BODY_KEY_COLLATERAL_INPUTS, collateral_inputs_set): + await self._process_collateral_inputs(collateral_inputs_set) if msg.required_signers_count > 0: - required_signers_list: HashBuilderList[bytes] = HBL( - msg.required_signers_count + required_signers_set: HashBuilderSet[bytes] = HBS( + msg.required_signers_count, tagged=self.msg.tag_cbor_sets ) - with add(_TX_BODY_KEY_REQUIRED_SIGNERS, required_signers_list): - await self._process_required_signers(required_signers_list) + with add(_TX_BODY_KEY_REQUIRED_SIGNERS, required_signers_set): + await self._process_required_signers(required_signers_set) if msg.include_network_id: add(_TX_BODY_KEY_NETWORK_ID, msg.network_id) @@ -207,11 +216,11 @@ class Signer: add(_TX_BODY_KEY_TOTAL_COLLATERAL, msg.total_collateral) if msg.reference_inputs_count > 0: - reference_inputs_list: HashBuilderList[tuple[bytes, int]] = HBL( - msg.reference_inputs_count + reference_inputs_set: HashBuilderSet[tuple[bytes, int]] = HBS( + msg.reference_inputs_count, tagged=self.msg.tag_cbor_sets ) - with add(_TX_BODY_KEY_REFERENCE_INPUTS, reference_inputs_list): - await self._process_reference_inputs(reference_inputs_list) + with add(_TX_BODY_KEY_REFERENCE_INPUTS, reference_inputs_set): + await self._process_reference_inputs(reference_inputs_set) def _validate_tx_init(self) -> None: from ..helpers.utils import validate_network_info @@ -658,7 +667,7 @@ class Signer: # certificates - async def _process_certificates(self, certificates_list: HashBuilderList) -> None: + async def _process_certificates(self, certificates_set: HashBuilderSet) -> None: for _ in range(self.msg.certificates_count): certificate: messages.CardanoTxCertificate = await ctx_call( CardanoTxItemAck(), messages.CardanoTxCertificate @@ -673,18 +682,18 @@ class Signer: pool_items_list: HashBuilderList = HashBuilderList( _POOL_REGISTRATION_CERTIFICATE_ITEMS_COUNT ) - with certificates_list.append(pool_items_list): + with certificates_set.append(pool_items_list): for item in certificates.cborize_pool_registration_init( certificate ): pool_items_list.append(item) - pool_owners_list: HashBuilderList[bytes] = HashBuilderList( - pool_parameters.owners_count + pool_owners_set: HashBuilderSet[bytes] = HashBuilderSet( + pool_parameters.owners_count, tagged=self.msg.tag_cbor_sets ) - with pool_items_list.append(pool_owners_list): + with pool_items_list.append(pool_owners_set): await self._process_pool_owners( - pool_owners_list, pool_parameters.owners_count + pool_owners_set, pool_parameters.owners_count ) relays_list: HashBuilderList[cbor.CborSequence] = HashBuilderList( @@ -699,7 +708,7 @@ class Signer: certificates.cborize_pool_metadata(pool_parameters.metadata) ) else: - certificates_list.append( + certificates_set.append( certificates.cborize(self.keychain, certificate) ) @@ -733,7 +742,7 @@ class Signer: # pool owners async def _process_pool_owners( - self, pool_owners_list: HashBuilderList[bytes], owners_count: int + self, pool_owners_set: HashBuilderSet[bytes], owners_count: int ) -> None: owners_as_path_count = 0 for _ in range(owners_count): @@ -742,7 +751,7 @@ class Signer: ) certificates.validate_pool_owner(owner, self.account_path_checker) await self._show_pool_owner(owner) - pool_owners_list.append( + pool_owners_set.append( certificates.cborize_pool_owner(self.keychain, owner) ) @@ -933,7 +942,7 @@ class Signer: # required signers async def _process_required_signers( - self, required_signers_list: HashBuilderList[bytes] + self, required_signers_set: HashBuilderSet[bytes] ) -> None: from ..helpers.utils import get_public_key_hash @@ -949,7 +958,7 @@ class Signer: key_hash = required_signer.key_hash or get_public_key_hash( self.keychain, required_signer.key_path ) - required_signers_list.append(key_hash) + required_signers_set.append(key_hash) def _validate_required_signer( self, required_signer: messages.CardanoTxRequiredSigner diff --git a/core/src/apps/common/cbor.py b/core/src/apps/common/cbor.py index 7edaf9cac2..c3cb8c8ab7 100644 --- a/core/src/apps/common/cbor.py +++ b/core/src/apps/common/cbor.py @@ -43,7 +43,11 @@ _CBOR_FALSE = const(0x14) _CBOR_TRUE = const(0x15) _CBOR_NULL = const(0x16) _CBOR_BREAK = const(0x1F) -_CBOR_RAW_TAG = const(0x18) + + +# See https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml +_CBOR_RAW_TAG = const(0x18) # Tag 24 +_CBOR_SET_TAG = const(0x102) # Tag 258 def _header(typ: int, l: int) -> bytes: @@ -302,6 +306,10 @@ def create_embedded_cbor_bytes_header(size: int) -> bytes: return _header(_CBOR_TAG, _CBOR_RAW_TAG) + _header(_CBOR_BYTE_STRING, size) +def create_tagged_set_header(size: int) -> bytes: + return _header(_CBOR_TAG, _CBOR_SET_TAG) + _header(_CBOR_ARRAY, size) + + def precedes(prev: bytes, curr: bytes) -> bool: """ Returns True if `prev` is smaller than `curr` with regards to diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py index edf7133138..f778062021 100644 --- a/core/src/trezor/messages.py +++ b/core/src/trezor/messages.py @@ -1393,6 +1393,7 @@ if TYPE_CHECKING: total_collateral: "int | None" reference_inputs_count: "int" chunkify: "bool | None" + tag_cbor_sets: "bool" def __init__( self, @@ -1419,6 +1420,7 @@ if TYPE_CHECKING: total_collateral: "int | None" = None, reference_inputs_count: "int | None" = None, chunkify: "bool | None" = None, + tag_cbor_sets: "bool | None" = None, ) -> None: pass diff --git a/core/tests/test_apps.common.cbor.py b/core/tests/test_apps.common.cbor.py index 07750d940a..0de5777f75 100644 --- a/core/tests/test_apps.common.cbor.py +++ b/core/tests/test_apps.common.cbor.py @@ -7,6 +7,7 @@ from apps.common.cbor import ( create_array_header, create_embedded_cbor_bytes_header, create_map_header, + create_tagged_set_header, decode, encode, encode_streamed, @@ -30,6 +31,22 @@ class TestCardanoCbor(unittest.TestCase): with self.assertRaises(NotImplementedError): create_array_header(2**64) + def test_create_tagged_set_header(self): + test_vectors = [ + (0, 'd9010280'), + (23, 'd9010297'), + ((2 ** 8) - 1, 'd9010298ff'), + ((2 ** 16) - 1, 'd9010299ffff'), + ((2 ** 32) - 1, 'd901029affffffff'), + ((2 ** 64) - 1, 'd901029bffffffffffffffff'), + ] + for val, header_hex in test_vectors: + header = unhexlify(header_hex) + self.assertEqual(create_tagged_set_header(val), header) + + with self.assertRaises(NotImplementedError): + create_tagged_set_header(2 ** 64) + def test_create_map_header(self): test_vectors = [ (0, "a0"), diff --git a/python/src/trezorlib/cardano.py b/python/src/trezorlib/cardano.py index 8685b77db4..49d2c6463f 100644 --- a/python/src/trezorlib/cardano.py +++ b/python/src/trezorlib/cardano.py @@ -901,6 +901,7 @@ def sign_tx( derivation_type: messages.CardanoDerivationType = messages.CardanoDerivationType.ICARUS, include_network_id: bool = False, chunkify: bool = False, + tag_cbor_sets: bool = False, ) -> Dict[str, Any]: UNEXPECTED_RESPONSE_ERROR = exceptions.TrezorException("Unexpected response") @@ -938,6 +939,7 @@ def sign_tx( derivation_type=derivation_type, include_network_id=include_network_id, chunkify=chunkify, + tag_cbor_sets=tag_cbor_sets, ) ) if not isinstance(response, messages.CardanoTxItemAck): diff --git a/python/src/trezorlib/cli/cardano.py b/python/src/trezorlib/cli/cardano.py index 91e3a540af..23647ab8ea 100644 --- a/python/src/trezorlib/cli/cardano.py +++ b/python/src/trezorlib/cli/cardano.py @@ -61,6 +61,7 @@ def cli() -> None: ) @click.option("-i", "--include-network-id", is_flag=True) @click.option("-C", "chunkify", is_flag=True) +@click.option("-T", "--tag-cbor-sets", is_flag=True) @with_client def sign_tx( client: "TrezorClient", @@ -72,6 +73,7 @@ def sign_tx( derivation_type: messages.CardanoDerivationType, include_network_id: bool, chunkify: bool, + tag_cbor_sets: bool, ) -> cardano.SignTxResponse: """Sign Cardano transaction.""" transaction = json.load(file) @@ -146,6 +148,7 @@ def sign_tx( derivation_type=derivation_type, include_network_id=include_network_id, chunkify=chunkify, + tag_cbor_sets=tag_cbor_sets, ) sign_tx_response["tx_hash"] = sign_tx_response["tx_hash"].hex() diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index f50292123d..04aea96b16 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -2388,6 +2388,7 @@ class CardanoSignTxInit(protobuf.MessageType): 20: protobuf.Field("total_collateral", "uint64", repeated=False, required=False, default=None), 21: protobuf.Field("reference_inputs_count", "uint32", repeated=False, required=False, default=0), 22: protobuf.Field("chunkify", "bool", repeated=False, required=False, default=None), + 23: protobuf.Field("tag_cbor_sets", "bool", repeated=False, required=False, default=False), } def __init__( @@ -2415,6 +2416,7 @@ class CardanoSignTxInit(protobuf.MessageType): total_collateral: Optional["int"] = None, reference_inputs_count: Optional["int"] = 0, chunkify: Optional["bool"] = None, + tag_cbor_sets: Optional["bool"] = False, ) -> None: self.signing_mode = signing_mode self.protocol_magic = protocol_magic @@ -2438,6 +2440,7 @@ class CardanoSignTxInit(protobuf.MessageType): self.total_collateral = total_collateral self.reference_inputs_count = reference_inputs_count self.chunkify = chunkify + self.tag_cbor_sets = tag_cbor_sets class CardanoTxInput(protobuf.MessageType): diff --git a/rust/trezor-client/src/protos/generated/messages_cardano.rs b/rust/trezor-client/src/protos/generated/messages_cardano.rs index b7c5d8fd74..2443ce5f0b 100644 --- a/rust/trezor-client/src/protos/generated/messages_cardano.rs +++ b/rust/trezor-client/src/protos/generated/messages_cardano.rs @@ -2289,6 +2289,8 @@ pub struct CardanoSignTxInit { pub reference_inputs_count: ::std::option::Option, // @@protoc_insertion_point(field:hw.trezor.messages.cardano.CardanoSignTxInit.chunkify) pub chunkify: ::std::option::Option, + // @@protoc_insertion_point(field:hw.trezor.messages.cardano.CardanoSignTxInit.tag_cbor_sets) + pub tag_cbor_sets: ::std::option::Option, // special fields // @@protoc_insertion_point(special_field:hw.trezor.messages.cardano.CardanoSignTxInit.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -2746,8 +2748,27 @@ impl CardanoSignTxInit { self.chunkify = ::std::option::Option::Some(v); } + // optional bool tag_cbor_sets = 23; + + pub fn tag_cbor_sets(&self) -> bool { + self.tag_cbor_sets.unwrap_or(false) + } + + pub fn clear_tag_cbor_sets(&mut self) { + self.tag_cbor_sets = ::std::option::Option::None; + } + + pub fn has_tag_cbor_sets(&self) -> bool { + self.tag_cbor_sets.is_some() + } + + // Param is passed by value, moved + pub fn set_tag_cbor_sets(&mut self, v: bool) { + self.tag_cbor_sets = ::std::option::Option::Some(v); + } + fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(22); + let mut fields = ::std::vec::Vec::with_capacity(23); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( "signing_mode", @@ -2859,6 +2880,11 @@ impl CardanoSignTxInit { |m: &CardanoSignTxInit| { &m.chunkify }, |m: &mut CardanoSignTxInit| { &mut m.chunkify }, )); + fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( + "tag_cbor_sets", + |m: &CardanoSignTxInit| { &m.tag_cbor_sets }, + |m: &mut CardanoSignTxInit| { &mut m.tag_cbor_sets }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "CardanoSignTxInit", fields, @@ -2985,6 +3011,9 @@ impl ::protobuf::Message for CardanoSignTxInit { 176 => { self.chunkify = ::std::option::Option::Some(is.read_bool()?); }, + 184 => { + self.tag_cbor_sets = ::std::option::Option::Some(is.read_bool()?); + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -3063,6 +3092,9 @@ impl ::protobuf::Message for CardanoSignTxInit { if let Some(v) = self.chunkify { my_size += 2 + 1; } + if let Some(v) = self.tag_cbor_sets { + my_size += 2 + 1; + } my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -3135,6 +3167,9 @@ impl ::protobuf::Message for CardanoSignTxInit { if let Some(v) = self.chunkify { os.write_bool(22, v)?; } + if let Some(v) = self.tag_cbor_sets { + os.write_bool(23, v)?; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -3174,6 +3209,7 @@ impl ::protobuf::Message for CardanoSignTxInit { self.total_collateral = ::std::option::Option::None; self.reference_inputs_count = ::std::option::Option::None; self.chunkify = ::std::option::Option::None; + self.tag_cbor_sets = ::std::option::Option::None; self.special_fields.clear(); } @@ -3201,6 +3237,7 @@ impl ::protobuf::Message for CardanoSignTxInit { total_collateral: ::std::option::Option::None, reference_inputs_count: ::std::option::Option::None, chunkify: ::std::option::Option::None, + tag_cbor_sets: ::std::option::Option::None, special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -10440,7 +10477,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12Z\n\x0fderivation_type\x18\x03\x20\x02(\x0e21.hw.trezor.messages.car\ dano.CardanoDerivationTypeR\x0ederivationType\"a\n\x10CardanoPublicKey\ \x12\x12\n\x04xpub\x18\x01\x20\x02(\tR\x04xpub\x129\n\x04node\x18\x02\ - \x20\x02(\x0b2%.hw.trezor.messages.common.HDNodeTypeR\x04node\"\xb3\x08\ + \x20\x02(\x0b2%.hw.trezor.messages.common.HDNodeTypeR\x04node\"\xde\x08\ \n\x11CardanoSignTxInit\x12S\n\x0csigning_mode\x18\x01\x20\x02(\x0e20.hw\ .trezor.messages.cardano.CardanoTxSigningModeR\x0bsigningMode\x12%\n\x0e\ protocol_magic\x18\x02\x20\x02(\rR\rprotocolMagic\x12\x1d\n\nnetwork_id\ @@ -10463,124 +10500,125 @@ static file_descriptor_proto_data: &'static [u8] = b"\ turn\x18\x13\x20\x01(\x08:\x05falseR\x13hasCollateralReturn\x12)\n\x10to\ tal_collateral\x18\x14\x20\x01(\x04R\x0ftotalCollateral\x127\n\x16refere\ nce_inputs_count\x18\x15\x20\x01(\r:\x010R\x14referenceInputsCount\x12\ - \x1a\n\x08chunkify\x18\x16\x20\x01(\x08R\x08chunkify\"L\n\x0eCardanoTxIn\ - put\x12\x1b\n\tprev_hash\x18\x01\x20\x02(\x0cR\x08prevHash\x12\x1d\n\npr\ - ev_index\x18\x02\x20\x02(\rR\tprevIndex\"\xc5\x03\n\x0fCardanoTxOutput\ - \x12\x18\n\x07address\x18\x01\x20\x01(\tR\x07address\x12g\n\x12address_p\ - arameters\x18\x02\x20\x01(\x0b28.hw.trezor.messages.cardano.CardanoAddre\ - ssParametersTypeR\x11addressParameters\x12\x16\n\x06amount\x18\x03\x20\ - \x02(\x04R\x06amount\x12,\n\x12asset_groups_count\x18\x04\x20\x02(\rR\ - \x10assetGroupsCount\x12\x1d\n\ndatum_hash\x18\x05\x20\x01(\x0cR\tdatumH\ - ash\x12d\n\x06format\x18\x06\x20\x01(\x0e2>.hw.trezor.messages.cardano.C\ - ardanoTxOutputSerializationFormat:\x0cARRAY_LEGACYR\x06format\x12-\n\x11\ - inline_datum_size\x18\x07\x20\x01(\r:\x010R\x0finlineDatumSize\x125\n\ - \x15reference_script_size\x18\x08\x20\x01(\r:\x010R\x13referenceScriptSi\ - ze\"S\n\x11CardanoAssetGroup\x12\x1b\n\tpolicy_id\x18\x01\x20\x02(\x0cR\ - \x08policyId\x12!\n\x0ctokens_count\x18\x02\x20\x02(\rR\x0btokensCount\"\ - q\n\x0cCardanoToken\x12(\n\x10asset_name_bytes\x18\x01\x20\x02(\x0cR\x0e\ - assetNameBytes\x12\x16\n\x06amount\x18\x02\x20\x01(\x04R\x06amount\x12\ - \x1f\n\x0bmint_amount\x18\x03\x20\x01(\x12R\nmintAmount\"/\n\x19CardanoT\ - xInlineDatumChunk\x12\x12\n\x04data\x18\x01\x20\x02(\x0cR\x04data\"3\n\ - \x1dCardanoTxReferenceScriptChunk\x12\x12\n\x04data\x18\x01\x20\x02(\x0c\ - R\x04data\"f\n\x10CardanoPoolOwner\x12(\n\x10staking_key_path\x18\x01\ - \x20\x03(\rR\x0estakingKeyPath\x12(\n\x10staking_key_hash\x18\x02\x20\ - \x01(\x0cR\x0estakingKeyHash\"\xd9\x01\n\x1aCardanoPoolRelayParameters\ + \x1a\n\x08chunkify\x18\x16\x20\x01(\x08R\x08chunkify\x12)\n\rtag_cbor_se\ + ts\x18\x17\x20\x01(\x08:\x05falseR\x0btagCborSets\"L\n\x0eCardanoTxInput\ + \x12\x1b\n\tprev_hash\x18\x01\x20\x02(\x0cR\x08prevHash\x12\x1d\n\nprev_\ + index\x18\x02\x20\x02(\rR\tprevIndex\"\xc5\x03\n\x0fCardanoTxOutput\x12\ + \x18\n\x07address\x18\x01\x20\x01(\tR\x07address\x12g\n\x12address_param\ + eters\x18\x02\x20\x01(\x0b28.hw.trezor.messages.cardano.CardanoAddressPa\ + rametersTypeR\x11addressParameters\x12\x16\n\x06amount\x18\x03\x20\x02(\ + \x04R\x06amount\x12,\n\x12asset_groups_count\x18\x04\x20\x02(\rR\x10asse\ + tGroupsCount\x12\x1d\n\ndatum_hash\x18\x05\x20\x01(\x0cR\tdatumHash\x12d\ + \n\x06format\x18\x06\x20\x01(\x0e2>.hw.trezor.messages.cardano.CardanoTx\ + OutputSerializationFormat:\x0cARRAY_LEGACYR\x06format\x12-\n\x11inline_d\ + atum_size\x18\x07\x20\x01(\r:\x010R\x0finlineDatumSize\x125\n\x15referen\ + ce_script_size\x18\x08\x20\x01(\r:\x010R\x13referenceScriptSize\"S\n\x11\ + CardanoAssetGroup\x12\x1b\n\tpolicy_id\x18\x01\x20\x02(\x0cR\x08policyId\ + \x12!\n\x0ctokens_count\x18\x02\x20\x02(\rR\x0btokensCount\"q\n\x0cCarda\ + noToken\x12(\n\x10asset_name_bytes\x18\x01\x20\x02(\x0cR\x0eassetNameByt\ + es\x12\x16\n\x06amount\x18\x02\x20\x01(\x04R\x06amount\x12\x1f\n\x0bmint\ + _amount\x18\x03\x20\x01(\x12R\nmintAmount\"/\n\x19CardanoTxInlineDatumCh\ + unk\x12\x12\n\x04data\x18\x01\x20\x02(\x0cR\x04data\"3\n\x1dCardanoTxRef\ + erenceScriptChunk\x12\x12\n\x04data\x18\x01\x20\x02(\x0cR\x04data\"f\n\ + \x10CardanoPoolOwner\x12(\n\x10staking_key_path\x18\x01\x20\x03(\rR\x0es\ + takingKeyPath\x12(\n\x10staking_key_hash\x18\x02\x20\x01(\x0cR\x0estakin\ + gKeyHash\"\xd9\x01\n\x1aCardanoPoolRelayParameters\x12D\n\x04type\x18\ + \x01\x20\x02(\x0e20.hw.trezor.messages.cardano.CardanoPoolRelayTypeR\x04\ + type\x12!\n\x0cipv4_address\x18\x02\x20\x01(\x0cR\x0bipv4Address\x12!\n\ + \x0cipv6_address\x18\x03\x20\x01(\x0cR\x0bipv6Address\x12\x1b\n\thost_na\ + me\x18\x04\x20\x01(\tR\x08hostName\x12\x12\n\x04port\x18\x05\x20\x01(\rR\ + \x04port\"?\n\x17CardanoPoolMetadataType\x12\x10\n\x03url\x18\x01\x20\ + \x02(\tR\x03url\x12\x12\n\x04hash\x18\x02\x20\x02(\x0cR\x04hash\"\x9a\ + \x03\n\x19CardanoPoolParametersType\x12\x17\n\x07pool_id\x18\x01\x20\x02\ + (\x0cR\x06poolId\x12\x20\n\x0cvrf_key_hash\x18\x02\x20\x02(\x0cR\nvrfKey\ + Hash\x12\x16\n\x06pledge\x18\x03\x20\x02(\x04R\x06pledge\x12\x12\n\x04co\ + st\x18\x04\x20\x02(\x04R\x04cost\x12)\n\x10margin_numerator\x18\x05\x20\ + \x02(\x04R\x0fmarginNumerator\x12-\n\x12margin_denominator\x18\x06\x20\ + \x02(\x04R\x11marginDenominator\x12%\n\x0ereward_account\x18\x07\x20\x02\ + (\tR\rrewardAccount\x12O\n\x08metadata\x18\n\x20\x01(\x0b23.hw.trezor.me\ + ssages.cardano.CardanoPoolMetadataTypeR\x08metadata\x12!\n\x0cowners_cou\ + nt\x18\x0b\x20\x02(\rR\x0bownersCount\x12!\n\x0crelays_count\x18\x0c\x20\ + \x02(\rR\x0brelaysCount\"\x8a\x01\n\x0bCardanoDRep\x12?\n\x04type\x18\ + \x01\x20\x02(\x0e2+.hw.trezor.messages.cardano.CardanoDRepTypeR\x04type\ + \x12\x19\n\x08key_hash\x18\x02\x20\x01(\x0cR\x07keyHash\x12\x1f\n\x0bscr\ + ipt_hash\x18\x03\x20\x01(\x0cR\nscriptHash\"\xf9\x02\n\x14CardanoTxCerti\ + ficate\x12F\n\x04type\x18\x01\x20\x02(\x0e22.hw.trezor.messages.cardano.\ + CardanoCertificateTypeR\x04type\x12\x12\n\x04path\x18\x02\x20\x03(\rR\ + \x04path\x12\x12\n\x04pool\x18\x03\x20\x01(\x0cR\x04pool\x12^\n\x0fpool_\ + parameters\x18\x04\x20\x01(\x0b25.hw.trezor.messages.cardano.CardanoPool\ + ParametersTypeR\x0epoolParameters\x12\x1f\n\x0bscript_hash\x18\x05\x20\ + \x01(\x0cR\nscriptHash\x12\x19\n\x08key_hash\x18\x06\x20\x01(\x0cR\x07ke\ + yHash\x12\x18\n\x07deposit\x18\x07\x20\x01(\x04R\x07deposit\x12;\n\x04dr\ + ep\x18\x08\x20\x01(\x0b2'.hw.trezor.messages.cardano.CardanoDRepR\x04dre\ + p\"}\n\x13CardanoTxWithdrawal\x12\x12\n\x04path\x18\x01\x20\x03(\rR\x04p\ + ath\x12\x16\n\x06amount\x18\x02\x20\x02(\x04R\x06amount\x12\x1f\n\x0bscr\ + ipt_hash\x18\x03\x20\x01(\x0cR\nscriptHash\x12\x19\n\x08key_hash\x18\x04\ + \x20\x01(\x0cR\x07keyHash\"d\n\"CardanoCVoteRegistrationDelegation\x12&\ + \n\x0fvote_public_key\x18\x01\x20\x02(\x0cR\rvotePublicKey\x12\x16\n\x06\ + weight\x18\x02\x20\x02(\rR\x06weight\"\x8e\x04\n&CardanoCVoteRegistratio\ + nParametersType\x12&\n\x0fvote_public_key\x18\x01\x20\x01(\x0cR\rvotePub\ + licKey\x12!\n\x0cstaking_path\x18\x02\x20\x03(\rR\x0bstakingPath\x12v\n\ + \x1apayment_address_parameters\x18\x03\x20\x01(\x0b28.hw.trezor.messages\ + .cardano.CardanoAddressParametersTypeR\x18paymentAddressParameters\x12\ + \x14\n\x05nonce\x18\x04\x20\x02(\x04R\x05nonce\x12Y\n\x06format\x18\x05\ + \x20\x01(\x0e2:.hw.trezor.messages.cardano.CardanoCVoteRegistrationForma\ + t:\x05CIP15R\x06format\x12`\n\x0bdelegations\x18\x06\x20\x03(\x0b2>.hw.t\ + rezor.messages.cardano.CardanoCVoteRegistrationDelegationR\x0bdelegation\ + s\x12%\n\x0evoting_purpose\x18\x07\x20\x01(\x04R\rvotingPurpose\x12'\n\ + \x0fpayment_address\x18\x08\x20\x01(\tR\x0epaymentAddress\"\xb5\x01\n\ + \x16CardanoTxAuxiliaryData\x12\x86\x01\n\x1dcvote_registration_parameter\ + s\x18\x01\x20\x01(\x0b2B.hw.trezor.messages.cardano.CardanoCVoteRegistra\ + tionParametersTypeR\x1bcvoteRegistrationParameters\x12\x12\n\x04hash\x18\ + \x02\x20\x01(\x0cR\x04hash\"=\n\rCardanoTxMint\x12,\n\x12asset_groups_co\ + unt\x18\x01\x20\x02(\rR\x10assetGroupsCount\"V\n\x18CardanoTxCollateralI\ + nput\x12\x1b\n\tprev_hash\x18\x01\x20\x02(\x0cR\x08prevHash\x12\x1d\n\np\ + rev_index\x18\x02\x20\x02(\rR\tprevIndex\"O\n\x17CardanoTxRequiredSigner\ + \x12\x19\n\x08key_hash\x18\x01\x20\x01(\x0cR\x07keyHash\x12\x19\n\x08key\ + _path\x18\x02\x20\x03(\rR\x07keyPath\"U\n\x17CardanoTxReferenceInput\x12\ + \x1b\n\tprev_hash\x18\x01\x20\x02(\x0cR\x08prevHash\x12\x1d\n\nprev_inde\ + x\x18\x02\x20\x02(\rR\tprevIndex\"\x12\n\x10CardanoTxItemAck\"\xea\x01\n\ + \x20CardanoTxAuxiliaryDataSupplement\x12T\n\x04type\x18\x01\x20\x02(\x0e\ + 2@.hw.trezor.messages.cardano.CardanoTxAuxiliaryDataSupplementTypeR\x04t\ + ype\x12.\n\x13auxiliary_data_hash\x18\x02\x20\x01(\x0cR\x11auxiliaryData\ + Hash\x12@\n\x1ccvote_registration_signature\x18\x03\x20\x01(\x0cR\x1acvo\ + teRegistrationSignature\"-\n\x17CardanoTxWitnessRequest\x12\x12\n\x04pat\ + h\x18\x01\x20\x03(\rR\x04path\"\xb6\x01\n\x18CardanoTxWitnessResponse\ \x12D\n\x04type\x18\x01\x20\x02(\x0e20.hw.trezor.messages.cardano.Cardan\ - oPoolRelayTypeR\x04type\x12!\n\x0cipv4_address\x18\x02\x20\x01(\x0cR\x0b\ - ipv4Address\x12!\n\x0cipv6_address\x18\x03\x20\x01(\x0cR\x0bipv6Address\ - \x12\x1b\n\thost_name\x18\x04\x20\x01(\tR\x08hostName\x12\x12\n\x04port\ - \x18\x05\x20\x01(\rR\x04port\"?\n\x17CardanoPoolMetadataType\x12\x10\n\ - \x03url\x18\x01\x20\x02(\tR\x03url\x12\x12\n\x04hash\x18\x02\x20\x02(\ - \x0cR\x04hash\"\x9a\x03\n\x19CardanoPoolParametersType\x12\x17\n\x07pool\ - _id\x18\x01\x20\x02(\x0cR\x06poolId\x12\x20\n\x0cvrf_key_hash\x18\x02\ - \x20\x02(\x0cR\nvrfKeyHash\x12\x16\n\x06pledge\x18\x03\x20\x02(\x04R\x06\ - pledge\x12\x12\n\x04cost\x18\x04\x20\x02(\x04R\x04cost\x12)\n\x10margin_\ - numerator\x18\x05\x20\x02(\x04R\x0fmarginNumerator\x12-\n\x12margin_deno\ - minator\x18\x06\x20\x02(\x04R\x11marginDenominator\x12%\n\x0ereward_acco\ - unt\x18\x07\x20\x02(\tR\rrewardAccount\x12O\n\x08metadata\x18\n\x20\x01(\ - \x0b23.hw.trezor.messages.cardano.CardanoPoolMetadataTypeR\x08metadata\ - \x12!\n\x0cowners_count\x18\x0b\x20\x02(\rR\x0bownersCount\x12!\n\x0crel\ - ays_count\x18\x0c\x20\x02(\rR\x0brelaysCount\"\x8a\x01\n\x0bCardanoDRep\ - \x12?\n\x04type\x18\x01\x20\x02(\x0e2+.hw.trezor.messages.cardano.Cardan\ - oDRepTypeR\x04type\x12\x19\n\x08key_hash\x18\x02\x20\x01(\x0cR\x07keyHas\ - h\x12\x1f\n\x0bscript_hash\x18\x03\x20\x01(\x0cR\nscriptHash\"\xf9\x02\n\ - \x14CardanoTxCertificate\x12F\n\x04type\x18\x01\x20\x02(\x0e22.hw.trezor\ - .messages.cardano.CardanoCertificateTypeR\x04type\x12\x12\n\x04path\x18\ - \x02\x20\x03(\rR\x04path\x12\x12\n\x04pool\x18\x03\x20\x01(\x0cR\x04pool\ - \x12^\n\x0fpool_parameters\x18\x04\x20\x01(\x0b25.hw.trezor.messages.car\ - dano.CardanoPoolParametersTypeR\x0epoolParameters\x12\x1f\n\x0bscript_ha\ - sh\x18\x05\x20\x01(\x0cR\nscriptHash\x12\x19\n\x08key_hash\x18\x06\x20\ - \x01(\x0cR\x07keyHash\x12\x18\n\x07deposit\x18\x07\x20\x01(\x04R\x07depo\ - sit\x12;\n\x04drep\x18\x08\x20\x01(\x0b2'.hw.trezor.messages.cardano.Car\ - danoDRepR\x04drep\"}\n\x13CardanoTxWithdrawal\x12\x12\n\x04path\x18\x01\ - \x20\x03(\rR\x04path\x12\x16\n\x06amount\x18\x02\x20\x02(\x04R\x06amount\ - \x12\x1f\n\x0bscript_hash\x18\x03\x20\x01(\x0cR\nscriptHash\x12\x19\n\ - \x08key_hash\x18\x04\x20\x01(\x0cR\x07keyHash\"d\n\"CardanoCVoteRegistra\ - tionDelegation\x12&\n\x0fvote_public_key\x18\x01\x20\x02(\x0cR\rvotePubl\ - icKey\x12\x16\n\x06weight\x18\x02\x20\x02(\rR\x06weight\"\x8e\x04\n&Card\ - anoCVoteRegistrationParametersType\x12&\n\x0fvote_public_key\x18\x01\x20\ - \x01(\x0cR\rvotePublicKey\x12!\n\x0cstaking_path\x18\x02\x20\x03(\rR\x0b\ - stakingPath\x12v\n\x1apayment_address_parameters\x18\x03\x20\x01(\x0b28.\ - hw.trezor.messages.cardano.CardanoAddressParametersTypeR\x18paymentAddre\ - ssParameters\x12\x14\n\x05nonce\x18\x04\x20\x02(\x04R\x05nonce\x12Y\n\ - \x06format\x18\x05\x20\x01(\x0e2:.hw.trezor.messages.cardano.CardanoCVot\ - eRegistrationFormat:\x05CIP15R\x06format\x12`\n\x0bdelegations\x18\x06\ - \x20\x03(\x0b2>.hw.trezor.messages.cardano.CardanoCVoteRegistrationDeleg\ - ationR\x0bdelegations\x12%\n\x0evoting_purpose\x18\x07\x20\x01(\x04R\rvo\ - tingPurpose\x12'\n\x0fpayment_address\x18\x08\x20\x01(\tR\x0epaymentAddr\ - ess\"\xb5\x01\n\x16CardanoTxAuxiliaryData\x12\x86\x01\n\x1dcvote_registr\ - ation_parameters\x18\x01\x20\x01(\x0b2B.hw.trezor.messages.cardano.Carda\ - noCVoteRegistrationParametersTypeR\x1bcvoteRegistrationParameters\x12\ - \x12\n\x04hash\x18\x02\x20\x01(\x0cR\x04hash\"=\n\rCardanoTxMint\x12,\n\ - \x12asset_groups_count\x18\x01\x20\x02(\rR\x10assetGroupsCount\"V\n\x18C\ - ardanoTxCollateralInput\x12\x1b\n\tprev_hash\x18\x01\x20\x02(\x0cR\x08pr\ - evHash\x12\x1d\n\nprev_index\x18\x02\x20\x02(\rR\tprevIndex\"O\n\x17Card\ - anoTxRequiredSigner\x12\x19\n\x08key_hash\x18\x01\x20\x01(\x0cR\x07keyHa\ - sh\x12\x19\n\x08key_path\x18\x02\x20\x03(\rR\x07keyPath\"U\n\x17CardanoT\ - xReferenceInput\x12\x1b\n\tprev_hash\x18\x01\x20\x02(\x0cR\x08prevHash\ - \x12\x1d\n\nprev_index\x18\x02\x20\x02(\rR\tprevIndex\"\x12\n\x10Cardano\ - TxItemAck\"\xea\x01\n\x20CardanoTxAuxiliaryDataSupplement\x12T\n\x04type\ - \x18\x01\x20\x02(\x0e2@.hw.trezor.messages.cardano.CardanoTxAuxiliaryDat\ - aSupplementTypeR\x04type\x12.\n\x13auxiliary_data_hash\x18\x02\x20\x01(\ - \x0cR\x11auxiliaryDataHash\x12@\n\x1ccvote_registration_signature\x18\ - \x03\x20\x01(\x0cR\x1acvoteRegistrationSignature\"-\n\x17CardanoTxWitnes\ - sRequest\x12\x12\n\x04path\x18\x01\x20\x03(\rR\x04path\"\xb6\x01\n\x18Ca\ - rdanoTxWitnessResponse\x12D\n\x04type\x18\x01\x20\x02(\x0e20.hw.trezor.m\ - essages.cardano.CardanoTxWitnessTypeR\x04type\x12\x17\n\x07pub_key\x18\ - \x02\x20\x02(\x0cR\x06pubKey\x12\x1c\n\tsignature\x18\x03\x20\x02(\x0cR\ - \tsignature\x12\x1d\n\nchain_code\x18\x04\x20\x01(\x0cR\tchainCode\"\x12\ - \n\x10CardanoTxHostAck\",\n\x11CardanoTxBodyHash\x12\x17\n\x07tx_hash\ - \x18\x01\x20\x02(\x0cR\x06txHash\"\x17\n\x15CardanoSignTxFinished*B\n\ - \x15CardanoDerivationType\x12\n\n\x06LEDGER\x10\0\x12\n\n\x06ICARUS\x10\ - \x01\x12\x11\n\rICARUS_TREZOR\x10\x02*\xd2\x01\n\x12CardanoAddressType\ - \x12\x08\n\x04BASE\x10\0\x12\x13\n\x0fBASE_SCRIPT_KEY\x10\x01\x12\x13\n\ - \x0fBASE_KEY_SCRIPT\x10\x02\x12\x16\n\x12BASE_SCRIPT_SCRIPT\x10\x03\x12\ - \x0b\n\x07POINTER\x10\x04\x12\x12\n\x0ePOINTER_SCRIPT\x10\x05\x12\x0e\n\ - \nENTERPRISE\x10\x06\x12\x15\n\x11ENTERPRISE_SCRIPT\x10\x07\x12\t\n\x05B\ - YRON\x10\x08\x12\n\n\x06REWARD\x10\x0e\x12\x11\n\rREWARD_SCRIPT\x10\x0f*\ - o\n\x17CardanoNativeScriptType\x12\x0b\n\x07PUB_KEY\x10\0\x12\x07\n\x03A\ - LL\x10\x01\x12\x07\n\x03ANY\x10\x02\x12\n\n\x06N_OF_K\x10\x03\x12\x12\n\ - \x0eINVALID_BEFORE\x10\x04\x12\x15\n\x11INVALID_HEREAFTER\x10\x05*K\n$Ca\ - rdanoNativeScriptHashDisplayFormat\x12\x08\n\x04HIDE\x10\0\x12\n\n\x06BE\ - CH32\x10\x01\x12\r\n\tPOLICY_ID\x10\x02*G\n\"CardanoTxOutputSerializatio\ - nFormat\x12\x10\n\x0cARRAY_LEGACY\x10\0\x12\x0f\n\x0bMAP_BABBAGE\x10\x01\ - *\xd2\x01\n\x16CardanoCertificateType\x12\x16\n\x12STAKE_REGISTRATION\ - \x10\0\x12\x18\n\x14STAKE_DEREGISTRATION\x10\x01\x12\x14\n\x10STAKE_DELE\ - GATION\x10\x02\x12\x1b\n\x17STAKE_POOL_REGISTRATION\x10\x03\x12\x1d\n\ - \x19STAKE_REGISTRATION_CONWAY\x10\x07\x12\x1f\n\x1bSTAKE_DEREGISTRATION_\ - CONWAY\x10\x08\x12\x13\n\x0fVOTE_DELEGATION\x10\t*P\n\x0fCardanoDRepType\ - \x12\x0c\n\x08KEY_HASH\x10\0\x12\x0f\n\x0bSCRIPT_HASH\x10\x01\x12\x0b\n\ - \x07ABSTAIN\x10\x02\x12\x11\n\rNO_CONFIDENCE\x10\x03*X\n\x14CardanoPoolR\ - elayType\x12\x12\n\x0eSINGLE_HOST_IP\x10\0\x12\x14\n\x10SINGLE_HOST_NAME\ - \x10\x01\x12\x16\n\x12MULTIPLE_HOST_NAME\x10\x02*R\n$CardanoTxAuxiliaryD\ - ataSupplementType\x12\x08\n\x04NONE\x10\0\x12\x20\n\x1cCVOTE_REGISTRATIO\ - N_SIGNATURE\x10\x01*6\n\x1eCardanoCVoteRegistrationFormat\x12\t\n\x05CIP\ - 15\x10\0\x12\t\n\x05CIP36\x10\x01*\x82\x01\n\x14CardanoTxSigningMode\x12\ - \x18\n\x14ORDINARY_TRANSACTION\x10\0\x12\x1e\n\x1aPOOL_REGISTRATION_AS_O\ - WNER\x10\x01\x12\x18\n\x14MULTISIG_TRANSACTION\x10\x02\x12\x16\n\x12PLUT\ - US_TRANSACTION\x10\x03*>\n\x14CardanoTxWitnessType\x12\x11\n\rBYRON_WITN\ - ESS\x10\0\x12\x13\n\x0fSHELLEY_WITNESS\x10\x01B;\n#com.satoshilabs.trezo\ - r.lib.protobufB\x14TrezorMessageCardano\ + oTxWitnessTypeR\x04type\x12\x17\n\x07pub_key\x18\x02\x20\x02(\x0cR\x06pu\ + bKey\x12\x1c\n\tsignature\x18\x03\x20\x02(\x0cR\tsignature\x12\x1d\n\nch\ + ain_code\x18\x04\x20\x01(\x0cR\tchainCode\"\x12\n\x10CardanoTxHostAck\",\ + \n\x11CardanoTxBodyHash\x12\x17\n\x07tx_hash\x18\x01\x20\x02(\x0cR\x06tx\ + Hash\"\x17\n\x15CardanoSignTxFinished*B\n\x15CardanoDerivationType\x12\n\ + \n\x06LEDGER\x10\0\x12\n\n\x06ICARUS\x10\x01\x12\x11\n\rICARUS_TREZOR\ + \x10\x02*\xd2\x01\n\x12CardanoAddressType\x12\x08\n\x04BASE\x10\0\x12\ + \x13\n\x0fBASE_SCRIPT_KEY\x10\x01\x12\x13\n\x0fBASE_KEY_SCRIPT\x10\x02\ + \x12\x16\n\x12BASE_SCRIPT_SCRIPT\x10\x03\x12\x0b\n\x07POINTER\x10\x04\ + \x12\x12\n\x0ePOINTER_SCRIPT\x10\x05\x12\x0e\n\nENTERPRISE\x10\x06\x12\ + \x15\n\x11ENTERPRISE_SCRIPT\x10\x07\x12\t\n\x05BYRON\x10\x08\x12\n\n\x06\ + REWARD\x10\x0e\x12\x11\n\rREWARD_SCRIPT\x10\x0f*o\n\x17CardanoNativeScri\ + ptType\x12\x0b\n\x07PUB_KEY\x10\0\x12\x07\n\x03ALL\x10\x01\x12\x07\n\x03\ + ANY\x10\x02\x12\n\n\x06N_OF_K\x10\x03\x12\x12\n\x0eINVALID_BEFORE\x10\ + \x04\x12\x15\n\x11INVALID_HEREAFTER\x10\x05*K\n$CardanoNativeScriptHashD\ + isplayFormat\x12\x08\n\x04HIDE\x10\0\x12\n\n\x06BECH32\x10\x01\x12\r\n\t\ + POLICY_ID\x10\x02*G\n\"CardanoTxOutputSerializationFormat\x12\x10\n\x0cA\ + RRAY_LEGACY\x10\0\x12\x0f\n\x0bMAP_BABBAGE\x10\x01*\xd2\x01\n\x16Cardano\ + CertificateType\x12\x16\n\x12STAKE_REGISTRATION\x10\0\x12\x18\n\x14STAKE\ + _DEREGISTRATION\x10\x01\x12\x14\n\x10STAKE_DELEGATION\x10\x02\x12\x1b\n\ + \x17STAKE_POOL_REGISTRATION\x10\x03\x12\x1d\n\x19STAKE_REGISTRATION_CONW\ + AY\x10\x07\x12\x1f\n\x1bSTAKE_DEREGISTRATION_CONWAY\x10\x08\x12\x13\n\ + \x0fVOTE_DELEGATION\x10\t*P\n\x0fCardanoDRepType\x12\x0c\n\x08KEY_HASH\ + \x10\0\x12\x0f\n\x0bSCRIPT_HASH\x10\x01\x12\x0b\n\x07ABSTAIN\x10\x02\x12\ + \x11\n\rNO_CONFIDENCE\x10\x03*X\n\x14CardanoPoolRelayType\x12\x12\n\x0eS\ + INGLE_HOST_IP\x10\0\x12\x14\n\x10SINGLE_HOST_NAME\x10\x01\x12\x16\n\x12M\ + ULTIPLE_HOST_NAME\x10\x02*R\n$CardanoTxAuxiliaryDataSupplementType\x12\ + \x08\n\x04NONE\x10\0\x12\x20\n\x1cCVOTE_REGISTRATION_SIGNATURE\x10\x01*6\ + \n\x1eCardanoCVoteRegistrationFormat\x12\t\n\x05CIP15\x10\0\x12\t\n\x05C\ + IP36\x10\x01*\x82\x01\n\x14CardanoTxSigningMode\x12\x18\n\x14ORDINARY_TR\ + ANSACTION\x10\0\x12\x1e\n\x1aPOOL_REGISTRATION_AS_OWNER\x10\x01\x12\x18\ + \n\x14MULTISIG_TRANSACTION\x10\x02\x12\x16\n\x12PLUTUS_TRANSACTION\x10\ + \x03*>\n\x14CardanoTxWitnessType\x12\x11\n\rBYRON_WITNESS\x10\0\x12\x13\ + \n\x0fSHELLEY_WITNESS\x10\x01B;\n#com.satoshilabs.trezor.lib.protobufB\ + \x14TrezorMessageCardano\ "; /// `FileDescriptorProto` object which was a source for this generated file diff --git a/tests/device_tests/cardano/test_sign_tx.py b/tests/device_tests/cardano/test_sign_tx.py index 4d72d0fc7f..2f54787dc1 100644 --- a/tests/device_tests/cardano/test_sign_tx.py +++ b/tests/device_tests/cardano/test_sign_tx.py @@ -139,6 +139,7 @@ def call_sign_tx(client: Client, parameters, input_flow=None, chunkify: bool = F additional_witness_requests=additional_witness_requests, include_network_id=parameters["include_network_id"], chunkify=chunkify, + tag_cbor_sets=parameters["tag_cbor_sets"], )