Skip to content

Commit 993ddc2

Browse files
authored
Fixed #617 (#618)
- Added setPayloadSize builder method
1 parent 84d9ac9 commit 993ddc2

File tree

43 files changed

+407
-650
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+407
-650
lines changed

src/infrastructure/transaction/CreateTransactionFromDTO.ts

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
161161
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
162162
: undefined,
163163
transactionInfo,
164-
);
164+
).setPayloadSize(transactionDTO.size);
165165
} else if (transactionDTO.type === TransactionType.NAMESPACE_REGISTRATION) {
166166
return new NamespaceRegistrationTransaction(
167167
transactionDTO.network,
@@ -178,7 +178,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
178178
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
179179
: undefined,
180180
transactionInfo,
181-
);
181+
).setPayloadSize(transactionDTO.size);
182182
} else if (transactionDTO.type === TransactionType.MOSAIC_DEFINITION) {
183183
return new MosaicDefinitionTransaction(
184184
transactionDTO.network,
@@ -195,7 +195,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
195195
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
196196
: undefined,
197197
transactionInfo,
198-
);
198+
).setPayloadSize(transactionDTO.size);
199199
} else if (transactionDTO.type === TransactionType.MOSAIC_SUPPLY_CHANGE) {
200200
return new MosaicSupplyChangeTransaction(
201201
transactionDTO.network,
@@ -210,7 +210,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
210210
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
211211
: undefined,
212212
transactionInfo,
213-
);
213+
).setPayloadSize(transactionDTO.size);
214214
} else if (transactionDTO.type === TransactionType.MULTISIG_ACCOUNT_MODIFICATION) {
215215
return new MultisigAccountModificationTransaction(
216216
transactionDTO.network,
@@ -226,7 +226,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
226226
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
227227
: undefined,
228228
transactionInfo,
229-
);
229+
).setPayloadSize(transactionDTO.size);
230230
} else if (transactionDTO.type === TransactionType.HASH_LOCK) {
231231
const networkType = transactionDTO.network;
232232
return new LockFundsTransaction(
@@ -240,7 +240,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
240240
transactionDTO.signature,
241241
transactionDTO.signerPublicKey ? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, networkType) : undefined,
242242
transactionInfo,
243-
);
243+
).setPayloadSize(transactionDTO.size);
244244
} else if (transactionDTO.type === TransactionType.SECRET_LOCK) {
245245
const recipientAddress = transactionDTO.recipientAddress;
246246
const mosaicId = UnresolvedMapping.toUnresolvedMosaic(transactionDTO.mosaicId);
@@ -259,7 +259,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
259259
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
260260
: undefined,
261261
transactionInfo,
262-
);
262+
).setPayloadSize(transactionDTO.size);
263263
} else if (transactionDTO.type === TransactionType.SECRET_PROOF) {
264264
const recipientAddress = transactionDTO.recipientAddress;
265265
return new SecretProofTransaction(
@@ -276,7 +276,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
276276
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
277277
: undefined,
278278
transactionInfo,
279-
);
279+
).setPayloadSize(transactionDTO.size);
280280
} else if (transactionDTO.type === TransactionType.MOSAIC_ALIAS) {
281281
return new MosaicAliasTransaction(
282282
transactionDTO.network,
@@ -291,7 +291,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
291291
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
292292
: undefined,
293293
transactionInfo,
294-
);
294+
).setPayloadSize(transactionDTO.size);
295295
} else if (transactionDTO.type === TransactionType.ADDRESS_ALIAS) {
296296
return new AddressAliasTransaction(
297297
transactionDTO.network,
@@ -306,7 +306,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
306306
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
307307
: undefined,
308308
transactionInfo,
309-
);
309+
).setPayloadSize(transactionDTO.size);
310310
} else if (transactionDTO.type === TransactionType.ACCOUNT_ADDRESS_RESTRICTION) {
311311
return new AccountAddressRestrictionTransaction(
312312
transactionDTO.network,
@@ -321,7 +321,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
321321
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
322322
: undefined,
323323
transactionInfo,
324-
);
324+
).setPayloadSize(transactionDTO.size);
325325
} else if (transactionDTO.type === TransactionType.ACCOUNT_OPERATION_RESTRICTION) {
326326
return new AccountOperationRestrictionTransaction(
327327
transactionDTO.network,
@@ -336,7 +336,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
336336
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
337337
: undefined,
338338
transactionInfo,
339-
);
339+
).setPayloadSize(transactionDTO.size);
340340
} else if (transactionDTO.type === TransactionType.ACCOUNT_MOSAIC_RESTRICTION) {
341341
return new AccountMosaicRestrictionTransaction(
342342
transactionDTO.network,
@@ -355,7 +355,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
355355
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
356356
: undefined,
357357
transactionInfo,
358-
);
358+
).setPayloadSize(transactionDTO.size);
359359
} else if (transactionDTO.type === TransactionType.ACCOUNT_KEY_LINK) {
360360
return new AccountKeyLinkTransaction(
361361
transactionDTO.network,
@@ -369,7 +369,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
369369
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
370370
: undefined,
371371
transactionInfo,
372-
);
372+
).setPayloadSize(transactionDTO.size);
373373
} else if (transactionDTO.type === TransactionType.MOSAIC_GLOBAL_RESTRICTION) {
374374
return new MosaicGlobalRestrictionTransaction(
375375
transactionDTO.network,
@@ -388,7 +388,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
388388
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
389389
: undefined,
390390
transactionInfo,
391-
);
391+
).setPayloadSize(transactionDTO.size);
392392
} else if (transactionDTO.type === TransactionType.MOSAIC_ADDRESS_RESTRICTION) {
393393
return new MosaicAddressRestrictionTransaction(
394394
transactionDTO.network,
@@ -405,7 +405,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
405405
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
406406
: undefined,
407407
transactionInfo,
408-
);
408+
).setPayloadSize(transactionDTO.size);
409409
} else if (transactionDTO.type === TransactionType.ACCOUNT_METADATA) {
410410
return new AccountMetadataTransaction(
411411
transactionDTO.network,
@@ -421,7 +421,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
421421
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
422422
: undefined,
423423
transactionInfo,
424-
);
424+
).setPayloadSize(transactionDTO.size);
425425
} else if (transactionDTO.type === TransactionType.MOSAIC_METADATA) {
426426
return new MosaicMetadataTransaction(
427427
transactionDTO.network,
@@ -438,7 +438,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
438438
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
439439
: undefined,
440440
transactionInfo,
441-
);
441+
).setPayloadSize(transactionDTO.size);
442442
} else if (transactionDTO.type === TransactionType.NAMESPACE_METADATA) {
443443
return new NamespaceMetadataTransaction(
444444
transactionDTO.network,
@@ -455,7 +455,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
455455
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
456456
: undefined,
457457
transactionInfo,
458-
);
458+
).setPayloadSize(transactionDTO.size);
459459
} else if (transactionDTO.type === TransactionType.VRF_KEY_LINK) {
460460
return new VrfKeyLinkTransaction(
461461
transactionDTO.network,
@@ -469,7 +469,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
469469
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
470470
: undefined,
471471
transactionInfo,
472-
);
472+
).setPayloadSize(transactionDTO.size);
473473
} else if (transactionDTO.type === TransactionType.NODE_KEY_LINK) {
474474
return new NodeKeyLinkTransaction(
475475
transactionDTO.network,
@@ -483,7 +483,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
483483
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
484484
: undefined,
485485
transactionInfo,
486-
);
486+
).setPayloadSize(transactionDTO.size);
487487
} else if (transactionDTO.type === TransactionType.VOTING_KEY_LINK) {
488488
return new VotingKeyLinkTransaction(
489489
transactionDTO.network,
@@ -499,7 +499,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
499499
? PublicAccount.createFromPublicKey(transactionDTO.signerPublicKey, transactionDTO.network)
500500
: undefined,
501501
transactionInfo,
502-
);
502+
).setPayloadSize(transactionDTO.size);
503503
}
504504
throw new Error('Unimplemented transaction with type ' + transactionDTO.type);
505505
};
@@ -545,7 +545,7 @@ export const CreateTransactionFromDTO = (transactionDTO): Transaction => {
545545
? PublicAccount.createFromPublicKey(transactionDTO.transaction.signerPublicKey, transactionDTO.transaction.network)
546546
: undefined,
547547
extractTransactionMeta(transactionDTO.meta, transactionDTO.id),
548-
);
548+
).setPayloadSize(transactionDTO.transaction.size);
549549
} else {
550550
return CreateStandaloneTransactionFromDTO(
551551
transactionDTO.transaction,

src/model/transaction/AccountAddressRestrictionTransaction.ts

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
SignatureDto,
2424
TimestampDto,
2525
UnresolvedAddressDto,
26+
TransactionBuilder,
2627
} from 'catbuffer-typescript';
2728
import { Convert } from '../../core/format';
2829
import { DtoMapping } from '../../core/utils/DtoMapping';
@@ -137,39 +138,11 @@ export class AccountAddressRestrictionTransaction extends Transaction {
137138
return isEmbedded ? transaction.toAggregate(PublicAccount.createFromPublicKey(signerPublicKey, networkType)) : transaction;
138139
}
139140

140-
/**
141-
* @override Transaction.size()
142-
* @description get the byte size of a AccountAddressRestrictionTransaction
143-
* @returns {number}
144-
* @memberof AccountAddressRestrictionTransaction
145-
*/
146-
public get size(): number {
147-
const byteSize = super.size;
148-
149-
// set static byte size fields
150-
const byteRestrictionType = 2;
151-
const byteAdditionCount = 1;
152-
const byteDeletionCount = 1;
153-
const byteAccountRestrictionTransactionBody_Reserved1 = 4;
154-
const byteRestrictionAdditions = 24 * this.restrictionAdditions.length;
155-
const byteRestrictionDeletions = 24 * this.restrictionDeletions.length;
156-
157-
return (
158-
byteSize +
159-
byteRestrictionType +
160-
byteAdditionCount +
161-
byteDeletionCount +
162-
byteRestrictionAdditions +
163-
byteRestrictionDeletions +
164-
byteAccountRestrictionTransactionBody_Reserved1
165-
);
166-
}
167-
168141
/**
169142
* @internal
170-
* @returns {Uint8Array}
143+
* @returns {TransactionBuilder}
171144
*/
172-
protected generateBytes(): Uint8Array {
145+
protected createBuilder(): TransactionBuilder {
173146
const signerBuffer = this.signer !== undefined ? Convert.hexToUint8(this.signer.publicKey) : new Uint8Array(32);
174147
const signatureBuffer = this.signature !== undefined ? Convert.hexToUint8(this.signature) : new Uint8Array(64);
175148

@@ -189,7 +162,7 @@ export class AccountAddressRestrictionTransaction extends Transaction {
189162
return new UnresolvedAddressDto(deletion.encodeUnresolvedAddress(this.networkType));
190163
}),
191164
);
192-
return transactionBuilder.serialize();
165+
return transactionBuilder;
193166
}
194167

195168
/**

src/model/transaction/AccountKeyLinkTransaction.ts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
KeyDto,
2323
SignatureDto,
2424
TimestampDto,
25+
TransactionBuilder,
2526
} from 'catbuffer-typescript';
2627
import { Convert } from '../../core/format';
2728
import { PublicAccount } from '../account/PublicAccount';
@@ -128,27 +129,11 @@ export class AccountKeyLinkTransaction extends Transaction {
128129
return isEmbedded ? transaction.toAggregate(PublicAccount.createFromPublicKey(signerPublicKey, networkType)) : transaction;
129130
}
130131

131-
/**
132-
* @override Transaction.size()
133-
* @description get the byte size of a AccountLinkTransaction
134-
* @returns {number}
135-
* @memberof AccountLinkTransaction
136-
*/
137-
public get size(): number {
138-
const byteSize = super.size;
139-
140-
// set static byte size fields
141-
const bytePublicKey = 32;
142-
const byteLinkAction = 1;
143-
144-
return byteSize + bytePublicKey + byteLinkAction;
145-
}
146-
147132
/**
148133
* @internal
149-
* @returns {Uint8Array}
134+
* @returns {TransactionBuilder}
150135
*/
151-
protected generateBytes(): Uint8Array {
136+
protected createBuilder(): TransactionBuilder {
152137
const signerBuffer = this.signer !== undefined ? Convert.hexToUint8(this.signer.publicKey) : new Uint8Array(32);
153138
const signatureBuffer = this.signature !== undefined ? Convert.hexToUint8(this.signature) : new Uint8Array(64);
154139

@@ -163,7 +148,7 @@ export class AccountKeyLinkTransaction extends Transaction {
163148
new KeyDto(Convert.hexToUint8(this.linkedPublicKey)),
164149
this.linkAction.valueOf(),
165150
);
166-
return transactionBuilder.serialize();
151+
return transactionBuilder;
167152
}
168153

169154
/**

src/model/transaction/AccountMetadataTransaction.ts

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
SignatureDto,
2424
TimestampDto,
2525
UnresolvedAddressDto,
26+
TransactionBuilder,
2627
} from 'catbuffer-typescript';
2728
import { Convert } from '../../core/format';
2829
import { PublicAccount } from '../account/PublicAccount';
@@ -152,29 +153,11 @@ export class AccountMetadataTransaction extends Transaction {
152153
return isEmbedded ? transaction.toAggregate(PublicAccount.createFromPublicKey(signerPublicKey, networkType)) : transaction;
153154
}
154155

155-
/**
156-
* @override Transaction.size()
157-
* @description get the byte size of a AccountLinkTransaction
158-
* @returns {number}
159-
* @memberof AccountLinkTransaction
160-
*/
161-
public get size(): number {
162-
const byteSize = super.size;
163-
164-
// set static byte size fields
165-
const targetAddress = 24;
166-
const byteScopedMetadataKey = 8;
167-
const byteValueSizeDelta = 2;
168-
const valueSize = 2;
169-
170-
return byteSize + targetAddress + byteScopedMetadataKey + byteValueSizeDelta + valueSize + this.value.length;
171-
}
172-
173156
/**
174157
* @internal
175-
* @returns {Uint8Array}
158+
* @returns {TransactionBuilder}
176159
*/
177-
protected generateBytes(): Uint8Array {
160+
protected createBuilder(): TransactionBuilder {
178161
const signerBuffer = this.signer !== undefined ? Convert.hexToUint8(this.signer.publicKey) : new Uint8Array(32);
179162
const signatureBuffer = this.signature !== undefined ? Convert.hexToUint8(this.signature) : new Uint8Array(64);
180163

@@ -191,7 +174,7 @@ export class AccountMetadataTransaction extends Transaction {
191174
this.valueSizeDelta,
192175
Convert.utf8ToUint8(this.value),
193176
);
194-
return transactionBuilder.serialize();
177+
return transactionBuilder;
195178
}
196179

197180
/**

0 commit comments

Comments
 (0)