From 93fd5b9cde40daa8015c3c9733637bed22969bf6 Mon Sep 17 00:00:00 2001 From: Gary Malouf <982483+gmalouf@users.noreply.github.com> Date: Wed, 24 Sep 2025 14:23:41 -0400 Subject: [PATCH] Make sure reject version param gets serialized to message pack format. --- src/transaction.ts | 1 + tests/5.Transaction.ts | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/transaction.ts b/src/transaction.ts index a9c606396..05b40fb64 100644 --- a/src/transaction.ts +++ b/src/transaction.ts @@ -588,6 +588,7 @@ export class Transaction implements encoding.Encodable { ), }, { key: 'apep', valueSchema: new OptionalSchema(new Uint64Schema()) }, + { key: 'aprv', valueSchema: new OptionalSchema(new Uint64Schema()) }, // StateProof { key: 'sptype', valueSchema: new OptionalSchema(new Uint64Schema()) }, { key: 'sp', valueSchema: new OptionalSchema(StateProof.encodingSchema) }, diff --git a/tests/5.Transaction.ts b/tests/5.Transaction.ts index a85aa46f5..f26c74603 100644 --- a/tests/5.Transaction.ts +++ b/tests/5.Transaction.ts @@ -2643,8 +2643,11 @@ describe('Application Resources References', () => { const encodingData = txnWithRejectVersion.toEncodingData(); assert.strictEqual(encodingData.get('aprv'), 5); - // Note: Serialization/deserialization test temporarily removed due to msgpack decoding issue - // The core functionality works correctly as verified by other tests + // Test serialization/deserialization + const encodedTxn = + algosdk.encodeUnsignedTransaction(txnWithRejectVersion); + const decodedTxn = algosdk.decodeUnsignedTransaction(encodedTxn); + assert.strictEqual(decodedTxn.applicationCall?.rejectVersion, 5); // Test with default rejectVersion (should be 0) const txnDefaultRejectVersion = algosdk.makeApplicationCallTxnFromObject({