Skip to content

Commit 6cc584c

Browse files
rg911fboucquez
andauthored
Sub NamespaceId generation bug fix (#763)
* Fixed #753 * Removed unused var * Add more unit tests Co-authored-by: fboucquez <[email protected]>
1 parent 7e784d9 commit 6cc584c

File tree

5 files changed

+27
-6
lines changed

5 files changed

+27
-6
lines changed

src/model/UInt64.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ export class UInt64 {
9494
/**
9595
* Get DTO representation with format: `[lower, higher]`
9696
*
97-
* @internal
9897
* @returns {[number,number]}
9998
*/
10099
public toDTO(): number[] {

src/model/transaction/NamespaceRegistrationTransaction.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
TransactionBuilder,
2525
} from 'catbuffer-typescript';
2626
import { Convert } from '../../core/format';
27+
import * as Utilities from '../../core/format/Utilities';
2728
import { NamespaceMosaicIdGenerator } from '../../infrastructure/transaction';
2829
import { Address, PublicAccount } from '../account';
2930
import { NamespaceId, NamespaceRegistrationType } from '../namespace';
@@ -105,7 +106,7 @@ export class NamespaceRegistrationTransaction extends Transaction {
105106
const namespaceId =
106107
typeof parentNamespace === 'string'
107108
? new NamespaceId(NamespaceMosaicIdGenerator.subnamespaceNamespaceId(parentNamespace, namespaceName))
108-
: new NamespaceId(NamespaceMosaicIdGenerator.namespaceId(namespaceName));
109+
: new NamespaceId(Utilities.generateNamespaceId(parentId.id.toDTO(), namespaceName));
109110
return new NamespaceRegistrationTransaction(
110111
networkType,
111112
TransactionVersion.NAMESPACE_REGISTRATION,

src/service/CurrencyService.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ import { ICurrencyService } from './interfaces';
2626
* A service used to load Currencies objects.
2727
*/
2828
export class CurrencyService implements ICurrencyService {
29-
x;
30-
3129
constructor(private readonly repositoryFactory: RepositoryFactory) {}
3230

3331
/**

test/core/utils/TransactionMapping.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1471,7 +1471,7 @@ describe('TransactionMapping - createFromDTO (Transaction.toJSON() feed)', () =>
14711471
);
14721472

14731473
const expectedHex =
1474-
'A5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001A84E4100000000000000002B02000000000000FFFFFFFFFFFFFFFFCFCBE72D994BE69B0113726F6F742D746573742D6E616D657370616365';
1474+
'A5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001A84E4100000000000000002B02000000000000FFFFFFFFFFFFFFFFE25C68E93F91F0E90113726F6F742D746573742D6E616D657370616365';
14751475
assertSerialization(registerNamespaceTransaction, expectedHex);
14761476

14771477
const transaction = TransactionMapping.createFromDTO(registerNamespaceTransaction.toJSON()) as NamespaceRegistrationTransaction;

test/model/transaction/NamespaceRegistrationTransaction.spec.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ describe('NamespaceRegistrationTransaction', () => {
101101
const signedTransaction = registerNamespaceTransaction.signWith(account, generationHash);
102102

103103
expect(signedTransaction.payload.substring(256, signedTransaction.payload.length)).to.be.equal(
104-
'4BFA5F372D55B384CFCBE72D994BE69B0113726F6F742D746573742D6E616D657370616365',
104+
'4BFA5F372D55B384EE393014E8B74B9C0113726F6F742D746573742D6E616D657370616365',
105105
);
106106
});
107107

@@ -153,4 +153,27 @@ describe('NamespaceRegistrationTransaction', () => {
153153
Object.assign(tx, { signer: account.publicAccount });
154154
expect(tx.shouldNotifyAccount(account.address)).to.be.true;
155155
});
156+
157+
it('Sub namespacename craetd by different type of parent id', () => {
158+
const parentNamespace = 'parent';
159+
const childNamespace = 'child';
160+
const parentId = new NamespaceId(parentNamespace);
161+
162+
const subNameSpaceTransactionStringParent = NamespaceRegistrationTransaction.createSubNamespace(
163+
Deadline.create(1573430400),
164+
childNamespace,
165+
parentNamespace,
166+
NetworkType.TEST_NET,
167+
UInt64.fromUint(100000),
168+
);
169+
const subNameSpaceTransactionIdParent = NamespaceRegistrationTransaction.createSubNamespace(
170+
Deadline.create(1573430400),
171+
childNamespace,
172+
parentId,
173+
NetworkType.TEST_NET,
174+
UInt64.fromUint(100000),
175+
);
176+
177+
expect(subNameSpaceTransactionStringParent.namespaceId.equals(subNameSpaceTransactionIdParent.namespaceId)).to.be.true;
178+
});
156179
});

0 commit comments

Comments
 (0)