test(core): fix Stellar payment request tests.
What changed, and why it matters
This commit only updates test data and a test assertion for Stellar payment request tests. It does not change any production firmware code, so it has no direct security impact on users.
No security action needed; this is a test-only maintenance change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff updates XDR test fixtures in common/tests/fixtures/stellar/sign_tx.json and adjusts a test in tests/device_tests/stellar/test_stellar.py to set tx_expected.payment_req = None because payment requests are not encoded in XDR. There are no changes to firmware source, cryptographic handling, or device behavior.
Changed components
tests/device_tests/stellar/test_stellar.pycommon/tests/fixtures/stellar/sign_tx.jsonInspect captured patch +6 / −5
diff --git a/common/tests/fixtures/stellar/sign_tx.json b/common/tests/fixtures/stellar/sign_tx.json
index 64c745a8..ec1511bf 100644
--- a/common/tests/fixtures/stellar/sign_tx.json
+++ b/common/tests/fixtures/stellar/sign_tx.json
@@ -208,7 +208,7 @@
"name": "StellarPaymentOp-memo-and-payment-request",
"experimental": true,
"parameters": {
- "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAGQAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAEAAAAAAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAFYAAAAAAAAACmElgLCDlg2XxI8Eth6HKRVDRDNIbCuDhjUTj5W/WoVAAAAAB3PFpgAAAAAAAAAAA==",
+ "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAGQAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAQAAABdIZWxsbyBwYXltZW50IHJlcXVlc3RzIQAAAAABAAAAAAAAAAEAAAAAXVVkJGaxhbhDFS6eIZFR28WJICfsQBAaUXvtXKAwwuAAAAABWAAAAAAAAAAphJYCwg5YNl8SPBLYehykVQ0QzSGwrg4Y1E4+Vv1qFQAAAAAdzxaYAAAAAAAAAAA=",
"address_n": "m/44'/148'/0'",
"network_passphrase": "Test SDF Network ; September 2015",
"tx": {
@@ -279,12 +279,12 @@
"name": "StellarPaymentOp-payment-request-multiple-operations",
"experimental": true,
"parameters": {
- "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAGQAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAEAAAAAAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAFYAAAAAAAAACmElgLCDlg2XxI8Eth6HKRVDRDNIbCuDhjUTj5W/WoVAAAAAB3PFpgAAAAAAAAAAA==",
+ "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAMgAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAIAAAAAAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAFYAAAAAAAAACmElgLCDlg2XxI8Eth6HKRVDRDNIbCuDhjUTj5W/WoVAAAAAAvtc5gAAAAAAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAFYAAAAAAAAACmElgLCDlg2XxI8Eth6HKRVDRDNIbCuDhjUTj5W/WoVAAAAABHjVJgAAAAAAAAAAA==",
"address_n": "m/44'/148'/0'",
"network_passphrase": "Test SDF Network ; September 2015",
"tx": {
"source_account": "GAXSFOOGF4ELO5HT5PTN23T5XE6D5QWL3YBHSVQ2HWOFEJNYYMRJENBV",
- "fee": 100,
+ "fee": 200,
"sequence_number": 1000,
"timebounds_start": 461535181,
"timebounds_end": 1575234180,
@@ -322,12 +322,12 @@
{
"name": "Payment request with invalid op",
"parameters": {
- "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAGQAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAEAAAAAAAAACAAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAAAAAAA",
+ "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAMgAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAIAAAAAAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAFYAAAAAAAAACmElgLCDlg2XxI8Eth6HKRVDRDNIbCuDhjUTj5W/WoVAAAAAAvtc5gAAAAAAAAACAAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAAAAAAA",
"address_n": "m/44'/148'/0'",
"network_passphrase": "Test SDF Network ; September 2015",
"tx": {
"source_account": "GAXSFOOGF4ELO5HT5PTN23T5XE6D5QWL3YBHSVQ2HWOFEJNYYMRJENBV",
- "fee": 100,
+ "fee": 200,
"sequence_number": 1000,
"timebounds_start": 461535181,
"timebounds_end": 1575234180,
diff --git a/tests/device_tests/stellar/test_stellar.py b/tests/device_tests/stellar/test_stellar.py
index 437a7642..e4a7ec67 100644
--- a/tests/device_tests/stellar/test_stellar.py
+++ b/tests/device_tests/stellar/test_stellar.py
@@ -163,6 +163,7 @@ def test_xdr(session: Session, parameters, result):
tx, operations = stellar.from_envelope(envelope)
tx.address_n = parse_path(parameters["address_n"])
tx_expected, operations_expected = parameters_to_proto(session, parameters)
+ tx_expected.payment_req = None # payment requests are not encoded in XDR
assert tx == tx_expected
for expected, actual in zip(operations_expected, operations):
assert expected == actual
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.