Skip to content

Commit 378efac

Browse files
fix(sdk-coin-iota): update merge coin params
Ticket: WIN-8205 TICKET: WIN-8205
1 parent 77e100a commit 378efac

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

modules/sdk-coin-iota/src/lib/transferTransaction.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,12 @@ export class TransferTransaction extends Transaction {
234234
const firstObject = this._iotaTransaction.object(IotaInputs.ObjectRef(this.paymentObjects[0]));
235235

236236
// Single object doesn't need consolidation
237-
if (this.paymentObjects.length === 1) {
238-
return firstObject;
237+
if (this.paymentObjects.length > 1) {
238+
// Merge extra objects into the first one
239+
this.mergeObjectsInBatches(firstObject, this.paymentObjects.slice(1), MAX_INPUT_OBJECTS);
239240
}
240241

241-
// Merge remaining objects into the first one
242-
return this.mergeObjectsInBatches(firstObject, this.paymentObjects.slice(1), MAX_INPUT_OBJECTS);
242+
return firstObject;
243243
}
244244

245245
/**
@@ -253,13 +253,12 @@ export class TransferTransaction extends Transaction {
253253

254254
const gasObject = this._iotaTransaction.gas;
255255

256-
// If within the limit, no consolidation needed
257-
if (this.gasPaymentObjects.length <= MAX_GAS_PAYMENT_OBJECTS) {
258-
return gasObject;
256+
if (this.gasPaymentObjects.length > MAX_GAS_PAYMENT_OBJECTS) {
257+
// Merge excess gas objects to stay within limits
258+
this.mergeObjectsInBatches(gasObject, this.gasPaymentObjects, MAX_INPUT_OBJECTS);
259259
}
260260

261-
// Merge excess gas objects to stay within limits
262-
return this.mergeObjectsInBatches(gasObject, this.gasPaymentObjects, MAX_INPUT_OBJECTS);
261+
return gasObject;
263262
}
264263

265264
/**
@@ -275,17 +274,13 @@ export class TransferTransaction extends Transaction {
275274
targetCoin: TransactionObjectArgument,
276275
objectsToMerge: TransactionObjectInput[],
277276
batchSize: number
278-
): TransactionObjectArgument {
279-
let consolidatedCoin = targetCoin;
280-
277+
): void {
281278
for (let startIndex = 0; startIndex < objectsToMerge.length; startIndex += batchSize) {
282279
const batch = objectsToMerge.slice(startIndex, startIndex + batchSize);
283280
const batchAsTransactionObjects = batch.map((obj) => this._iotaTransaction.object(IotaInputs.ObjectRef(obj)));
284281

285-
[consolidatedCoin] = this._iotaTransaction.mergeCoins(consolidatedCoin, batchAsTransactionObjects);
282+
this._iotaTransaction.mergeCoins(targetCoin, batchAsTransactionObjects);
286283
}
287-
288-
return consolidatedCoin;
289284
}
290285

291286
/**

0 commit comments

Comments
 (0)