@ledgerhq/coin-framework 5.2.0-next.1 → 5.2.0-nightly.1

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.
Files changed (42) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +9 -11
  3. package/lib/account/groupOperations.d.ts +29 -0
  4. package/lib/account/groupOperations.d.ts.map +1 -1
  5. package/lib/account/groupOperations.js +60 -8
  6. package/lib/account/groupOperations.js.map +1 -1
  7. package/lib/account/groupOperations.test.d.ts +2 -0
  8. package/lib/account/groupOperations.test.d.ts.map +1 -0
  9. package/lib/account/groupOperations.test.js +93 -0
  10. package/lib/account/groupOperations.test.js.map +1 -0
  11. package/lib/account/pending.d.ts.map +1 -1
  12. package/lib/account/pending.js +20 -0
  13. package/lib/account/pending.js.map +1 -1
  14. package/lib/account/pending.test.d.ts +3 -1
  15. package/lib/account/pending.test.d.ts.map +1 -1
  16. package/lib/account/pending.test.js +31 -0
  17. package/lib/account/pending.test.js.map +1 -1
  18. package/lib/operation.test.js +18 -0
  19. package/lib/operation.test.js.map +1 -1
  20. package/lib-es/account/groupOperations.d.ts +29 -0
  21. package/lib-es/account/groupOperations.d.ts.map +1 -1
  22. package/lib-es/account/groupOperations.js +60 -8
  23. package/lib-es/account/groupOperations.js.map +1 -1
  24. package/lib-es/account/groupOperations.test.d.ts +2 -0
  25. package/lib-es/account/groupOperations.test.d.ts.map +1 -0
  26. package/lib-es/account/groupOperations.test.js +91 -0
  27. package/lib-es/account/groupOperations.test.js.map +1 -0
  28. package/lib-es/account/pending.d.ts.map +1 -1
  29. package/lib-es/account/pending.js +20 -0
  30. package/lib-es/account/pending.js.map +1 -1
  31. package/lib-es/account/pending.test.d.ts +3 -1
  32. package/lib-es/account/pending.test.d.ts.map +1 -1
  33. package/lib-es/account/pending.test.js +30 -2
  34. package/lib-es/account/pending.test.js.map +1 -1
  35. package/lib-es/operation.test.js +18 -0
  36. package/lib-es/operation.test.js.map +1 -1
  37. package/package.json +7 -7
  38. package/src/account/groupOperations.test.ts +123 -0
  39. package/src/account/groupOperations.ts +61 -11
  40. package/src/account/pending.test.ts +38 -2
  41. package/src/account/pending.ts +20 -0
  42. package/src/operation.test.ts +25 -0
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-framework@5.2.0-next.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-framework
2
+ > @ledgerhq/coin-framework@5.1.1-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-framework
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,24 +1,22 @@
1
1
  # @ledgerhq/coin-framework
2
2
 
3
- ## 5.2.0-next.1
3
+ ## 5.2.0-nightly.1
4
4
 
5
- ### Patch Changes
5
+ ### Minor Changes
6
6
 
7
- - Updated dependencies [[`f29e4ba`](https://github.com/LedgerHQ/ledger-live/commit/f29e4bae00a4bf470a0c1ca143e505b731543f95)]:
8
- - @ledgerhq/logs@6.13.0-next.0
9
- - @ledgerhq/devices@8.4.6-next.0
10
- - @ledgerhq/live-network@2.0.9-next.0
7
+ - [#10171](https://github.com/LedgerHQ/ledger-live/pull/10171) [`1535307`](https://github.com/LedgerHQ/ledger-live/commit/1535307f78d345d7f652ac2c91c8a67e62fedef2) Thanks [@Wozacosta](https://github.com/Wozacosta)! - fix: ensure btc transactionSequenceNumber is preserved when input sequence is 0 (previously resulted in undefined)
11
8
 
12
- ## 5.2.0-next.0
9
+ ### Patch Changes
13
10
 
14
- ### Minor Changes
11
+ - Updated dependencies [[`b7d3d59`](https://github.com/LedgerHQ/ledger-live/commit/b7d3d59d299c3d3541d598536651b9047fda4526)]:
12
+ - @ledgerhq/types-live@6.72.0-nightly.1
15
13
 
16
- - [#10351](https://github.com/LedgerHQ/ledger-live/pull/10351) [`f42f353`](https://github.com/LedgerHQ/ledger-live/commit/f42f353a593d0a1cd0a237648765080c85d0eea7) Thanks [@Canestin](https://github.com/Canestin)! - Add Phantom derivation path on Solana
14
+ ## 5.1.1-nightly.0
17
15
 
18
16
  ### Patch Changes
19
17
 
20
- - Updated dependencies [[`4ddfe60`](https://github.com/LedgerHQ/ledger-live/commit/4ddfe6060ab8e4e5c0bb89da91e08a02d8ca50e6), [`f42f353`](https://github.com/LedgerHQ/ledger-live/commit/f42f353a593d0a1cd0a237648765080c85d0eea7), [`1a4e5e5`](https://github.com/LedgerHQ/ledger-live/commit/1a4e5e5913fe5e12d6127b36f3849e4c81e5e50e)]:
21
- - @ledgerhq/types-live@6.72.0-next.0
18
+ - Updated dependencies [[`1a4e5e5`](https://github.com/LedgerHQ/ledger-live/commit/1a4e5e5913fe5e12d6127b36f3849e4c81e5e50e)]:
19
+ - @ledgerhq/types-live@6.72.0-nightly.0
22
20
 
23
21
  ## 5.1.0
24
22
 
@@ -5,6 +5,35 @@ type GroupOpsByDayOpts = {
5
5
  filterOperation?: (arg0: Operation, arg1: AccountLike) => boolean;
6
6
  };
7
7
  /**
8
+ * Groups operations from one or more accounts into day-based sections,
9
+ * ordered from most recent to oldest.
10
+ *
11
+ * This function collects operations incrementally, scanning one operation
12
+ * at a time per account in a round-robin fashion (including subaccounts if enabled).
13
+ * In each round, it picks the most recent operation based on:
14
+ * - `date` (newer comes first)
15
+ * - `transactionSequenceNumber` (higher means more recent, used as a tiebreaker when dates are equal)
16
+ *
17
+ * The process stops once the requested `count` of operations has been collected.
18
+ * Pending operations are included unless:
19
+ * - They are duplicates of confirmed operations (based on `hash`)
20
+ * - They are filtered out via the optional `filterOperation` callback
21
+ *
22
+ * ⚠️ Due to its round-by-account design, operations from the same account
23
+ * are not compared against each other in the same pass. This may lead to
24
+ * chronological inconsistencies if relying solely on `transactionSequenceNumber`
25
+ * for intra-account ordering. Consider sorting operations manually if strict ordering is required.
26
+ *
27
+ * @param inputAccounts - A list of accounts (or parent accounts) to pull operations from
28
+ * @param options - Options to configure grouping behavior
29
+ * @param options.count - Maximum number of operations to include in the result
30
+ * @param options.withSubAccounts - Whether to include subaccounts in the input set
31
+ * @param options.filterOperation - Optional function to selectively include/exclude operations
32
+ *
33
+ * @returns A `DailyOperations` object containing:
34
+ * - `sections`: An array of `{ day, data[] }` groups
35
+ * - `completed`: Boolean indicating whether fewer operations were available than requested
36
+ *
8
37
  * @memberof account
9
38
  */
10
39
  export declare function groupAccountsOperationsByDay(inputAccounts: AccountLikeArray, { count, withSubAccounts, filterOperation }: GroupOpsByDayOpts): DailyOperations;
@@ -1 +1 @@
1
- {"version":3,"file":"groupOperations.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAC;AAS9B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;CACnE,CAAC;AAKF;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,gBAAgB,EAC/B,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAC7D,eAAe,CAgIjB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,GACrB,eAAe,CAGjB"}
1
+ {"version":3,"file":"groupOperations.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAC;AAS9B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;CACnE,CAAC;AAqCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,gBAAgB,EAC/B,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAC7D,eAAe,CAqHjB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,GACrB,eAAe,CAGjB"}
@@ -10,6 +10,66 @@ const emptyDailyOperations = {
10
10
  };
11
11
  const hasStableOperation = (account, hash) => account.operations.some(op => op.hash === hash);
12
12
  /**
13
+ * Compares two operations to determine if the first one (`op1`) is more recent than the second (`op2`).
14
+ * This is used to sort operations in descending chronological order.
15
+ *
16
+ * - First compares by `date` (newer dates come first).
17
+ * - If both operations have the same `date`, and both define `transactionSequenceNumber`,
18
+ * the one with the higher sequence number is considered more recent.
19
+ * - If only one operation has a defined `transactionSequenceNumber`, it is prioritized
20
+ * over the one that does not (under the assumption it's more precisely ordered).
21
+ * - If neither has a defined sequence, fallback returns `false` (preserving existing order).
22
+ *
23
+ * @param op1 - First operation
24
+ * @param op2 - Second operation
25
+ * @returns `true` if `op1` should come before `op2`, `false` otherwise
26
+ */
27
+ function compareOps(op1, op2) {
28
+ if (op1.date > op2.date)
29
+ return true;
30
+ if (op1.date < op2.date)
31
+ return false;
32
+ const seq1 = op1.transactionSequenceNumber;
33
+ const seq2 = op2.transactionSequenceNumber;
34
+ if (seq1 !== undefined && seq2 !== undefined) {
35
+ return seq1 > seq2;
36
+ }
37
+ if (seq1 !== undefined && seq2 === undefined)
38
+ return true;
39
+ if (seq1 === undefined && seq2 !== undefined)
40
+ return false;
41
+ return false;
42
+ }
43
+ /**
44
+ * Groups operations from one or more accounts into day-based sections,
45
+ * ordered from most recent to oldest.
46
+ *
47
+ * This function collects operations incrementally, scanning one operation
48
+ * at a time per account in a round-robin fashion (including subaccounts if enabled).
49
+ * In each round, it picks the most recent operation based on:
50
+ * - `date` (newer comes first)
51
+ * - `transactionSequenceNumber` (higher means more recent, used as a tiebreaker when dates are equal)
52
+ *
53
+ * The process stops once the requested `count` of operations has been collected.
54
+ * Pending operations are included unless:
55
+ * - They are duplicates of confirmed operations (based on `hash`)
56
+ * - They are filtered out via the optional `filterOperation` callback
57
+ *
58
+ * ⚠️ Due to its round-by-account design, operations from the same account
59
+ * are not compared against each other in the same pass. This may lead to
60
+ * chronological inconsistencies if relying solely on `transactionSequenceNumber`
61
+ * for intra-account ordering. Consider sorting operations manually if strict ordering is required.
62
+ *
63
+ * @param inputAccounts - A list of accounts (or parent accounts) to pull operations from
64
+ * @param options - Options to configure grouping behavior
65
+ * @param options.count - Maximum number of operations to include in the result
66
+ * @param options.withSubAccounts - Whether to include subaccounts in the input set
67
+ * @param options.filterOperation - Optional function to selectively include/exclude operations
68
+ *
69
+ * @returns A `DailyOperations` object containing:
70
+ * - `sections`: An array of `{ day, data[] }` groups
71
+ * - `completed`: Boolean indicating whether fewer operations were available than requested
72
+ *
13
73
  * @memberof account
14
74
  */
15
75
  function groupAccountsOperationsByDay(inputAccounts, { count, withSubAccounts, filterOperation }) {
@@ -18,14 +78,6 @@ function groupAccountsOperationsByDay(inputAccounts, { count, withSubAccounts, f
18
78
  const indexes = Array(accounts.length).fill(0);
19
79
  // Track indexes of account.pendingOperations[] for each account
20
80
  const indexesPending = Array(accounts.length).fill(0);
21
- // Retruns true if operation 1 is later than operation 2
22
- function compareOps(op1, op2) {
23
- return (op1.date > op2.date ||
24
- (op1.date === op2.date &&
25
- op1.transactionSequenceNumber !== undefined &&
26
- op2.transactionSequenceNumber !== undefined &&
27
- op1.transactionSequenceNumber > op2.transactionSequenceNumber));
28
- }
29
81
  // Returns the next most recent operation from the account with current indexes
30
82
  function getNext() {
31
83
  let bestOp;
@@ -1 +1 @@
1
- {"version":3,"file":"groupOperations.js","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"groupOperations.js","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":";;;AAMA,4CAAoE;AACpE,uCAA4C;AAC5C,+DAAmD;AAEnD,MAAM,oBAAoB,GAAG;IAC3B,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,IAAI;CAChB,CAAC;AAOF,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAE,IAAY,EAAE,EAAE,CAChE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,SAAS,UAAU,CAAC,GAAc,EAAE,GAAc;IAChD,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,IAAI,GAAG,GAAG,CAAC,yBAAyB,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,yBAAyB,CAAC;IAE3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,4BAA4B,CAC1C,aAA+B,EAC/B,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAqB;IAE9D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,yBAAe,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAClF,yDAAyD;IACzD,MAAM,OAAO,GAAa,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,gEAAgE;IAChE,MAAM,cAAc,GAAa,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhE,+EAA+E;IAC/E,SAAS,OAAO;QAOd,IAAI,MAAoC,CAAC;QACzC,IAAI,UAAU,GAAG;YACf,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,qBAAqB;YACrB,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,IAAI,eAAe,EAAE,CAAC;gBACpB,uCAAuC;gBACvC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC3C,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM,GAAG,EAAE,CAAC;gBACZ,UAAU,GAAG;oBACX,QAAQ,EAAE,CAAC;oBACX,WAAW,EAAE,KAAK;iBACnB,CAAC;YACJ,CAAC;YAED,6BAA6B;YAC7B,IAAI,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvD,OACE,GAAG,IAAI,6DAA6D;gBACpE,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,mCAAmC;oBAC3E,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EACtD,CAAC;gBACD,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,GAAG,CAAC;gBACb,UAAU,GAAG;oBACX,QAAQ,EAAE,CAAC;oBACX,WAAW,EAAE,IAAI;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3B,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,CAAC;YAED,MAAM,GAAG,GAAG,IAAA,gDAAoC,EAAC,MAAM,CAAC,CAAC;YACzD,OAAO;gBACL,GAAG;gBACH,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,IAAI;QAAE,OAAO,oBAAoB,CAAC;IACvC,MAAM,QAAQ,GAGT,EAAE,CAAC;IACR,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,GAAG,GAAG,IAAA,gCAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,GAAgB,EAAE,CAAC;IAE3B,OAAO,eAAe,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC;gBAC1D,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAC;gBACH,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC;YACvC,CAAC;YAED,GAAG,GAAG,IAAA,gCAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,GAAG,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,GAAG,KAAK,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG;YACH,IAAI;SACL,CAAC,CAAC;QACH,IAAI,GAAG,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;KACtC,CAAC;AACJ,CAAC;AAxHD,oEAwHC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CACzC,OAAoB,EACpB,GAAsB;IAEtB,MAAM,QAAQ,GAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,4BAA4B,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAND,kEAMC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=groupOperations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupOperations.test.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const groupOperations_1 = require("./groupOperations");
4
+ const pending_test_1 = require("./pending.test");
5
+ // Wrapper around createOperation to set transactionSequenceNumber and optional date override
6
+ const createOp = (id, isoDate, sequence, isPending = false) => {
7
+ const op = (0, pending_test_1.createOperation)("acc1", ["sender"], sequence);
8
+ return {
9
+ ...op,
10
+ id,
11
+ hash: id,
12
+ accountId: "acc1",
13
+ date: new Date(isoDate),
14
+ transactionSequenceNumber: sequence,
15
+ blockHeight: isPending ? null : 1,
16
+ };
17
+ };
18
+ // Wrap createAccount to support injecting confirmed & pending operations
19
+ const createAccount = ({ confirmed = [], pending = [], }) => {
20
+ const base = (0, pending_test_1.createAccount)("acc1");
21
+ return {
22
+ ...base,
23
+ id: "acc1",
24
+ operations: confirmed,
25
+ operationsCount: confirmed.length,
26
+ pendingOperations: pending,
27
+ };
28
+ };
29
+ describe("groupAccountOperationsByDay", () => {
30
+ it("groups confirmed ops by day and preserves order", () => {
31
+ const op1 = createOp("op1", "2024-01-01T10:00:00Z");
32
+ const op2 = createOp("op2", "2024-01-01T08:00:00Z");
33
+ const op3 = createOp("op3", "2024-01-02T12:00:00Z");
34
+ const acc = createAccount({ confirmed: [op3, op1, op2] });
35
+ const result = (0, groupOperations_1.groupAccountsOperationsByDay)([acc], { count: 10 });
36
+ expect(result.sections.length).toBe(2);
37
+ expect(result.sections[0].day.toISOString()).toContain("2024-01-02");
38
+ expect(result.sections[0].data.map((op) => op.id)).toEqual(["op3"]);
39
+ expect(result.sections[1].data.map((op) => op.id)).toEqual(["op1", "op2"]);
40
+ });
41
+ it("orders ops with equal date by transactionSequenceNumber", () => {
42
+ const op1 = createOp("op1", "2024-01-01T10:00:00Z", 3);
43
+ const op2 = createOp("op2", "2024-01-01T10:00:00Z", 5);
44
+ const acc1 = createAccount({ confirmed: [op1] });
45
+ const acc2 = createAccount({ confirmed: [op2] });
46
+ const result = (0, groupOperations_1.groupAccountsOperationsByDay)([acc1, acc2], { count: 10 });
47
+ expect(result.sections.length).toBe(1);
48
+ expect(result.sections[0].data.map((op) => op.id)).toEqual(["op2", "op1"]);
49
+ });
50
+ it("prioritizes defined transactionSequenceNumber over undefined", () => {
51
+ const op1 = createOp("op1", "2024-01-01T10:00:00Z");
52
+ const op2 = createOp("op2", "2024-01-01T10:00:00Z", 0);
53
+ const acc1 = createAccount({ confirmed: [op1] });
54
+ const acc2 = createAccount({ confirmed: [op2] });
55
+ const result = (0, groupOperations_1.groupAccountsOperationsByDay)([acc1, acc2], { count: 10 });
56
+ expect(result.sections[0].data.map((op) => op.id)).toEqual(["op2", "op1"]);
57
+ });
58
+ it("includes pending ops if not duplicated", () => {
59
+ const confirmed = createOp("op1", "2024-01-01T10:00:00Z", 5);
60
+ const pending = createOp("op2", "2024-01-02T10:00:00Z", 10, true);
61
+ const acc = createAccount({
62
+ confirmed: [confirmed],
63
+ pending: [pending],
64
+ });
65
+ const result = (0, groupOperations_1.groupAccountsOperationsByDay)([acc], { count: 10 });
66
+ expect(result.sections.length).toBe(2);
67
+ expect(result.sections[0].data.map((op) => op.id)).toEqual(["op2"]);
68
+ expect(result.sections[1].data.map((op) => op.id)).toEqual(["op1"]);
69
+ });
70
+ it("filters out pending ops with duplicate hash", () => {
71
+ const confirmed = createOp("op1", "2024-01-01T10:00:00Z", 5);
72
+ const pendingDuplicate = createOp("op1", "2024-01-02T10:00:00Z", 10, true); // same hash/id
73
+ const acc = createAccount({
74
+ confirmed: [confirmed],
75
+ pending: [pendingDuplicate],
76
+ });
77
+ const result = (0, groupOperations_1.groupAccountsOperationsByDay)([acc], { count: 10 });
78
+ expect(result.sections.length).toBe(1);
79
+ expect(result.sections[0].data.map((op) => op.id)).toEqual(["op1"]);
80
+ });
81
+ it("respects filterOperation if provided", () => {
82
+ const op1 = createOp("op1", "2024-01-01T10:00:00Z");
83
+ const op2 = createOp("op2", "2024-01-01T09:00:00Z");
84
+ const acc = createAccount({ confirmed: [op1, op2] });
85
+ const result = (0, groupOperations_1.groupAccountsOperationsByDay)([acc], {
86
+ count: 10,
87
+ filterOperation: (op) => op.id === "op1",
88
+ });
89
+ expect(result.sections.length).toBe(1);
90
+ expect(result.sections[0].data.map((op) => op.id)).toEqual(["op1"]);
91
+ });
92
+ });
93
+ //# sourceMappingURL=groupOperations.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupOperations.test.js","sourceRoot":"","sources":["../../src/account/groupOperations.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,sBAAsB,CAAC;AAG7E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAerF;AAoBD,eAAO,MAAM,mBAAmB,YAAa,OAAO,aAAa,SAAS,KAAG,OAsB5E,CAAC"}
1
+ {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,sBAAsB,CAAC;AAO7E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAerF;AAoCD,eAAO,MAAM,mBAAmB,YAAa,OAAO,aAAa,SAAS,KAAG,OAsB5E,CAAC"}
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addPendingOperation = exports.shouldRetainPendingOperation = void 0;
4
4
  const live_env_1 = require("@ledgerhq/live-env");
5
+ /*
6
+ We want to discard pendingOperations if their transaction sequence number
7
+ has been out-numbered by the last operation...
8
+ */
5
9
  function shouldRetainPendingOperation(account, op) {
6
10
  // FIXME: valueOf to compare dates in typescript
7
11
  const delay = new Date().valueOf() - op.date.valueOf();
@@ -15,6 +19,22 @@ function shouldRetainPendingOperation(account, op) {
15
19
  return delay < (0, live_env_1.getEnv)("OPERATION_OPTIMISTIC_RETENTION");
16
20
  }
17
21
  exports.shouldRetainPendingOperation = shouldRetainPendingOperation;
22
+ /**
23
+ * Appends a pending operation to the list, ensuring no duplicates based on transactionSequenceNumber.
24
+ *
25
+ * If another operation in the list has the same `transactionSequenceNumber` as the new one,
26
+ * it is removed first — the new one replaces it at the beginning of the list.
27
+ *
28
+ * This ensures optimistic operations (e.g., from RBF or retry logic) don't stack up multiple times
29
+ * when they refer to the same transaction.
30
+ *
31
+ * Note: If `transactionSequenceNumber` is `undefined`, all existing ops with `undefined` are preserved,
32
+ * which may lead to duplicates — this is acceptable for receive-only txs or ops with incomplete metadata.
33
+ *
34
+ * @param ops - Existing list of pending operations
35
+ * @param op - The new pending operation to insert
36
+ * @returns A new array with `op` prepended and any conflicting op removed
37
+ */
18
38
  const appendPendingOp = (ops, op) => {
19
39
  const filtered = ops.filter(o => o.transactionSequenceNumber !== op.transactionSequenceNumber);
20
40
  filtered.unshift(op);
@@ -1 +1 @@
1
- {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":";;;AACA,iDAA4C;AAE5C,SAAgB,4BAA4B,CAAC,OAAgB,EAAE,EAAa;IAC1E,gDAAgD;IAChD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IACE,IAAI;QACJ,IAAI,CAAC,yBAAyB;QAC9B,EAAE,CAAC,yBAAyB;QAC5B,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,yBAAyB,EAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,GAAG,IAAA,iBAAM,EAAC,gCAAgC,CAAC,CAAC;AAC1D,CAAC;AAfD,oEAeC;AAED,MAAM,eAAe,GAAG,CAAC,GAAgB,EAAE,EAAa,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAgB,GAAG,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,KAAK,EAAE,CAAC,yBAAyB,CAClE,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,WAA2B,EAAE,EAAa;IACjE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;IAE7D,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,GAAiB,EAAE,GAAG,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,CAAC;AACH,CAAC;AAEM,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,SAAoB,EAAW,EAAE;IACrF,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACnC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhC,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACzB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3C,WAAW,CAAC,iBAAiB,GAAG,eAAe,CAAC,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,MAAM,MAAM,GAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAtBW,QAAA,mBAAmB,uBAsB9B"}
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":";;;AACA,iDAA4C;AAE5C;;;EAGE;AACF,SAAgB,4BAA4B,CAAC,OAAgB,EAAE,EAAa;IAC1E,gDAAgD;IAChD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IACE,IAAI;QACJ,IAAI,CAAC,yBAAyB;QAC9B,EAAE,CAAC,yBAAyB;QAC5B,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,yBAAyB,EAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,GAAG,IAAA,iBAAM,EAAC,gCAAgC,CAAC,CAAC;AAC1D,CAAC;AAfD,oEAeC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,eAAe,GAAG,CAAC,GAAgB,EAAE,EAAa,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAgB,GAAG,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,KAAK,EAAE,CAAC,yBAAyB,CAClE,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,WAA2B,EAAE,EAAa;IACjE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;IAE7D,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,GAAiB,EAAE,GAAG,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,CAAC;AACH,CAAC;AAEM,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,SAAoB,EAAW,EAAE;IACrF,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACnC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhC,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACzB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3C,WAAW,CAAC,iBAAiB,GAAG,eAAe,CAAC,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,MAAM,MAAM,GAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAtBW,QAAA,mBAAmB,uBAsB9B"}
@@ -1,2 +1,4 @@
1
- export {};
1
+ import { Account, Operation } from "@ledgerhq/types-live";
2
+ export declare function createAccount(id: string): Account;
3
+ export declare function createOperation(accountId: string, sender?: string[], sequenceNumber?: number, date?: Date): Operation;
2
4
  //# sourceMappingURL=pending.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pending.test.d.ts","sourceRoot":"","sources":["../../src/account/pending.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"pending.test.d.ts","sourceRoot":"","sources":["../../src/account/pending.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,sBAAsB,CAAC;AA2NxE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAyBjD;AAmBD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,IAAI,GACV,SAAS,CAiBX"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createOperation = exports.createAccount = void 0;
6
7
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
7
8
  const index_1 = require("@ledgerhq/cryptoassets/index");
8
9
  const pending_1 = require("./pending");
@@ -154,6 +155,34 @@ describe("shouldRetainPendingOperation", () => {
154
155
  // Then
155
156
  expect(shouldRetainPending).toBe(true);
156
157
  });
158
+ it("should replace existing pending operation with same transactionSequenceNumber", () => {
159
+ const account = createAccount("12");
160
+ const op1 = createOperation("12", ["addr"], 5);
161
+ const op2 = createOperation("12", ["addr"], 5); // same sequence
162
+ const result = (0, pending_1.addPendingOperation)((0, pending_1.addPendingOperation)(account, op1), op2);
163
+ expect(result.pendingOperations.length).toBe(1);
164
+ expect(result.pendingOperations[0]).toBe(op2);
165
+ });
166
+ it("should remove the pending operation when confirmed version appears in second sync", () => {
167
+ const account = createAccount("12");
168
+ const now = new Date();
169
+ const senders = ["abc"];
170
+ // First sync: we get a pending operation
171
+ const pendingOp = createOperation("12", senders, 42, now);
172
+ const withPending = (0, pending_1.addPendingOperation)(account, pendingOp);
173
+ expect(withPending.pendingOperations).toHaveLength(1);
174
+ expect(withPending.pendingOperations[0]).toBe(pendingOp);
175
+ // Second sync: confirmed operation shows up in the history
176
+ const confirmedOp = {
177
+ ...pendingOp,
178
+ blockHeight: 100,
179
+ blockHash: "blockhash",
180
+ };
181
+ withPending.operations.push(confirmedOp);
182
+ // Should not retain pending now
183
+ const retain = (0, pending_1.shouldRetainPendingOperation)(withPending, pendingOp);
184
+ expect(retain).toBe(false);
185
+ });
157
186
  });
158
187
  function createAccount(id) {
159
188
  const currency = (0, index_1.listCryptoCurrencies)(true)[0];
@@ -180,6 +209,7 @@ function createAccount(id) {
180
209
  swapHistory: [],
181
210
  };
182
211
  }
212
+ exports.createAccount = createAccount;
183
213
  function createTokenAccount(id) {
184
214
  return {
185
215
  type: "TokenAccount",
@@ -214,4 +244,5 @@ function createOperation(accountId, sender, sequenceNumber, date) {
214
244
  extra: null,
215
245
  };
216
246
  }
247
+ exports.createOperation = createOperation;
217
248
  //# sourceMappingURL=pending.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pending.test.js","sourceRoot":"","sources":["../../src/account/pending.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pending.test.js","sourceRoot":"","sources":["../../src/account/pending.test.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,24 @@ describe("Operation.ts", () => {
112
112
  };
113
113
  expect((0, operation_1.isOldestPendingOperation)(testAccount, 1)).toBe(false);
114
114
  });
115
+ it("should throw if a pending operation is missing transactionSequenceNumber", () => {
116
+ const malformedOp = {
117
+ ...pendingCoinOperation0,
118
+ transactionSequenceNumber: undefined,
119
+ };
120
+ const testAccount = {
121
+ ...account,
122
+ pendingOperations: [malformedOp],
123
+ };
124
+ expect(() => (0, operation_1.isOldestPendingOperation)(testAccount, 0)).toThrow("transactionSequenceNumber required");
125
+ });
126
+ it("should still return true when pending operations are out of order", () => {
127
+ const testAccount = {
128
+ ...account,
129
+ pendingOperations: [pendingCoinOperation2, pendingCoinOperation0],
130
+ };
131
+ expect((0, operation_1.isOldestPendingOperation)(testAccount, 0)).toBe(true);
132
+ });
115
133
  });
116
134
  });
117
135
  //# sourceMappingURL=operation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../src/operation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../src/operation.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,35 @@ type GroupOpsByDayOpts = {
5
5
  filterOperation?: (arg0: Operation, arg1: AccountLike) => boolean;
6
6
  };
7
7
  /**
8
+ * Groups operations from one or more accounts into day-based sections,
9
+ * ordered from most recent to oldest.
10
+ *
11
+ * This function collects operations incrementally, scanning one operation
12
+ * at a time per account in a round-robin fashion (including subaccounts if enabled).
13
+ * In each round, it picks the most recent operation based on:
14
+ * - `date` (newer comes first)
15
+ * - `transactionSequenceNumber` (higher means more recent, used as a tiebreaker when dates are equal)
16
+ *
17
+ * The process stops once the requested `count` of operations has been collected.
18
+ * Pending operations are included unless:
19
+ * - They are duplicates of confirmed operations (based on `hash`)
20
+ * - They are filtered out via the optional `filterOperation` callback
21
+ *
22
+ * ⚠️ Due to its round-by-account design, operations from the same account
23
+ * are not compared against each other in the same pass. This may lead to
24
+ * chronological inconsistencies if relying solely on `transactionSequenceNumber`
25
+ * for intra-account ordering. Consider sorting operations manually if strict ordering is required.
26
+ *
27
+ * @param inputAccounts - A list of accounts (or parent accounts) to pull operations from
28
+ * @param options - Options to configure grouping behavior
29
+ * @param options.count - Maximum number of operations to include in the result
30
+ * @param options.withSubAccounts - Whether to include subaccounts in the input set
31
+ * @param options.filterOperation - Optional function to selectively include/exclude operations
32
+ *
33
+ * @returns A `DailyOperations` object containing:
34
+ * - `sections`: An array of `{ day, data[] }` groups
35
+ * - `completed`: Boolean indicating whether fewer operations were available than requested
36
+ *
8
37
  * @memberof account
9
38
  */
10
39
  export declare function groupAccountsOperationsByDay(inputAccounts: AccountLikeArray, { count, withSubAccounts, filterOperation }: GroupOpsByDayOpts): DailyOperations;
@@ -1 +1 @@
1
- {"version":3,"file":"groupOperations.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAC;AAS9B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;CACnE,CAAC;AAKF;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,gBAAgB,EAC/B,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAC7D,eAAe,CAgIjB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,GACrB,eAAe,CAGjB"}
1
+ {"version":3,"file":"groupOperations.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAC;AAS9B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;CACnE,CAAC;AAqCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,gBAAgB,EAC/B,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAC7D,eAAe,CAqHjB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,GACrB,eAAe,CAGjB"}