@bsv/wallet-toolbox 2.1.4 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ This document captures the history of significant changes to the wallet-toolbox
4
4
  The git commit history contains the details but is unable to draw
5
5
  attention to changes that materially alter behavior or extend functionality.
6
6
 
7
+ ## wallet-toolbox 2.1.6
8
+
9
+ - Improve change-making algorithm: cap change outputs per transaction to 8 (gradual UTXO pool build-up, smaller BEEFs). Enforce dynamic dust floor so no change output is worth less than 2× the fee to spend it.
10
+
11
+ ## wallet-toolbox 2.1.5
12
+
13
+ - Update deps, docs, lint
14
+
7
15
  ## wallet-toolbox 2.1.4
8
16
 
9
17
  - Change `Monitor`: Add SSE event hooks.
@@ -16,7 +24,7 @@ attention to changes that materially alter behavior or extend functionality.
16
24
  ## wallet-toolbox 2.1.2
17
25
 
18
26
  - Fix Chaintracks no longer hangs if bulk ingestor fails to reach chain tip.
19
-
27
+
20
28
  ## wallet-toolbox 2.1.1
21
29
 
22
30
  ### Add `teratest` and `mock` chain types
@@ -24,12 +32,14 @@ attention to changes that materially alter behavior or extend functionality.
24
32
  - Change `Chain` type from `'main' | 'test'` to `'main' | 'test' | 'teratest' | 'mock'`.
25
33
 
26
34
  **`teratest` chain:**
35
+
27
36
  - Add ARC URL `https://arc-teratest.taal.com` for the teratest network.
28
37
  - Chaintracks URL follows existing `${chain}net-chaintracks.babbage.systems` pattern.
29
38
  - WhatsOnChain URL follows existing `https://api.whatsonchain.com/v1/bsv/${network}` pattern.
30
39
  - Bitails is not available on teratest (only `main` and `test`).
31
40
 
32
41
  **`mock` chain — full self-contained mock blockchain:**
42
+
33
43
  - Add new `src/mockchain/` module with `MockServices`, `MockChainTracker`, `MockMiner`, `MockChainStorage`, and merkle tree utilities.
34
44
  - `MockServices` implements the `WalletServices` interface against a local SQLite database (3 tables: `mockchain_block_headers`, `mockchain_transactions`, `mockchain_utxos`).
35
45
  - Transactions are validated with full script execution via `@bsv/sdk` `Transaction.verify()`.
@@ -41,6 +51,7 @@ attention to changes that materially alter behavior or extend functionality.
41
51
  - `Services` class, `createDefaultWalletServicesOptions`, and external service providers (`WhatsOnChain`, `Bitails`) throw explicit errors if instantiated with `'mock'` chain.
42
52
 
43
53
  **Explicit chain handling across codebase:**
54
+
44
55
  - Convert chain-dependent ternaries to explicit switch statements in `toWalletNetwork`, `genesisHeader`, `Bitails` constructor, WoC WebSocket ingestors, and `ChaintracksStorageNoDb`.
45
56
  - Each chain value (`main`, `test`, `teratest`, `mock`) is handled explicitly rather than falling through a catch-all else branch.
46
57
 
@@ -48,7 +59,7 @@ attention to changes that materially alter behavior or extend functionality.
48
59
 
49
60
  Optimize createAction (fewer db transactions)
50
61
  Add postBeef services soft timeout failover
51
- PR 130 randomBytesHex in Setup
62
+ PR 130 randomBytesHex in Setup
52
63
 
53
64
  ## wallet-toolbox 2.0.23
54
65
 
@@ -354,7 +365,7 @@ Changes to improve computing balances (sum of satoshis) over various sets of wal
354
365
  ## wallet-toolbox 1.3.29
355
366
 
356
367
  - add verifyUnlockScripts to both createAction and signAction flows
357
-
368
+
358
369
  ## wallet-toolbox 1.3.28
359
370
 
360
371
  - adminStats now includes monitorStats and servicesStats of type ServicesCallHistory (wallet-toolbox/src/sdk/WalletServices.interfaces.ts)
@@ -385,7 +396,7 @@ New outputs created by `createAction` / `signAction` that are NOT assigned to a
385
396
  Implications:
386
397
 
387
398
  - Outputs transferred to a second party, either through internalizeAction or custom means, MUST NOT be assigned to a basket
388
- as this allows them to be spent without your wallet being notified that they are no longer spendable. This is a usage guideline, it is not enforced.
399
+ as this allows them to be spent without your wallet being notified that they are no longer spendable. This is a usage guideline, it is not enforced.
389
400
  - These outputs will NOT be returned by `listOutputs`, as it only returns spendable outputs.
390
401
  - These outputs WILL be returned by `listActions` with the includeOutputs option set to true.
391
402
  - Your wallet will mark any output you include as inputs in your own transactions as spent at the time of transaction creation.
package/docs/client.md CHANGED
@@ -2917,6 +2917,7 @@ export interface GenerateChangeSdkParams {
2917
2917
  changeFirstSatoshis: number;
2918
2918
  changeLockingScriptLength: number;
2919
2919
  changeUnlockingScriptLength: number;
2920
+ maxChangeOutputs?: number;
2920
2921
  randomVals?: number[];
2921
2922
  noLogging?: boolean;
2922
2923
  log?: string;
@@ -2963,6 +2964,19 @@ For P2PKH template, 107 bytes
2963
2964
  changeUnlockingScriptLength: number
2964
2965
  ```
2965
2966
 
2967
+ ###### Property maxChangeOutputs
2968
+
2969
+ Maximum number of change outputs to create in this transaction.
2970
+ Defaults to `maxChangeOutputsPerTransaction` (8).
2971
+
2972
+ Callers may override this to allow more outputs in special cases (e.g.
2973
+ consolidation transactions) or fewer outputs when a compact transaction
2974
+ is preferred.
2975
+
2976
+ ```ts
2977
+ maxChangeOutputs?: number
2978
+ ```
2979
+
2966
2980
  ###### Property targetNetCount
2967
2981
 
2968
2982
  Target for number of new change outputs added minus number of funding change outputs consumed.
@@ -19528,20 +19542,17 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
19528
19542
  ---
19529
19543
  #### Variables
19530
19544
 
19531
- | | |
19532
- | --- | --- |
19533
- | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) |
19534
- | [DEFAULT_SETTINGS](#variable-default_settings) | [parseResults](#variable-parseresults) |
19535
- | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [queryOverlay](#variable-queryoverlay) |
19536
- | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [specOpFailedActions](#variable-specopfailedactions) |
19537
- | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [specOpInvalidChange](#variable-specopinvalidchange) |
19538
- | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [specOpNoSendActions](#variable-specopnosendactions) |
19539
- | [aggregateActionResults](#variable-aggregateactionresults) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
19540
- | [brc29ProtocolID](#variable-brc29protocolid) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
19541
- | [dirtyHashes](#variable-dirtyhashes) | [specOpWalletBalance](#variable-specopwalletbalance) |
19542
- | [getLabelToSpecOp](#variable-getlabeltospecop) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
19543
- | [logger](#variable-logger) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
19544
- | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
19545
+ | | | |
19546
+ | --- | --- | --- |
19547
+ | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [getLabelToSpecOp](#variable-getlabeltospecop) | [specOpNoSendActions](#variable-specopnosendactions) |
19548
+ | [DEFAULT_SETTINGS](#variable-default_settings) | [logger](#variable-logger) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
19549
+ | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
19550
+ | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [specOpWalletBalance](#variable-specopwalletbalance) |
19551
+ | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
19552
+ | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [parseResults](#variable-parseresults) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
19553
+ | [aggregateActionResults](#variable-aggregateactionresults) | [queryOverlay](#variable-queryoverlay) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
19554
+ | [brc29ProtocolID](#variable-brc29protocolid) | [specOpFailedActions](#variable-specopfailedactions) | |
19555
+ | [dirtyHashes](#variable-dirtyhashes) | [specOpInvalidChange](#variable-specopinvalidchange) | |
19545
19556
 
19546
19557
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19547
19558
 
@@ -19777,6 +19788,15 @@ logger = (message: string, ...optionalParams: any[]): void => {
19777
19788
 
19778
19789
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19779
19790
 
19791
+ ---
19792
+ ##### Variable: maxChangeOutputsPerTransaction
19793
+
19794
+ ```ts
19795
+ maxChangeOutputsPerTransaction = 8
19796
+ ```
19797
+
19798
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19799
+
19780
19800
  ---
19781
19801
  ##### Variable: maxPossibleSatoshis
19782
19802
 
package/docs/storage.md CHANGED
@@ -176,6 +176,7 @@ export interface GenerateChangeSdkParams {
176
176
  changeFirstSatoshis: number;
177
177
  changeLockingScriptLength: number;
178
178
  changeUnlockingScriptLength: number;
179
+ maxChangeOutputs?: number;
179
180
  randomVals?: number[];
180
181
  noLogging?: boolean;
181
182
  log?: string;
@@ -222,6 +223,19 @@ For P2PKH template, 107 bytes
222
223
  changeUnlockingScriptLength: number
223
224
  ```
224
225
 
226
+ ###### Property maxChangeOutputs
227
+
228
+ Maximum number of change outputs to create in this transaction.
229
+ Defaults to `maxChangeOutputsPerTransaction` (8).
230
+
231
+ Callers may override this to allow more outputs in special cases (e.g.
232
+ consolidation transactions) or fewer outputs when a compact transaction
233
+ is preferred.
234
+
235
+ ```ts
236
+ maxChangeOutputs?: number
237
+ ```
238
+
225
239
  ###### Property targetNetCount
226
240
 
227
241
  Target for number of new change outputs added minus number of funding change outputs consumed.
@@ -5142,6 +5156,7 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
5142
5156
  | |
5143
5157
  | --- |
5144
5158
  | [getLabelToSpecOp](#variable-getlabeltospecop) |
5159
+ | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) |
5145
5160
  | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) |
5146
5161
  | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) |
5147
5162
  | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
@@ -5192,6 +5207,15 @@ See also: [AuthId](./client.md#interface-authid), [ListActionsSpecOp](./storage.
5192
5207
 
5193
5208
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5194
5209
 
5210
+ ---
5211
+ ##### Variable: maxChangeOutputsPerTransaction
5212
+
5213
+ ```ts
5214
+ maxChangeOutputsPerTransaction = 8
5215
+ ```
5216
+
5217
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5218
+
5195
5219
  ---
5196
5220
  ##### Variable: maxPossibleSatoshis
5197
5221
 
package/docs/wallet.md CHANGED
@@ -2917,6 +2917,7 @@ export interface GenerateChangeSdkParams {
2917
2917
  changeFirstSatoshis: number;
2918
2918
  changeLockingScriptLength: number;
2919
2919
  changeUnlockingScriptLength: number;
2920
+ maxChangeOutputs?: number;
2920
2921
  randomVals?: number[];
2921
2922
  noLogging?: boolean;
2922
2923
  log?: string;
@@ -2963,6 +2964,19 @@ For P2PKH template, 107 bytes
2963
2964
  changeUnlockingScriptLength: number
2964
2965
  ```
2965
2966
 
2967
+ ###### Property maxChangeOutputs
2968
+
2969
+ Maximum number of change outputs to create in this transaction.
2970
+ Defaults to `maxChangeOutputsPerTransaction` (8).
2971
+
2972
+ Callers may override this to allow more outputs in special cases (e.g.
2973
+ consolidation transactions) or fewer outputs when a compact transaction
2974
+ is preferred.
2975
+
2976
+ ```ts
2977
+ maxChangeOutputs?: number
2978
+ ```
2979
+
2966
2980
  ###### Property targetNetCount
2967
2981
 
2968
2982
  Target for number of new change outputs added minus number of funding change outputs consumed.
@@ -19528,20 +19542,17 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
19528
19542
  ---
19529
19543
  #### Variables
19530
19544
 
19531
- | | |
19532
- | --- | --- |
19533
- | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) |
19534
- | [DEFAULT_SETTINGS](#variable-default_settings) | [parseResults](#variable-parseresults) |
19535
- | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [queryOverlay](#variable-queryoverlay) |
19536
- | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [specOpFailedActions](#variable-specopfailedactions) |
19537
- | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [specOpInvalidChange](#variable-specopinvalidchange) |
19538
- | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [specOpNoSendActions](#variable-specopnosendactions) |
19539
- | [aggregateActionResults](#variable-aggregateactionresults) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
19540
- | [brc29ProtocolID](#variable-brc29protocolid) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
19541
- | [dirtyHashes](#variable-dirtyhashes) | [specOpWalletBalance](#variable-specopwalletbalance) |
19542
- | [getLabelToSpecOp](#variable-getlabeltospecop) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
19543
- | [logger](#variable-logger) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
19544
- | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
19545
+ | | | |
19546
+ | --- | --- | --- |
19547
+ | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [getLabelToSpecOp](#variable-getlabeltospecop) | [specOpNoSendActions](#variable-specopnosendactions) |
19548
+ | [DEFAULT_SETTINGS](#variable-default_settings) | [logger](#variable-logger) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
19549
+ | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
19550
+ | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [specOpWalletBalance](#variable-specopwalletbalance) |
19551
+ | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
19552
+ | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [parseResults](#variable-parseresults) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
19553
+ | [aggregateActionResults](#variable-aggregateactionresults) | [queryOverlay](#variable-queryoverlay) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
19554
+ | [brc29ProtocolID](#variable-brc29protocolid) | [specOpFailedActions](#variable-specopfailedactions) | |
19555
+ | [dirtyHashes](#variable-dirtyhashes) | [specOpInvalidChange](#variable-specopinvalidchange) | |
19545
19556
 
19546
19557
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19547
19558
 
@@ -19777,6 +19788,15 @@ logger = (message: string, ...optionalParams: any[]): void => {
19777
19788
 
19778
19789
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19779
19790
 
19791
+ ---
19792
+ ##### Variable: maxChangeOutputsPerTransaction
19793
+
19794
+ ```ts
19795
+ maxChangeOutputsPerTransaction = 8
19796
+ ```
19797
+
19798
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19799
+
19780
19800
  ---
19781
19801
  ##### Variable: maxPossibleSatoshis
19782
19802
 
@@ -824,7 +824,10 @@ describe('generateChange tests', () => {
824
824
  {
825
825
  n: 14,
826
826
  d: d14,
827
- er: '{"allocatedChangeInputs":[{"satoshis":1000,"outputId":18495,"spendable":false}],"changeOutputs":[{"satoshis":996,"lockingScriptLength":25}],"size":342,"fee":1,"satsPerKb":2}'
827
+ // targetNetCount=22 is capped to maxChangeOutputsPerTransaction=8; algorithm now
828
+ // allocates 8 inputs and creates 8 change outputs rather than starvation-reducing
829
+ // to 1 input / 1 output.
830
+ er: '{"allocatedChangeInputs":[{"satoshis":1000,"outputId":18495,"spendable":false},{"satoshis":1000,"outputId":18494,"spendable":false},{"satoshis":1000,"outputId":18493,"spendable":false},{"satoshis":1000,"outputId":18492,"spendable":false},{"satoshis":1000,"outputId":18491,"spendable":false},{"satoshis":1000,"outputId":18490,"spendable":false},{"satoshis":1000,"outputId":18489,"spendable":false},{"satoshis":995,"outputId":16190,"spendable":false}],"changeOutputs":[{"satoshis":988,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25}],"size":1616,"fee":4,"satsPerKb":2}'
828
831
  },
829
832
  {
830
833
  n: 13,
@@ -882,6 +885,155 @@ describe('generateChange tests', () => {
882
885
  expectTransactionSize(params, r);
883
886
  }
884
887
  });
888
+ // ── New tests for maxChangeOutputs cap and dust floor ───────────────────
889
+ test('9 maxChangeOutputs cap: large targetNetCount limited to maxChangeOutputsPerTransaction', async () => {
890
+ // targetNetCount of 50 should be capped to maxChangeOutputsPerTransaction (8)
891
+ const params = {
892
+ ...defParams,
893
+ fixedInputs: [],
894
+ fixedOutputs: [],
895
+ targetNetCount: 50
896
+ };
897
+ // Provide plenty of funding (one large UTXO simulating a fresh import)
898
+ const availableChange = [
899
+ { satoshis: 100000000, outputId: 1 } // 1 BSV
900
+ ];
901
+ const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
902
+ const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
903
+ // Must not exceed the cap regardless of how large targetNetCount is
904
+ expect(r.changeOutputs.length).toBeLessThanOrEqual(generateChange_1.maxChangeOutputsPerTransaction);
905
+ // Should be exactly the cap since we have plenty of funds
906
+ expect(r.changeOutputs.length).toBe(generateChange_1.maxChangeOutputsPerTransaction);
907
+ // Sanity: transaction must balance
908
+ expectTransactionSize(params, r);
909
+ });
910
+ test('9a maxChangeOutputs cap: custom override via params', async () => {
911
+ // Caller can raise or lower the cap via the maxChangeOutputs param
912
+ const params = {
913
+ ...defParams,
914
+ fixedInputs: [],
915
+ fixedOutputs: [],
916
+ targetNetCount: 50,
917
+ maxChangeOutputs: 3 // override to a smaller value
918
+ };
919
+ const availableChange = [{ satoshis: 100000000, outputId: 1 }];
920
+ const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
921
+ const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
922
+ expect(r.changeOutputs.length).toBeLessThanOrEqual(3);
923
+ expectTransactionSize(params, r);
924
+ });
925
+ test('9b maxChangeOutputs cap: gradual pool build-up over multiple transactions', async () => {
926
+ // Simulates a user importing one large UTXO and making sequential actions.
927
+ // Each action should add at most maxChangeOutputsPerTransaction net new outputs.
928
+ // After N rounds, the UTXO pool should equal N * maxChangeOutputsPerTransaction.
929
+ let nextId = 1;
930
+ // Start with a single large imported UTXO
931
+ let utxoPool = [{ satoshis: 100000000, outputId: nextId++ }];
932
+ const rounds = 3;
933
+ for (let round = 0; round < rounds; round++) {
934
+ const currentCount = utxoPool.length - 1; // one will be consumed as input
935
+ const params = {
936
+ ...defParams,
937
+ fixedInputs: [],
938
+ fixedOutputs: [{ satoshis: 1000, lockingScriptLength: 25 }],
939
+ targetNetCount: 144 - currentCount, // always trying to reach 144
940
+ randomVals: undefined // use real random for this test
941
+ };
942
+ const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)([...utxoPool]);
943
+ const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
944
+ // Net new outputs per transaction must respect the cap
945
+ const netNew = r.changeOutputs.length - r.allocatedChangeInputs.length;
946
+ expect(netNew).toBeLessThanOrEqual(generateChange_1.maxChangeOutputsPerTransaction);
947
+ expectTransactionSize(params, r);
948
+ // Simulate the transaction confirming: remove spent inputs, add new outputs
949
+ const spentIds = new Set(r.allocatedChangeInputs.map(i => i.outputId));
950
+ utxoPool = utxoPool.filter(u => !spentIds.has(u.outputId));
951
+ // Add new change outputs to the pool (with fresh unique outputIds)
952
+ for (const o of r.changeOutputs) {
953
+ utxoPool.push({ satoshis: o.satoshis, outputId: nextId++ });
954
+ }
955
+ }
956
+ // After `rounds` transactions, we should have grown by at most
957
+ // rounds * maxChangeOutputsPerTransaction UTXOs net of the spent ones.
958
+ // (The initial large UTXO is consumed in round 0.)
959
+ expect(utxoPool.length).toBeLessThanOrEqual(rounds * generateChange_1.maxChangeOutputsPerTransaction);
960
+ });
961
+ test('10 dust floor: no change output below economically viable minimum', async () => {
962
+ // At 110 sat/kb the dust floor is:
963
+ // minSpendTxSize = transactionSize([107], [25]) = 4 + 1 + 148 + 1 + 34 + 4 = 192 bytes
964
+ // dustFloor = max(1, ceil(192/1000 * 110) * 2) = max(1, ceil(21.12) * 2) = 44 sats
965
+ const params = {
966
+ ...defParams,
967
+ fixedInputs: [],
968
+ fixedOutputs: [{ satoshis: 1, lockingScriptLength: 25 }],
969
+ feeModel: { model: 'sat/kb', value: 110 },
970
+ changeInitialSatoshis: 1000,
971
+ changeFirstSatoshis: 285,
972
+ targetNetCount: 4
973
+ };
974
+ const availableChange = [
975
+ { satoshis: 268076, outputId: 16671 },
976
+ { satoshis: 2999799, outputId: 16677 },
977
+ { satoshis: 14030, outputId: 21194 },
978
+ { satoshis: 100925, outputId: 21224 }
979
+ ];
980
+ const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
981
+ const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
982
+ // Every change output must be at or above the dust floor for 110 sat/kb
983
+ const expectedDustFloor = Math.max(1, Math.ceil((192 / 1000) * 110) * 2);
984
+ for (const o of r.changeOutputs) {
985
+ expect(o.satoshis).toBeGreaterThanOrEqual(expectedDustFloor);
986
+ }
987
+ expectTransactionSize(params, r);
988
+ });
989
+ test('10a dust floor: changeFirstSatoshis below floor is raised to floor', async () => {
990
+ // At 500 sat/kb:
991
+ // dustFloor = max(1, ceil(192/1000 * 500) * 2) = max(1, ceil(96) * 2) = 192 sats
992
+ // changeFirstSatoshis=10 and changeInitialSatoshis=30 are both below the floor.
993
+ const params = {
994
+ ...defParams,
995
+ fixedInputs: [],
996
+ fixedOutputs: [{ satoshis: 100, lockingScriptLength: 25 }],
997
+ feeModel: { model: 'sat/kb', value: 500 },
998
+ changeInitialSatoshis: 30, // below dust floor at this fee rate
999
+ changeFirstSatoshis: 10, // below dust floor at this fee rate
1000
+ targetNetCount: 3,
1001
+ randomVals: undefined
1002
+ };
1003
+ const availableChange = [{ satoshis: 100000, outputId: 1 }];
1004
+ const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
1005
+ const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
1006
+ const expectedDustFloor = Math.max(1, Math.ceil((192 / 1000) * 500) * 2);
1007
+ for (const o of r.changeOutputs) {
1008
+ expect(o.satoshis).toBeGreaterThanOrEqual(expectedDustFloor);
1009
+ }
1010
+ expectTransactionSize(params, r);
1011
+ });
1012
+ test('10b dust floor: excess distribution sweep removes sub-floor outputs', async () => {
1013
+ // Use a very low fee rate so a single change input is enough to fund the
1014
+ // transaction, then use a high fee rate to make the changeFirstSatoshis
1015
+ // dangerously small. We want the sweep-after-distribution to kick in.
1016
+ // At 200 sat/kb: dustFloor = max(1, ceil(192/1000 * 200) * 2) = max(1, ceil(38.4)*2) = 78 sats.
1017
+ // With changeFirstSatoshis=50 (< 78) the first change output will be raised to 78.
1018
+ const params = {
1019
+ ...defParams,
1020
+ fixedInputs: [],
1021
+ fixedOutputs: [{ satoshis: 500, lockingScriptLength: 25 }],
1022
+ feeModel: { model: 'sat/kb', value: 200 },
1023
+ changeInitialSatoshis: 1000,
1024
+ changeFirstSatoshis: 50, // below dust floor for 200 sat/kb
1025
+ targetNetCount: 2,
1026
+ randomVals: undefined
1027
+ };
1028
+ const availableChange = [{ satoshis: 50000, outputId: 1 }];
1029
+ const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
1030
+ const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
1031
+ const expectedDustFloor = Math.max(1, Math.ceil((192 / 1000) * 200) * 2);
1032
+ for (const o of r.changeOutputs) {
1033
+ expect(o.satoshis).toBeGreaterThanOrEqual(expectedDustFloor);
1034
+ }
1035
+ expectTransactionSize(params, r);
1036
+ });
885
1037
  });
886
1038
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
887
1039
  async function expectToThrowWERR(expectedClass, fn) {
@@ -1 +1 @@
1
- {"version":3,"file":"generateChangeSdk.test.js","sourceRoot":"","sources":["../../../../../../src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts"],"names":[],"mappings":"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EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;gBAC7C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK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"}
1
+ {"version":3,"file":"generateChangeSdk.test.js","sourceRoot":"","sources":["../../../../../../src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts"],"names":[],"mappings":"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EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;gBAC7C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK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"}
@@ -4,6 +4,22 @@ import { StorageFeeModel } from '../../sdk/WalletStorage.interfaces';
4
4
  * An output of this satoshis amount will be adjusted to the largest fundable amount.
5
5
  */
6
6
  export declare const maxPossibleSatoshis = 2099999999999999;
7
+ /**
8
+ * Maximum number of change outputs to create in a single transaction.
9
+ *
10
+ * Limits how aggressively the wallet builds up its UTXO pool in one shot.
11
+ * When a user first imports a large UTXO, without this cap the wallet would
12
+ * attempt to create `numberOfDesiredUTXOs` change outputs in a single
13
+ * transaction. That produces a very large transaction whose raw bytes are
14
+ * embedded in the BEEF of every subsequent child transaction, bloating those
15
+ * BEEFs and slowing down external processors.
16
+ *
17
+ * With this cap the UTXO pool builds gradually — at most 8 net new change
18
+ * outputs per transaction — so no single transaction becomes unreasonably
19
+ * large. A pool of 144 desired UTXOs fills over roughly 18 transactions
20
+ * rather than 1.
21
+ */
22
+ export declare const maxChangeOutputsPerTransaction = 8;
7
23
  export interface GenerateChangeSdkResult {
8
24
  allocatedChangeInputs: GenerateChangeSdkChangeInput[];
9
25
  changeOutputs: GenerateChangeSdkChangeOutput[];
@@ -61,6 +77,15 @@ export interface GenerateChangeSdkParams {
61
77
  * For P2PKH template, 107 bytes
62
78
  */
63
79
  changeUnlockingScriptLength: number;
80
+ /**
81
+ * Maximum number of change outputs to create in this transaction.
82
+ * Defaults to `maxChangeOutputsPerTransaction` (8).
83
+ *
84
+ * Callers may override this to allow more outputs in special cases (e.g.
85
+ * consolidation transactions) or fewer outputs when a compact transaction
86
+ * is preferred.
87
+ */
88
+ maxChangeOutputs?: number;
64
89
  randomVals?: number[];
65
90
  noLogging?: boolean;
66
91
  log?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"generateChange.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateChange.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maxPossibleSatoshis = void 0;
3
+ exports.maxChangeOutputsPerTransaction = exports.maxPossibleSatoshis = void 0;
4
4
  exports.generateChangeSdk = generateChangeSdk;
5
5
  exports.validateGenerateChangeSdkResult = validateGenerateChangeSdkResult;
6
6
  exports.validateGenerateChangeSdkParams = validateGenerateChangeSdkParams;
@@ -14,6 +14,22 @@ const utils_1 = require("./utils");
14
14
  * An output of this satoshis amount will be adjusted to the largest fundable amount.
15
15
  */
16
16
  exports.maxPossibleSatoshis = 2099999999999999;
17
+ /**
18
+ * Maximum number of change outputs to create in a single transaction.
19
+ *
20
+ * Limits how aggressively the wallet builds up its UTXO pool in one shot.
21
+ * When a user first imports a large UTXO, without this cap the wallet would
22
+ * attempt to create `numberOfDesiredUTXOs` change outputs in a single
23
+ * transaction. That produces a very large transaction whose raw bytes are
24
+ * embedded in the BEEF of every subsequent child transaction, bloating those
25
+ * BEEFs and slowing down external processors.
26
+ *
27
+ * With this cap the UTXO pool builds gradually — at most 8 net new change
28
+ * outputs per transaction — so no single transaction becomes unreasonably
29
+ * large. A pool of 144 desired UTXOs fills over roughly 18 transactions
30
+ * rather than 1.
31
+ */
32
+ exports.maxChangeOutputsPerTransaction = 8;
17
33
  /**
18
34
  * Simplifications:
19
35
  * - only support one change type with fixed length scripts.
@@ -25,6 +41,7 @@ exports.maxPossibleSatoshis = 2099999999999999;
25
41
  * @returns
26
42
  */
27
43
  async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput, logger) {
44
+ var _a;
28
45
  if (params.noLogging === false)
29
46
  logGenerateChangeSdkParams(params);
30
47
  const r = {
@@ -38,6 +55,25 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
38
55
  try {
39
56
  const vgcpr = validateGenerateChangeSdkParams(params);
40
57
  const satsPerKb = params.feeModel.value || 0;
58
+ /**
59
+ * Minimum satoshi value for a change output to be economically viable.
60
+ *
61
+ * A change output is worthless if the fee required to spend it in a
62
+ * future transaction equals or exceeds its value. We compute the size
63
+ * of the smallest possible spend transaction (1 change input, 1 change
64
+ * output) and require each change output to be worth at least 2× that
65
+ * fee so the output still has meaningful value after it is spent.
66
+ *
67
+ * The absolute floor of 1 prevents nonsensical behaviour at fee rate 0.
68
+ */
69
+ const minSpendTxSize = (0, utils_1.transactionSize)([params.changeUnlockingScriptLength], [params.changeLockingScriptLength]);
70
+ const dustFloor = Math.max(1, Math.ceil((minSpendTxSize / 1000) * satsPerKb) * 2);
71
+ /**
72
+ * Effective cap on change outputs created in this transaction.
73
+ * Applies the per-transaction limit so that the UTXO pool grows
74
+ * gradually rather than all at once.
75
+ */
76
+ const maxChangeOutputs = (_a = params.maxChangeOutputs) !== null && _a !== void 0 ? _a : exports.maxChangeOutputsPerTransaction;
41
77
  const randomVals = [...(params.randomVals || [])];
42
78
  const randomValsUsed = [];
43
79
  const nextRandomVal = () => {
@@ -122,7 +158,9 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
122
158
  let feeExcessNow = 0;
123
159
  feeExcess();
124
160
  const hasTargetNetCount = params.targetNetCount !== undefined;
125
- const targetNetCount = params.targetNetCount || 0;
161
+ // Cap targetNetCount to maxChangeOutputs so the UTXO pool grows gradually
162
+ // rather than trying to reach numberOfDesiredUTXOs in a single transaction.
163
+ const targetNetCount = Math.min(params.targetNetCount || 0, maxChangeOutputs);
126
164
  // current net change in count of change outputs
127
165
  const netChangeCount = () => {
128
166
  return r.changeOutputs.length - r.allocatedChangeInputs.length;
@@ -130,6 +168,9 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
130
168
  const addOutputToBalanceNewInput = () => {
131
169
  if (!hasTargetNetCount)
132
170
  return false;
171
+ // Also respect the absolute cap on change output count.
172
+ if (r.changeOutputs.length >= maxChangeOutputs)
173
+ return false;
133
174
  return netChangeCount() - 1 < targetNetCount;
134
175
  };
135
176
  const releaseAllocatedChangeInputs = async () => {
@@ -143,10 +184,14 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
143
184
  };
144
185
  // If we'd like to have more change outputs create them now.
145
186
  // They may be removed if it turns out we can't fund them.
146
- while ((hasTargetNetCount && targetNetCount > netChangeCount()) ||
147
- (r.changeOutputs.length === 0 && feeExcess() > 0)) {
187
+ // Respect the per-transaction cap and ensure each output meets the dust floor.
188
+ while (r.changeOutputs.length < maxChangeOutputs &&
189
+ ((hasTargetNetCount && targetNetCount > netChangeCount()) || (r.changeOutputs.length === 0 && feeExcess() > 0))) {
190
+ const satoshis = r.changeOutputs.length === 0
191
+ ? Math.max(dustFloor, params.changeFirstSatoshis)
192
+ : Math.max(dustFloor, params.changeInitialSatoshis);
148
193
  r.changeOutputs.push({
149
- satoshis: r.changeOutputs.length === 0 ? params.changeFirstSatoshis : params.changeInitialSatoshis,
194
+ satoshis,
150
195
  lockingScriptLength: params.changeLockingScriptLength
151
196
  });
152
197
  }
@@ -168,11 +213,16 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
168
213
  }
169
214
  r.allocatedChangeInputs.push(allocatedChangeInput);
170
215
  if (!removingOutputs && feeExcess() > 0) {
171
- if (ao == 1 || r.changeOutputs.length === 0) {
172
- r.changeOutputs.push({
173
- satoshis: Math.min(feeExcess(), r.changeOutputs.length === 0 ? params.changeFirstSatoshis : params.changeInitialSatoshis),
174
- lockingScriptLength: params.changeLockingScriptLength
175
- });
216
+ if ((ao == 1 || r.changeOutputs.length === 0) && r.changeOutputs.length < maxChangeOutputs) {
217
+ const cap = r.changeOutputs.length === 0 ? params.changeFirstSatoshis : params.changeInitialSatoshis;
218
+ const satoshis = Math.min(feeExcess(), Math.max(dustFloor, cap));
219
+ // Only add the output if it can meet the dust floor.
220
+ if (satoshis >= dustFloor) {
221
+ r.changeOutputs.push({
222
+ satoshis,
223
+ lockingScriptLength: params.changeLockingScriptLength
224
+ });
225
+ }
176
226
  }
177
227
  }
178
228
  return true;
@@ -262,6 +312,25 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
262
312
  r.changeOutputs[index].satoshis += sats;
263
313
  }
264
314
  }
315
+ /**
316
+ * Remove any change outputs that ended up below the dust floor after
317
+ * distribution, consolidating their satoshis into the largest remaining
318
+ * output. This can occur when the excess distribution leaves a small
319
+ * output that is uneconomical to spend in a future transaction.
320
+ *
321
+ * We iterate in reverse so that splicing does not disturb earlier indices.
322
+ * We always keep at least one change output — the loop guarantees at least
323
+ * one output remains because we only remove if `r.changeOutputs.length > 1`.
324
+ */
325
+ for (let i = r.changeOutputs.length - 1; i >= 0; i--) {
326
+ if (r.changeOutputs[i].satoshis < dustFloor && r.changeOutputs.length > 1) {
327
+ const [removed] = r.changeOutputs.splice(i, 1);
328
+ // Add the removed sats to the largest remaining output so no sats are lost.
329
+ const largest = r.changeOutputs.reduce((best, o) => (o.satoshis > best.satoshis ? o : best), r.changeOutputs[0]);
330
+ largest.satoshis += removed.satoshis;
331
+ // feeExcessNow does not need updating: total change satoshis are unchanged.
332
+ }
333
+ }
265
334
  r.size = size();
266
335
  ((r.fee = fee()), (r.satsPerKb = satsPerKb));
267
336
  const { ok, log } = validateGenerateChangeSdkResult(params, r);
@@ -1 +1 @@
1
- {"version":3,"file":"generateChange.js","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateChange.js","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/wallet-toolbox",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "BRC100 conforming wallet, wallet storage and wallet signer components",
5
5
  "main": "./out/src/index.js",
6
6
  "types": "./out/src/index.d.ts",
@@ -39,8 +39,8 @@
39
39
  "homepage": "https://github.com/bsv-blockchain/wallet-toolbox#readme",
40
40
  "dependencies": {
41
41
  "@bsv/auth-express-middleware": "^2.0.4",
42
- "@bsv/payment-express-middleware": "^2.0.0",
43
- "@bsv/sdk": "^2.0.4",
42
+ "@bsv/payment-express-middleware": "^2.0.1",
43
+ "@bsv/sdk": "^2.0.6",
44
44
  "better-sqlite3": "^12.6.2",
45
45
  "express": "^4.21.2",
46
46
  "idb": "^8.0.2",