Skip to content

Commit 75c02f2

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

File tree

2 files changed

+23
-95
lines changed

2 files changed

+23
-95
lines changed

modules/sdk-coin-iota/CHANGELOG.md

Lines changed: 13 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -7,152 +7,85 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
77

88
**Note:** Version bump only for package @bitgo/sdk-coin-iota
99

10-
11-
12-
13-
1410
# [1.6.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.5.0...@bitgo/sdk-coin-iota@1.6.0) (2025-12-04)
1511

16-
1712
### Bug Fixes
1813

19-
* lock valibot version ([3f7bde9](https://github.com/BitGo/BitGoJS/commit/3f7bde97f8538867f506bc7aba85d5d377ef2cd8))
20-
* **sdk-coin-iota:** handle serialised tx as hex in iota controller ([41fd197](https://github.com/BitGo/BitGoJS/commit/41fd19739b229caca9cc176583f4bf5224c5ae5e))
21-
* **sdk-coin-iota:** update verify transaction check in iota ([aec76a6](https://github.com/BitGo/BitGoJS/commit/aec76a6fcbbcdc4b817e9c56ec07c526deabef5f))
22-
14+
- lock valibot version ([3f7bde9](https://github.com/BitGo/BitGoJS/commit/3f7bde97f8538867f506bc7aba85d5d377ef2cd8))
15+
- **sdk-coin-iota:** handle serialised tx as hex in iota controller ([41fd197](https://github.com/BitGo/BitGoJS/commit/41fd19739b229caca9cc176583f4bf5224c5ae5e))
16+
- **sdk-coin-iota:** update verify transaction check in iota ([aec76a6](https://github.com/BitGo/BitGoJS/commit/aec76a6fcbbcdc4b817e9c56ec07c526deabef5f))
2317

2418
### Features
2519

26-
* **sdk-coin-iota:** add signature serialization for iota transaction ([8472e3c](https://github.com/BitGo/BitGoJS/commit/8472e3c092bfcd53d0e0986ed431d571b6367dbf))
27-
* **sdk-coin-iota:** refactor iota sdk for beter readability ([81b347f](https://github.com/BitGo/BitGoJS/commit/81b347f641ee268a3448008ca0ca862f5d8f3a77))
28-
* **sdk-coin-iota:** refactor tx builders for better readability ([7391438](https://github.com/BitGo/BitGoJS/commit/73914386b29ae80ef8be14ae39925b88f3e4d6e1))
29-
* **sdk-coin-iota:** updating transferTxn to use gas for payment ([73c8f3d](https://github.com/BitGo/BitGoJS/commit/73c8f3d9709d7d073bbd39f041cf8b894b88a8c5))
30-
31-
32-
33-
20+
- **sdk-coin-iota:** add signature serialization for iota transaction ([8472e3c](https://github.com/BitGo/BitGoJS/commit/8472e3c092bfcd53d0e0986ed431d571b6367dbf))
21+
- **sdk-coin-iota:** refactor iota sdk for beter readability ([81b347f](https://github.com/BitGo/BitGoJS/commit/81b347f641ee268a3448008ca0ca862f5d8f3a77))
22+
- **sdk-coin-iota:** refactor tx builders for better readability ([7391438](https://github.com/BitGo/BitGoJS/commit/73914386b29ae80ef8be14ae39925b88f3e4d6e1))
23+
- **sdk-coin-iota:** updating transferTxn to use gas for payment ([73c8f3d](https://github.com/BitGo/BitGoJS/commit/73c8f3d9709d7d073bbd39f041cf8b894b88a8c5))
3424

3525
# [1.5.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.4.5...@bitgo/sdk-coin-iota@1.5.0) (2025-11-26)
3626

37-
3827
### Bug Fixes
3928

40-
* **sdk-coin-iota:** updating TransferBuilder parseFromBroadcastTx method ([2cb42bf](https://github.com/BitGo/BitGoJS/commit/2cb42bf44ff66a49db616b05dc0ea0685be14005))
41-
29+
- **sdk-coin-iota:** updating TransferBuilder parseFromBroadcastTx method ([2cb42bf](https://github.com/BitGo/BitGoJS/commit/2cb42bf44ff66a49db616b05dc0ea0685be14005))
4230

4331
### Features
4432

45-
* **sdk-coin-iota:** updating explain transaction ([13cb30d](https://github.com/BitGo/BitGoJS/commit/13cb30d0dbc923be256925f6a19fade7114aac25))
46-
47-
48-
49-
33+
- **sdk-coin-iota:** updating explain transaction ([13cb30d](https://github.com/BitGo/BitGoJS/commit/13cb30d0dbc923be256925f6a19fade7114aac25))
5034

5135
## [1.4.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.4.4...@bitgo/sdk-coin-iota@1.4.5) (2025-11-19)
5236

5337
**Note:** Version bump only for package @bitgo/sdk-coin-iota
5438

55-
56-
57-
58-
5939
## [1.4.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.4.3...@bitgo/sdk-coin-iota@1.4.4) (2025-11-13)
6040

6141
**Note:** Version bump only for package @bitgo/sdk-coin-iota
6242

63-
64-
65-
66-
6743
## [1.4.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.4.2...@bitgo/sdk-coin-iota@1.4.3) (2025-11-12)
6844

6945
**Note:** Version bump only for package @bitgo/sdk-coin-iota
7046

71-
72-
73-
74-
7547
## [1.4.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.4.1...@bitgo/sdk-coin-iota@1.4.2) (2025-11-06)
7648

7749
**Note:** Version bump only for package @bitgo/sdk-coin-iota
7850

79-
80-
81-
82-
8351
## [1.4.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.4.0...@bitgo/sdk-coin-iota@1.4.1) (2025-10-31)
8452

8553
**Note:** Version bump only for package @bitgo/sdk-coin-iota
8654

87-
88-
89-
90-
9155
# [1.4.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.8...@bitgo/sdk-coin-iota@1.4.0) (2025-10-29)
9256

93-
9457
### Features
9558

96-
* **sdk-coin-iota:** transaction builder for iota ([0df3476](https://github.com/BitGo/BitGoJS/commit/0df3476fffd4d5abc1e116090a98be1150a46ba6))
97-
98-
99-
100-
59+
- **sdk-coin-iota:** transaction builder for iota ([0df3476](https://github.com/BitGo/BitGoJS/commit/0df3476fffd4d5abc1e116090a98be1150a46ba6))
10160

10261
## [1.3.8](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.7...@bitgo/sdk-coin-iota@1.3.8) (2025-10-24)
10362

10463
**Note:** Version bump only for package @bitgo/sdk-coin-iota
10564

106-
107-
108-
109-
11065
## [1.3.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.6...@bitgo/sdk-coin-iota@1.3.7) (2025-10-21)
11166

11267
**Note:** Version bump only for package @bitgo/sdk-coin-iota
11368

114-
115-
116-
117-
11869
## [1.3.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.5...@bitgo/sdk-coin-iota@1.3.6) (2025-10-16)
11970

12071
**Note:** Version bump only for package @bitgo/sdk-coin-iota
12172

122-
123-
124-
125-
12673
## [1.3.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.4...@bitgo/sdk-coin-iota@1.3.5) (2025-10-13)
12774

12875
**Note:** Version bump only for package @bitgo/sdk-coin-iota
12976

130-
131-
132-
133-
13477
## [1.3.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.3...@bitgo/sdk-coin-iota@1.3.4) (2025-10-09)
13578

136-
13779
### Bug Fixes
13880

139-
* run check-fmt on code files only ([9745196](https://github.com/BitGo/BitGoJS/commit/9745196b02b9678c740d290a4638ceb153a8fd75))
140-
141-
142-
143-
81+
- run check-fmt on code files only ([9745196](https://github.com/BitGo/BitGoJS/commit/9745196b02b9678c740d290a4638ceb153a8fd75))
14482

14583
## [1.3.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.2...@bitgo/sdk-coin-iota@1.3.3) (2025-10-08)
14684

147-
14885
### Bug Fixes
14986

150-
* add explicit 'files' in package json ([3b00373](https://github.com/BitGo/BitGoJS/commit/3b0037396f6ac16bb9380bd85bf37f2b133068f4))
151-
* **sdk-coin-iota:** update transaction and block hash validation ([fd8c350](https://github.com/BitGo/BitGoJS/commit/fd8c350c95df7e517d0622f90823abdff699d8a4))
152-
153-
154-
155-
87+
- add explicit 'files' in package json ([3b00373](https://github.com/BitGo/BitGoJS/commit/3b0037396f6ac16bb9380bd85bf37f2b133068f4))
88+
- **sdk-coin-iota:** update transaction and block hash validation ([fd8c350](https://github.com/BitGo/BitGoJS/commit/fd8c350c95df7e517d0622f90823abdff699d8a4))
15689

15790
## [1.3.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.3.1...@bitgo/sdk-coin-iota@1.3.2) (2025-10-02)
15891

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)