Skip to content

Commit 37f4eb0

Browse files
committed
Added embedded transaction builders
1 parent 6c40ea5 commit 37f4eb0

11 files changed

+63
-25
lines changed

src/model/transaction/AccountOperationRestrictionTransaction.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,6 @@ import { Transaction } from './Transaction';
3232
import { TransactionInfo } from './TransactionInfo';
3333
import { TransactionType } from './TransactionType';
3434
import { TransactionVersion } from './TransactionVersion';
35-
import { AccountOperationRestrictionModificationBuilder } from '../../infrastructure/catbuffer/AccountOperationRestrictionModificationBuilder';
36-
import { AccountOperationRestrictionTransactionBuilder } from '../../infrastructure/catbuffer/AccountOperationRestrictionTransactionBuilder';
37-
import { SignatureDto } from '../../infrastructure/catbuffer/SignatureDto';
38-
import { KeyDto } from '../../infrastructure/catbuffer/KeyDto';
39-
import { EntityTypeDto } from '../../infrastructure/catbuffer/EntityTypeDto';
40-
import { AmountDto } from '../../infrastructure/catbuffer/AmountDto';
41-
import { TimestampDto } from '../../infrastructure/catbuffer/TimestampDto';
4235

4336
export class AccountOperationRestrictionTransaction extends Transaction {
4437

src/model/transaction/AddressAliasTransaction.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import { Transaction } from './Transaction';
3535
import { TransactionInfo } from './TransactionInfo';
3636
import { TransactionType } from './TransactionType';
3737
import { TransactionVersion } from './TransactionVersion';
38-
import { RawAddress } from '../../core/format';
3938

4039
/**
4140
* In case a mosaic has the flag 'supplyMutable' set to true, the creator of the mosaic can change the supply,

src/model/transaction/AggregateTransaction.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,4 +261,12 @@ export class AggregateTransaction extends Transaction {
261261
protected generateEmbeddedBytes(): Uint8Array {
262262
throw new Error('Method not implemented');
263263
}
264+
265+
/**
266+
* @internal
267+
* @returns {Uint8Array}
268+
*/
269+
protected generateEmbeddedBytes(): Uint8Array {
270+
throw new Error('Not implemented');
271+
}
264272
}

src/model/transaction/ModifyMultisigAccountTransaction.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { Transaction } from './Transaction';
3131
import { TransactionInfo } from './TransactionInfo';
3232
import { TransactionType } from './TransactionType';
3333
import { TransactionVersion } from './TransactionVersion';
34+
import { EmbeddedMultisigAccountModificationTransactionBuilder } from '../../infrastructure/catbuffer/EmbeddedMultisigAccountModificationTransactionBuilder';
3435

3536
/**
3637
* Modify multisig account transactions are part of the NEM's multisig account system.

src/model/transaction/MosaicDefinitionTransaction.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,6 @@ import { Transaction } from './Transaction';
3737
import { TransactionInfo } from './TransactionInfo';
3838
import { TransactionType } from './TransactionType';
3939
import { TransactionVersion } from './TransactionVersion';
40-
import { MosaicDefinitionTransactionBuilder } from '../../infrastructure/catbuffer/MosaicDefinitionTransactionBuilder';
41-
import { SignatureDto } from '../../infrastructure/catbuffer/SignatureDto';
42-
import { KeyDto } from '../../infrastructure/catbuffer/KeyDto';
43-
import { EntityTypeDto } from '../../infrastructure/catbuffer/EntityTypeDto';
44-
import { AmountDto } from '../../infrastructure/catbuffer/AmountDto';
45-
import { TimestampDto } from '../../infrastructure/catbuffer/TimestampDto';
46-
import { MosaicNonceDto } from '../../infrastructure/catbuffer/MosaicNonceDto';
47-
import { MosaicIdDto } from '../../infrastructure/catbuffer/MosaicIdDto';
48-
import { MosaicFlagsDto } from '../../infrastructure/catbuffer/MosaicFlagsDto';
49-
import { MosaicFlags } from '../mosaic/MosaicFlag';
50-
import { BlockDurationDto } from '../../infrastructure/catbuffer/BlockDurationDto';
51-
import { Convert } from '../../core/format';
52-
import { GeneratorUtils } from '../../infrastructure/catbuffer/GeneratorUtils';
5340

5441
/**
5542
* Before a mosaic can be created or transferred, a corresponding definition of the mosaic has to be created and published to the network.
@@ -212,4 +199,25 @@ export class MosaicDefinitionTransaction extends Transaction {
212199
);
213200
return transactionBuilder.serialize();
214201
}
202+
203+
/**
204+
* @internal
205+
* @returns {Uint8Array}
206+
*/
207+
protected generateEmbeddedBytes(): Uint8Array {
208+
const signerBuffer = new Uint8Array(32);
209+
210+
const transactionBuilder = new EmbeddedMosaicDefinitionTransactionBuilder(
211+
new KeyDto(signerBuffer),
212+
this.versionToDTO(),
213+
TransactionType.MOSAIC_DEFINITION.valueOf(),
214+
new MosaicNonceDto(this.getMosaicNonceIntValue()),
215+
new MosaicIdDto(this.mosaicId.id.toDTO()),
216+
this.getMosaicFlagValue(),
217+
this.mosaicProperties.divisibility,
218+
new BlockDurationDto(this.mosaicProperties.duration ?
219+
this.mosaicProperties.duration.toDTO() : []),
220+
);
221+
return transactionBuilder.serialize();
222+
}
215223
}

src/model/transaction/Transaction.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ export abstract class Transaction {
122122
*/
123123
protected abstract generateBytes(): Uint8Array;
124124

125+
/**
126+
* @internal
127+
*/
128+
protected abstract generateEmbeddedBytes(): Uint8Array;
129+
125130
/**
126131
* @internal
127132
* Serialize and sign transaction creating a new SignedTransaction

src/model/transaction/TransferTransaction.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,4 +224,24 @@ export class TransferTransaction extends Transaction {
224224
);
225225
return transactionBuilder.serialize();
226226
}
227+
228+
/**
229+
* @internal
230+
* @returns {Uint8Array}
231+
*/
232+
protected generateEmbeddedBytes(): Uint8Array {
233+
const signerBuffer = new Uint8Array(32);
234+
const transactionBuilder = new EmbeddedTransferTransactionBuilder(
235+
new KeyDto(signerBuffer),
236+
this.versionToDTO(),
237+
TransactionType.TRANSFER.valueOf(),
238+
new UnresolvedAddressDto(RawAddress.stringToAddress(this.recipientToString())),
239+
this.getMessageBuffer(),
240+
this.sortMosaics().map((mosaic) => {
241+
return new UnresolvedMosaicBuilder(new UnresolvedMosaicIdDto(mosaic.id.id.toDTO()),
242+
new AmountDto(mosaic.amount.toDTO()));
243+
}),
244+
);
245+
return transactionBuilder.serialize();
246+
}
227247
}

test/model/transaction/MosaicAddressRestrictionTransaction.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('MosaicAddressRestrictionTransaction', () => {
4747
expect(mosaicAddressRestrictionTransaction.newRestrictionValue.toHex()).to.be.equal(UInt64.fromUint(8).toHex());
4848
expect(mosaicAddressRestrictionTransaction.targetAddress.plain()).to.be.equal(account.address.plain());
4949

50-
const signedTransaction = mosaicAddressRestrictionTransaction.signWith(account, generationHash);
50+
const signedTransaction = mosaicAddressRestrictionTransaction.signWithCatbuffer(account, generationHash);
5151

5252
expect(signedTransaction.payload.substring(
5353
240,

test/model/transaction/MosaicGlobalRestrictionTransaction.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ describe('MosaicGlobalRestrictionTransaction', () => {
5454
expect(mosaicGlobalRestrictionTransaction.previousRestrictionType).to.be.equal(MosaicRestrictionType.EQ);
5555
expect(mosaicGlobalRestrictionTransaction.newRestrictionType).to.be.equal(MosaicRestrictionType.GE);
5656

57-
const signedTransaction = mosaicGlobalRestrictionTransaction.signWith(account, generationHash);
57+
const signedTransaction = mosaicGlobalRestrictionTransaction.signWithCatbuffer(account, generationHash);
5858

5959
expect(signedTransaction.payload.substring(
6060
240,

test/model/transaction/RegisterNamespaceTransaction.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ describe('RegisterNamespaceTransaction', () => {
6666
expect(registerNamespaceTransaction.duration!.lower).to.be.equal(1000);
6767
expect(registerNamespaceTransaction.duration!.higher).to.be.equal(0);
6868

69-
const signedTransaction = registerNamespaceTransaction.signWith(account, generationHash);
69+
const signedTransaction = registerNamespaceTransaction.signWithCatbuffer(account, generationHash);
7070

7171
expect(signedTransaction.payload.substring(
7272
240,
@@ -83,7 +83,7 @@ describe('RegisterNamespaceTransaction', () => {
8383
NetworkType.MIJIN_TEST,
8484
);
8585

86-
const signedTransaction = registerNamespaceTransaction.signWith(account, generationHash);
86+
const signedTransaction = registerNamespaceTransaction.signWithCatbuffer(account, generationHash);
8787

8888
expect(signedTransaction.payload.substring(
8989
240,

0 commit comments

Comments
 (0)