Skip to content

Commit 882971d

Browse files
author
Greg S
committed
WIP #53: rewrite all transaction classes to add maxFee in create methods + rewrite tests to add 0 maxFee
1 parent f4c9cbb commit 882971d

22 files changed

+195
-67
lines changed

e2e/infrastructure/TransactionHttp.spec.ts

Lines changed: 57 additions & 0 deletions
Large diffs are not rendered by default.

e2e/infrastructure/TransactionUtils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { MultisigCosignatoryModification } from '../../src/model/transaction/Mul
2828
import { MultisigCosignatoryModificationType } from '../../src/model/transaction/MultisigCosignatoryModificationType';
2929
import {PlainMessage} from '../../src/model/transaction/PlainMessage';
3030
import {TransferTransaction} from '../../src/model/transaction/TransferTransaction';
31+
import {UInt64} from '../../src/model/UInt64';
3132
import {CosignatoryAccount, MultisigAccount, NIS2_URL, TestingAccount} from '../../test/conf/conf.spec';
3233

3334
export class TransactionUtils {
@@ -37,6 +38,7 @@ export class TransactionUtils {
3738
const account = TestingAccount;
3839
const transferTransaction = TransferTransaction.create(
3940
Deadline.create(),
41+
new UInt64([0, 0]),
4042
recipient,
4143
[],
4244
PlainMessage.create('test-message'),
@@ -50,6 +52,7 @@ export class TransactionUtils {
5052
const account = TestingAccount;
5153
const transferTransaction = TransferTransaction.create(
5254
Deadline.create(),
55+
new UInt64([0, 0]),
5356
Address.createFromRawAddress('SBILTA367K2LX2FEXG5TFWAS7GEFYAGY7QLFBYKC'),
5457
[NetworkCurrencyMosaic.createRelative(100000000000)],
5558
PlainMessage.create('test-message'),
@@ -62,6 +65,7 @@ export class TransactionUtils {
6265
public static createAggregateBoundedTransactionAndAnnounce(transactionHttp: TransactionHttp = new TransactionHttp(NIS2_URL)) {
6366
const transferTransaction = TransferTransaction.create(
6467
Deadline.create(),
68+
new UInt64([0, 0]),
6569
Address.createFromRawAddress('SBILTA367K2LX2FEXG5TFWAS7GEFYAGY7QLFBYKC'),
6670
[NetworkCurrencyMosaic.createRelative(100000000000)],
6771
PlainMessage.create('test-message'),
@@ -70,6 +74,7 @@ export class TransactionUtils {
7074

7175
const aggregateTransaction = AggregateTransaction.createBonded(
7276
Deadline.create(2, ChronoUnit.MINUTES),
77+
new UInt64([0, 0]),
7378
[transferTransaction.toAggregate(MultisigAccount.publicAccount)],
7479
NetworkType.MIJIN_TEST,
7580
[],

src/infrastructure/transaction/CreateTransactionFromDTO.ts

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export const CreateTransactionFromDTO = (transactionDTO): Transaction => {
6868
innerTransactionDTO.meta.aggregateHash,
6969
innerTransactionDTO.meta.aggregateId,
7070
) : undefined;
71-
innerTransactionDTO.transaction.fee = transactionDTO.transaction.fee;
71+
innerTransactionDTO.transaction.maxFee = transactionDTO.transaction.maxFee;
7272
innerTransactionDTO.transaction.deadline = transactionDTO.transaction.deadline;
7373
innerTransactionDTO.transaction.signature = transactionDTO.transaction.signature;
7474
return CreateStandaloneTransactionFromDTO(innerTransactionDTO.transaction, aggregateTransactionInfo);
@@ -78,7 +78,7 @@ export const CreateTransactionFromDTO = (transactionDTO): Transaction => {
7878
transactionDTO.transaction.type,
7979
extractTransactionVersion(transactionDTO.transaction.version),
8080
Deadline.createFromDTO(transactionDTO.transaction.deadline),
81-
new UInt64(transactionDTO.transaction.fee || [0, 0]),
81+
new UInt64(transactionDTO.transaction.maxFee || [0, 0]),
8282
innerTransactions,
8383
transactionDTO.transaction.cosignatures ? transactionDTO.transaction.cosignatures
8484
.map((aggregateCosignatureDTO) => {
@@ -122,7 +122,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
122122
extractNetworkType(transactionDTO.version),
123123
extractTransactionVersion(transactionDTO.version),
124124
Deadline.createFromDTO(transactionDTO.deadline),
125-
new UInt64(transactionDTO.fee || [0, 0]),
125+
new UInt64(transactionDTO.maxFee || [0, 0]),
126126
extractRecipient(transactionDTO.recipient),
127127
extractMosaics(transactionDTO.mosaics),
128128
transactionDTO.message !== undefined ?
@@ -136,7 +136,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
136136
extractNetworkType(transactionDTO.version),
137137
extractTransactionVersion(transactionDTO.version),
138138
Deadline.createFromDTO(transactionDTO.deadline),
139-
new UInt64(transactionDTO.fee || [0, 0]),
139+
new UInt64(transactionDTO.maxFee || [0, 0]),
140140
transactionDTO.namespaceType,
141141
transactionDTO.name,
142142
new NamespaceId(transactionDTO.namespaceId),
@@ -151,37 +151,37 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
151151
extractNetworkType(transactionDTO.version),
152152
extractTransactionVersion(transactionDTO.version),
153153
Deadline.createFromDTO(transactionDTO.deadline),
154-
new UInt64(transactionDTO.fee || [0, 0]),
154+
new UInt64(transactionDTO.maxFee || [0, 0]),
155155
transactionDTO.nonce,
156156
new MosaicId(transactionDTO.mosaicId),
157157
new MosaicProperties(
158158
new UInt64(transactionDTO.properties[0].value),
159159
(new UInt64(transactionDTO.properties[1].value)).compact(),
160-
new UInt64(transactionDTO.properties.length === 3 ? transactionDTO.properties[2].value : [0, 0]),
161-
),
162-
transactionDTO.signature,
163-
PublicAccount.createFromPublicKey(transactionDTO.signer, extractNetworkType(transactionDTO.version)),
164-
transactionInfo,
165-
);
166-
} else if (transactionDTO.type === TransactionType.MOSAIC_SUPPLY_CHANGE) {
167-
return new MosaicSupplyChangeTransaction(
168-
extractNetworkType(transactionDTO.version),
169-
extractTransactionVersion(transactionDTO.version),
170-
Deadline.createFromDTO(transactionDTO.deadline),
171-
new UInt64(transactionDTO.fee || [0, 0]),
172-
new MosaicId(transactionDTO.mosaicId),
173-
transactionDTO.direction,
174-
new UInt64(transactionDTO.delta),
175-
transactionDTO.signature,
176-
PublicAccount.createFromPublicKey(transactionDTO.signer, extractNetworkType(transactionDTO.version)),
177-
transactionInfo,
178-
);
179-
} else if (transactionDTO.type === TransactionType.MODIFY_MULTISIG_ACCOUNT) {
180-
return new ModifyMultisigAccountTransaction(
181-
extractNetworkType(transactionDTO.version),
182-
extractTransactionVersion(transactionDTO.version),
183-
Deadline.createFromDTO(transactionDTO.deadline),
184-
new UInt64(transactionDTO.fee || [0, 0]),
160+
new UInt64(transactionDTO.properties.length === 3 ? transactionDTO.properties[2].value : [0, 0]),
161+
),
162+
transactionDTO.signature,
163+
PublicAccount.createFromPublicKey(transactionDTO.signer, extractNetworkType(transactionDTO.version)),
164+
transactionInfo,
165+
);
166+
} else if (transactionDTO.type === TransactionType.MOSAIC_SUPPLY_CHANGE) {
167+
return new MosaicSupplyChangeTransaction(
168+
extractNetworkType(transactionDTO.version),
169+
extractTransactionVersion(transactionDTO.version),
170+
Deadline.createFromDTO(transactionDTO.deadline),
171+
new UInt64(transactionDTO.maxFee || [0, 0]),
172+
new MosaicId(transactionDTO.mosaicId),
173+
transactionDTO.direction,
174+
new UInt64(transactionDTO.delta),
175+
transactionDTO.signature,
176+
PublicAccount.createFromPublicKey(transactionDTO.signer, extractNetworkType(transactionDTO.version)),
177+
transactionInfo,
178+
);
179+
} else if (transactionDTO.type === TransactionType.MODIFY_MULTISIG_ACCOUNT) {
180+
return new ModifyMultisigAccountTransaction(
181+
extractNetworkType(transactionDTO.version),
182+
extractTransactionVersion(transactionDTO.version),
183+
Deadline.createFromDTO(transactionDTO.deadline),
184+
new UInt64(transactionDTO.maxFee || [0, 0]),
185185
transactionDTO.minApprovalDelta,
186186
transactionDTO.minRemovalDelta,
187187
transactionDTO.modifications ? transactionDTO.modifications.map((modificationDTO) => new MultisigCosignatoryModification(
@@ -198,7 +198,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
198198
networkType,
199199
extractTransactionVersion(transactionDTO.version),
200200
Deadline.createFromDTO(transactionDTO.deadline),
201-
new UInt64(transactionDTO.fee || [0, 0]),
201+
new UInt64(transactionDTO.maxFee || [0, 0]),
202202
new Mosaic(new MosaicId(transactionDTO.mosaicId), new UInt64(transactionDTO.amount)),
203203
new UInt64(transactionDTO.duration),
204204
new SignedTransaction('', transactionDTO.hash, '', TransactionType.AGGREGATE_BONDED, networkType),
@@ -211,7 +211,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
211211
extractNetworkType(transactionDTO.version),
212212
extractTransactionVersion(transactionDTO.version),
213213
Deadline.createFromDTO(transactionDTO.deadline),
214-
new UInt64(transactionDTO.fee || [0, 0]),
214+
new UInt64(transactionDTO.maxFee || [0, 0]),
215215
new Mosaic(new MosaicId(transactionDTO.mosaicId), new UInt64(transactionDTO.amount)),
216216
new UInt64(transactionDTO.duration),
217217
transactionDTO.hashAlgorithm,
@@ -226,7 +226,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
226226
extractNetworkType(transactionDTO.version),
227227
extractTransactionVersion(transactionDTO.version),
228228
Deadline.createFromDTO(transactionDTO.deadline),
229-
new UInt64(transactionDTO.fee || [0, 0]),
229+
new UInt64(transactionDTO.maxFee || [0, 0]),
230230
transactionDTO.hashAlgorithm,
231231
transactionDTO.secret,
232232
transactionDTO.proof,
@@ -239,7 +239,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
239239
extractNetworkType(transactionDTO.version),
240240
extractTransactionVersion(transactionDTO.version),
241241
Deadline.createFromDTO(transactionDTO.deadline),
242-
new UInt64(transactionDTO.fee || [0, 0]),
242+
new UInt64(transactionDTO.maxFee || [0, 0]),
243243
transactionDTO.aliasAction,
244244
new NamespaceId(transactionDTO.namespaceId),
245245
new MosaicId(transactionDTO.mosaicId),
@@ -252,7 +252,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
252252
extractNetworkType(transactionDTO.version),
253253
extractTransactionVersion(transactionDTO.version),
254254
Deadline.createFromDTO(transactionDTO.deadline),
255-
new UInt64(transactionDTO.fee || [0, 0]),
255+
new UInt64(transactionDTO.maxFee || [0, 0]),
256256
transactionDTO.aliasAction,
257257
new NamespaceId(transactionDTO.namespaceId),
258258
extractRecipient(transactionDTO.address) as Address,
@@ -265,7 +265,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
265265
extractNetworkType(transactionDTO.version),
266266
extractTransactionVersion(transactionDTO.version),
267267
Deadline.createFromDTO(transactionDTO.deadline),
268-
new UInt64(transactionDTO.fee || [0, 0]),
268+
new UInt64(transactionDTO.maxFee || [0, 0]),
269269
transactionDTO.propertyType,
270270
transactionDTO.modifications ? transactionDTO.modifications.map((modificationDTO) => new AccountPropertyModification(
271271
modificationDTO.modificationType,
@@ -280,7 +280,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
280280
extractNetworkType(transactionDTO.version),
281281
extractTransactionVersion(transactionDTO.version),
282282
Deadline.createFromDTO(transactionDTO.deadline),
283-
new UInt64(transactionDTO.fee || [0, 0]),
283+
new UInt64(transactionDTO.maxFee || [0, 0]),
284284
transactionDTO.propertyType,
285285
transactionDTO.modifications ? transactionDTO.modifications.map((modificationDTO) => new AccountPropertyModification(
286286
modificationDTO.modificationType,
@@ -295,7 +295,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
295295
extractNetworkType(transactionDTO.version),
296296
extractTransactionVersion(transactionDTO.version),
297297
Deadline.createFromDTO(transactionDTO.deadline),
298-
new UInt64(transactionDTO.fee || [0, 0]),
298+
new UInt64(transactionDTO.maxFee || [0, 0]),
299299
transactionDTO.propertyType,
300300
transactionDTO.modifications ? transactionDTO.modifications.map((modificationDTO) => new AccountPropertyModification(
301301
modificationDTO.modificationType,
@@ -310,7 +310,7 @@ const CreateStandaloneTransactionFromDTO = (transactionDTO, transactionInfo): Tr
310310
extractNetworkType(transactionDTO.version),
311311
extractTransactionVersion(transactionDTO.version),
312312
Deadline.createFromDTO(transactionDTO.deadline),
313-
new UInt64(transactionDTO.fee || [0, 0]),
313+
new UInt64(transactionDTO.maxFee || [0, 0]),
314314
transactionDTO.remoteAccountKey,
315315
transactionDTO.linkAction,
316316
transactionDTO.signature,

src/model/transaction/MosaicSupplyChangeTransaction.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,23 @@ export class MosaicSupplyChangeTransaction extends Transaction {
3535
/**
3636
* Create a mosaic supply change transaction object
3737
* @param deadline - The deadline to include the transaction.
38+
* @param maxFee - Max fee defined by the sender
3839
* @param mosaicId - The mosaic id.
3940
* @param direction - The supply type.
4041
* @param delta - The supply change in units for the mosaic.
4142
* @param networkType - The network type.
4243
* @returns {MosaicSupplyChangeTransaction}
4344
*/
4445
public static create(deadline: Deadline,
46+
maxFee: UInt64,
4547
mosaicId: MosaicId,
4648
direction: MosaicSupplyType,
4749
delta: UInt64,
4850
networkType: NetworkType): MosaicSupplyChangeTransaction {
4951
return new MosaicSupplyChangeTransaction(networkType,
5052
TransactionVersion.MOSAIC_SUPPLY_CHANGE,
5153
deadline,
52-
new UInt64([0, 0]),
54+
maxFee,
5355
mosaicId,
5456
direction,
5557
delta,
@@ -60,7 +62,7 @@ export class MosaicSupplyChangeTransaction extends Transaction {
6062
* @param networkType
6163
* @param version
6264
* @param deadline
63-
* @param fee
65+
* @param maxFee
6466
* @param mosaicId
6567
* @param direction
6668
* @param delta
@@ -71,7 +73,7 @@ export class MosaicSupplyChangeTransaction extends Transaction {
7173
constructor(networkType: NetworkType,
7274
version: number,
7375
deadline: Deadline,
74-
fee: UInt64,
76+
maxFee: UInt64,
7577
/**
7678
* The mosaic id.
7779
*/
@@ -87,7 +89,7 @@ export class MosaicSupplyChangeTransaction extends Transaction {
8789
signature?: string,
8890
signer?: PublicAccount,
8991
transactionInfo?: TransactionInfo) {
90-
super(TransactionType.MOSAIC_SUPPLY_CHANGE, networkType, version, deadline, fee, signature, signer, transactionInfo);
92+
super(TransactionType.MOSAIC_SUPPLY_CHANGE, networkType, version, deadline, maxFee, signature, signer, transactionInfo);
9193
}
9294

9395
/**
@@ -97,7 +99,7 @@ export class MosaicSupplyChangeTransaction extends Transaction {
9799
protected buildTransaction(): VerifiableTransaction {
98100
return new MosaicSupplyChangeTransactionLibrary.Builder()
99101
.addDeadline(this.deadline.toDTO())
100-
.addFee(this.fee.toDTO())
102+
.addFee(this.maxFee.toDTO())
101103
.addVersion(this.versionToDTO())
102104
.addMosaicId(this.mosaicId.id.toDTO())
103105
.addDirection(this.direction)

src/model/transaction/RegisterNamespaceTransaction.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,21 @@ export class RegisterNamespaceTransaction extends Transaction {
3535
/**
3636
* Create a root namespace object
3737
* @param deadline - The deadline to include the transaction.
38+
* @param maxFee - Max fee defined by the sender
3839
* @param namespaceName - The namespace name.
3940
* @param duration - The duration of the namespace.
4041
* @param networkType - The network type.
4142
* @returns {RegisterNamespaceTransaction}
4243
*/
4344
public static createRootNamespace(deadline: Deadline,
45+
maxFee: UInt64,
4446
namespaceName: string,
4547
duration: UInt64,
4648
networkType: NetworkType): RegisterNamespaceTransaction {
4749
return new RegisterNamespaceTransaction(networkType,
4850
TransactionVersion.REGISTER_NAMESPACE,
4951
deadline,
50-
new UInt64([0, 0]),
52+
maxFee,
5153
NamespaceType.RootNamespace,
5254
namespaceName,
5355
new NamespaceId(namespaceName),
@@ -58,12 +60,14 @@ export class RegisterNamespaceTransaction extends Transaction {
5860
/**
5961
* Create a sub namespace object
6062
* @param deadline - The deadline to include the transaction.
63+
* @param maxFee - Max fee defined by the sender
6164
* @param namespaceName - The namespace name.
6265
* @param parentNamespace - The parent namespace name.
6366
* @param networkType - The network type.
6467
* @returns {RegisterNamespaceTransaction}
6568
*/
6669
public static createSubNamespace(deadline: Deadline,
70+
maxFee: UInt64,
6771
namespaceName: string,
6872
parentNamespace: string | NamespaceId,
6973
networkType: NetworkType): RegisterNamespaceTransaction {
@@ -76,7 +80,7 @@ export class RegisterNamespaceTransaction extends Transaction {
7680
return new RegisterNamespaceTransaction(networkType,
7781
TransactionVersion.REGISTER_NAMESPACE,
7882
deadline,
79-
new UInt64([0, 0]),
83+
maxFee,
8084
NamespaceType.SubNamespace,
8185
namespaceName,
8286
new NamespaceId(subnamespaceNamespaceId(parentNamespace, namespaceName)),
@@ -89,7 +93,7 @@ export class RegisterNamespaceTransaction extends Transaction {
8993
* @param networkType
9094
* @param version
9195
* @param deadline
92-
* @param fee
96+
* @param maxFee
9397
* @param namespaceType
9498
* @param namespaceName
9599
* @param namespaceId
@@ -102,7 +106,7 @@ export class RegisterNamespaceTransaction extends Transaction {
102106
constructor(networkType: NetworkType,
103107
version: number,
104108
deadline: Deadline,
105-
fee: UInt64,
109+
maxFee: UInt64,
106110
/**
107111
* The namespace type could be namespace or sub namespace
108112
*/
@@ -127,7 +131,7 @@ export class RegisterNamespaceTransaction extends Transaction {
127131
signature?: string,
128132
signer?: PublicAccount,
129133
transactionInfo?: TransactionInfo) {
130-
super(TransactionType.REGISTER_NAMESPACE, networkType, version, deadline, fee, signature, signer, transactionInfo);
134+
super(TransactionType.REGISTER_NAMESPACE, networkType, version, deadline, maxFee, signature, signer, transactionInfo);
131135
}
132136

133137
/**
@@ -137,7 +141,7 @@ export class RegisterNamespaceTransaction extends Transaction {
137141
protected buildTransaction(): VerifiableTransaction {
138142
let registerNamespacetransaction = new RegisterNamespaceTransactionLibrary.Builder()
139143
.addDeadline(this.deadline.toDTO())
140-
.addFee(this.fee.toDTO())
144+
.addFee(this.maxFee.toDTO())
141145
.addVersion(this.versionToDTO())
142146
.addNamespaceType(this.namespaceType)
143147
.addNamespaceId(this.namespaceId.id.toDTO())

0 commit comments

Comments
 (0)