From eece4815eb09bc361af76dd4cff57bc77018f052 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Mon, 14 Oct 2019 19:02:43 +0100 Subject: [PATCH] #307 Fixed address alias deserialization bug --- src/core/utils/UnresolvedMapping.ts | 2 +- .../transaction/TransferTransaction.spec.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/core/utils/UnresolvedMapping.ts b/src/core/utils/UnresolvedMapping.ts index 35d9cc2887..1884a45d03 100644 --- a/src/core/utils/UnresolvedMapping.ts +++ b/src/core/utils/UnresolvedMapping.ts @@ -61,7 +61,7 @@ export class UnresolvedMapping { // namespaceId encoded hexadecimal notation provided // only 8 bytes are relevant to resolve the NamespaceId const relevantPart = address.substr(2, 16); - return NamespaceId.createFromEncoded(relevantPart); + return NamespaceId.createFromEncoded(Convert.uint8ToHex(Convert.hexToUint8Reverse(relevantPart))); } // read address from encoded hexadecimal notation diff --git a/test/model/transaction/TransferTransaction.spec.ts b/test/model/transaction/TransferTransaction.spec.ts index 92d3d6a86d..c4f81a4e46 100644 --- a/test/model/transaction/TransferTransaction.spec.ts +++ b/test/model/transaction/TransferTransaction.spec.ts @@ -359,4 +359,23 @@ describe('TransferTransaction', () => { expect(sorted.mosaics[2].id.toHex()).to.be.equal('D525AD41D95FCF29'); }); + + it('Test Serialization and Deserialization Using namespaceIds', () => { + const namespaceId = new NamespaceId('testaccount2'); +​ + const transferTransaction = TransferTransaction.create( + Deadline.createFromDTO('1'), + namespaceId, + [NetworkCurrencyMosaic.createAbsolute(1)], + PlainMessage.create('test-message'), + NetworkType.MIJIN_TEST, + ); +​ + const payload = transferTransaction.serialize(); + const newTransaction = CreateTransactionFromPayload(payload) as TransferTransaction; + const newPayload = newTransaction.serialize(); +​ + expect(newPayload).to.be.equal(payload); + expect(newTransaction.recipientToString()).to.be.equal(transferTransaction.recipientToString()); + }); });