@@ -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