Skip to content

Commit 4f86890

Browse files
committed
- Refactored to use factory method for NamespaceId creation
- Fixed createFromEncoded bug
1 parent 5e95c84 commit 4f86890

File tree

6 files changed

+27
-26
lines changed

6 files changed

+27
-26
lines changed

e2e/infrastructure/transaction/ValidateTransaction.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,14 @@ const ValidateTransaction = {
136136
expect(registerNamespaceTransaction.namespaceName)
137137
.to.be.equal(registerNamespaceTransactionDTO.transaction.name);
138138
deepEqual(registerNamespaceTransaction.namespaceId,
139-
new NamespaceId(UInt64.fromHex(registerNamespaceTransactionDTO.transaction.namespaceId).toDTO()));
139+
NamespaceId.createFromEncoded(registerNamespaceTransactionDTO.transaction.namespaceId));
140140

141141
if (registerNamespaceTransaction.namespaceType === 0) {
142142
deepEqual(registerNamespaceTransaction.duration,
143143
new UInt64(registerNamespaceTransactionDTO.transaction.duration));
144144
} else {
145145
deepEqual(registerNamespaceTransaction.parentId,
146-
new NamespaceId(UInt64.fromHex(registerNamespaceTransactionDTO.transaction.parentId).toDTO()));
146+
NamespaceId.createFromEncoded(registerNamespaceTransactionDTO.transaction.parentId));
147147
}
148148
},
149149
validateTransferTx: (transferTransaction, transferTransactionDTO) => {

src/infrastructure/NamespaceHttp.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import {NamespaceId} from '../model/namespace/NamespaceId';
2929
import {NamespaceInfo} from '../model/namespace/NamespaceInfo';
3030
import {NamespaceName} from '../model/namespace/NamespaceName';
3131
import {UInt64} from '../model/UInt64';
32-
import { NamespaceInfoDTO, NamespaceNameDTO, NamespaceRoutesApi, NamespaceDTO } from './api';
32+
import { NamespaceInfoDTO, NamespaceNameDTO, NamespaceRoutesApi } from './api';
3333
import {Http} from './Http';
3434
import {NamespaceRepository} from './NamespaceRepository';
3535
import {NetworkHttp} from './NetworkHttp';
@@ -76,7 +76,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
7676
namespaceInfoDTO.namespace.registrationType as number,
7777
namespaceInfoDTO.namespace.depth,
7878
this.extractLevels(namespaceInfoDTO.namespace),
79-
new NamespaceId(UInt64.fromHex(namespaceInfoDTO.namespace.parentId).toDTO()),
79+
NamespaceId.createFromEncoded(namespaceInfoDTO.namespace.parentId),
8080
PublicAccount.createFromPublicKey(namespaceInfoDTO.namespace.ownerPublicKey, networkType),
8181
UInt64.fromNumericString(namespaceInfoDTO.namespace.startHeight),
8282
UInt64.fromNumericString(namespaceInfoDTO.namespace.endHeight),
@@ -113,7 +113,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
113113
namespaceInfoDTO.namespace.registrationType as number,
114114
namespaceInfoDTO.namespace.depth,
115115
this.extractLevels(namespaceInfoDTO.namespace),
116-
new NamespaceId(UInt64.fromHex(namespaceInfoDTO.namespace.parentId).toDTO()),
116+
NamespaceId.createFromEncoded(namespaceInfoDTO.namespace.parentId),
117117
PublicAccount.createFromPublicKey(namespaceInfoDTO.namespace.ownerPublicKey, networkType),
118118
UInt64.fromNumericString(namespaceInfoDTO.namespace.startHeight),
119119
UInt64.fromNumericString(namespaceInfoDTO.namespace.endHeight),
@@ -150,7 +150,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
150150
namespaceInfoDTO.namespace.registrationType as number,
151151
namespaceInfoDTO.namespace.depth,
152152
this.extractLevels(namespaceInfoDTO.namespace),
153-
new NamespaceId(UInt64.fromHex(namespaceInfoDTO.namespace.parentId).toDTO()),
153+
NamespaceId.createFromEncoded(namespaceInfoDTO.namespace.parentId),
154154
PublicAccount.createFromPublicKey(namespaceInfoDTO.namespace.ownerPublicKey, networkType),
155155
UInt64.fromNumericString(namespaceInfoDTO.namespace.startHeight),
156156
UInt64.fromNumericString(namespaceInfoDTO.namespace.endHeight),
@@ -178,9 +178,9 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
178178
const namespaceNamesDTO = response.body;
179179
return namespaceNamesDTO.map((namespaceNameDTO) => {
180180
return new NamespaceName(
181-
new NamespaceId(UInt64.fromHex(namespaceNameDTO.namespaceId).toDTO()),
181+
NamespaceId.createFromEncoded(namespaceNameDTO.namespaceId),
182182
namespaceNameDTO.name,
183-
namespaceNameDTO.parentId ? new NamespaceId(UInt64.fromHex(namespaceNameDTO.parentId).toDTO()) : undefined,
183+
namespaceNameDTO.parentId ? NamespaceId.createFromEncoded(namespaceNameDTO.parentId) : undefined,
184184
);
185185
});
186186
}),
@@ -250,13 +250,13 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
250250
private extractLevels(namespace: any): NamespaceId[] {
251251
const result: NamespaceId[] = [];
252252
if (namespace.level0) {
253-
result.push(new NamespaceId(UInt64.fromHex(namespace.level0).toDTO()));
253+
result.push(NamespaceId.createFromEncoded(namespace.level0));
254254
}
255255
if (namespace.level1) {
256-
result.push(new NamespaceId(UInt64.fromHex(namespace.level1).toDTO()));
256+
result.push(NamespaceId.createFromEncoded(namespace.level1));
257257
}
258258
if (namespace.level2) {
259-
result.push(new NamespaceId(UInt64.fromHex(namespace.level2).toDTO()));
259+
result.push(NamespaceId.createFromEncoded(namespace.level2));
260260
}
261261
return result;
262262
}

src/infrastructure/receipt/CreateReceiptFromDTO.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ const extractArtifactId = (receiptType: ReceiptType, id: string): MosaicId | Nam
199199
case ReceiptType.Mosaic_Expired:
200200
return new MosaicId(id);
201201
case ReceiptType.Namespace_Expired:
202-
return new NamespaceId(UInt64.fromHex(id).toDTO());
202+
return NamespaceId.createFromEncoded(id);
203203
default:
204204
throw new Error('Receipt type is not supported.');
205205
}

src/infrastructure/transaction/CreateTransactionFromDTO.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
147147
UInt64.fromNumericString(transactionDTO.maxFee || '0'),
148148
transactionDTO.registrationType,
149149
transactionDTO.name,
150-
new NamespaceId(UInt64.fromHex(transactionDTO.id).toDTO()),
150+
NamespaceId.createFromEncoded(transactionDTO.id),
151151
transactionDTO.registrationType === 0 ? UInt64.fromNumericString(transactionDTO.duration) : undefined,
152-
transactionDTO.registrationType === 1 ? new NamespaceId(UInt64.fromHex(transactionDTO.parentId).toDTO()) : undefined,
152+
transactionDTO.registrationType === 1 ? NamespaceId.createFromEncoded(transactionDTO.parentId) : undefined,
153153
transactionDTO.signature,
154154
transactionDTO.signerPublicKey ? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey,
155155
extractNetworkType(transactionDTO.version)) : undefined,
@@ -260,7 +260,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
260260
Deadline.createFromDTO(transactionDTO.deadline),
261261
UInt64.fromNumericString(transactionDTO.maxFee || '0'),
262262
transactionDTO.aliasAction,
263-
new NamespaceId(UInt64.fromHex(transactionDTO.namespaceId).toDTO()),
263+
NamespaceId.createFromEncoded(transactionDTO.namespaceId),
264264
new MosaicId(transactionDTO.mosaicId),
265265
transactionDTO.signature,
266266
transactionDTO.signerPublicKey ? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey,
@@ -274,7 +274,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
274274
Deadline.createFromDTO(transactionDTO.deadline),
275275
UInt64.fromNumericString(transactionDTO.maxFee || '0'),
276276
transactionDTO.aliasAction,
277-
new NamespaceId(UInt64.fromHex(transactionDTO.namespaceId).toDTO()),
277+
NamespaceId.createFromEncoded(transactionDTO.namespaceId),
278278
extractRecipient(transactionDTO.address) as Address,
279279
transactionDTO.signature,
280280
transactionDTO.signerPublicKey ? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey,
@@ -417,7 +417,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
417417
UInt64.fromNumericString(transactionDTO.maxFee || '0'),
418418
transactionDTO.targetPublicKey,
419419
UInt64.fromNumericString(transactionDTO.scopedMetadataKey),
420-
new NamespaceId(UInt64.fromHex(transactionDTO.targetNamespaceId).toDTO()),
420+
NamespaceId.createFromEncoded(transactionDTO.targetNamespaceId),
421421
transactionDTO.valueSizeDelta,
422422
convert.hexToUint8(transactionDTO.value),
423423
transactionDTO.signature,
@@ -474,7 +474,7 @@ export const extractRecipient = (recipientAddress: any): Address | NamespaceId
474474
if (recipientAddress.hasOwnProperty('address')) {
475475
return Address.createFromRawAddress(recipientAddress.address);
476476
} else if (recipientAddress.hasOwnProperty('id')) {
477-
return new NamespaceId(UInt64.fromHex(recipientAddress.id).toDTO());
477+
return NamespaceId.createFromEncoded(recipientAddress.id);
478478
}
479479
}
480480
throw new Error(`Recipient: ${recipientAddress} type is not recognised`);
@@ -503,7 +503,7 @@ export const extractMosaics = (mosaics: any): Mosaic[] => {
503503

504504
// if most significant bit of byte 0 is set, then we have a namespaceId
505505
if ((byte0 & 128) === 128) {
506-
const namespaceId = new NamespaceId(UInt64.fromHex(mosaicDTO.id).toDTO());
506+
const namespaceId = NamespaceId.createFromEncoded(mosaicDTO.id);
507507
return new Mosaic(namespaceId, UInt64.fromNumericString(mosaicDTO.amount));
508508
}
509509

src/model/namespace/NamespaceId.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class NamespaceId {
5555
* @returns {NamespaceId}
5656
*/
5757
public static createFromEncoded(encoded: string): NamespaceId {
58-
const uint = convert.hexToUint8(encoded).reverse();
58+
const uint = convert.hexToUint8(encoded);
5959
const hex = convert.uint8ToHex(uint);
6060
const namespace = new NamespaceId(Id.fromHex(hex).toDTO());
6161
return namespace;

test/model/namespace/NamespaceId.spec.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {deepEqual} from 'assert';
1818
import {expect} from 'chai';
1919
import {Id} from '../../../src/model/Id';
2020
import {NamespaceId} from '../../../src/model/namespace/NamespaceId';
21+
import { UInt64 } from '../../../src/model/UInt64';
2122

2223
describe('NamespaceId', () => {
2324
it('should be created from root namespace name', () => {
@@ -39,12 +40,12 @@ describe('NamespaceId', () => {
3940
});
4041

4142
const vectors = [
42-
{encoded: '4bfa5f372d55b384', uint: [929036875, 2226345261]}, // new NamespaceId('nem')
43-
{encoded: '08a12f89ee5a49f8', uint: [2301600008, 4165556974]}, // new NamespaceId('nem.owner.test1')
44-
{encoded: '1f810565e8f4aeab', uint: [1694859551, 2880369896]}, // new NamespaceId('nem.owner.test2')
45-
{encoded: '552d1c0a2bc9b8ae', uint: [169618773, 2931345707]}, // new NamespaceId('nem.owner.test3')
46-
{encoded: 'bfca1440d49ae090', uint: [1075104447, 2430638804]}, // new NamespaceId('nem.owner.test4')
47-
{encoded: 'ccf10b96814211ab', uint: [2517365196, 2870035073]}, // new NamespaceId('nem.owner.test5')
43+
{encoded: '84B3552D375FFA4B', uint: [929036875, 2226345261]}, // new NamespaceId('nem')
44+
{encoded: 'F8495AEE892FA108', uint: [2301600008, 4165556974]}, // new NamespaceId('nem.owner.test1')
45+
{encoded: 'ABAEF4E86505811F', uint: [1694859551, 2880369896]}, // new NamespaceId('nem.owner.test2')
46+
{encoded: 'AEB8C92B0A1C2D55', uint: [169618773, 2931345707]}, // new NamespaceId('nem.owner.test3')
47+
{encoded: '90E09AD44014CABF', uint: [1075104447, 2430638804]}, // new NamespaceId('nem.owner.test4')
48+
{encoded: 'AB114281960BF1CC', uint: [2517365196, 2870035073]}, // new NamespaceId('nem.owner.test5')
4849
];
4950

5051
it('should be created from encoded vectors', () => {

0 commit comments

Comments
 (0)