@ledgerhq/coin-framework 5.2.0 → 5.3.0-next.0
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 +18 -0
- package/jest.config.js +2 -9
- package/lib/account/groupOperations.d.ts +29 -0
- package/lib/account/groupOperations.d.ts.map +1 -1
- package/lib/account/groupOperations.js +60 -8
- package/lib/account/groupOperations.js.map +1 -1
- package/lib/account/groupOperations.test.d.ts +2 -0
- package/lib/account/groupOperations.test.d.ts.map +1 -0
- package/lib/account/groupOperations.test.js +93 -0
- package/lib/account/groupOperations.test.js.map +1 -0
- package/lib/account/pending.d.ts.map +1 -1
- package/lib/account/pending.js +20 -0
- package/lib/account/pending.js.map +1 -1
- package/lib/account/pending.test.d.ts +3 -1
- package/lib/account/pending.test.d.ts.map +1 -1
- package/lib/account/pending.test.js +31 -0
- package/lib/account/pending.test.js.map +1 -1
- package/lib/api/types.d.ts +67 -10
- package/lib/api/types.d.ts.map +1 -1
- package/lib/config.d.ts +3 -0
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/operation.test.js +18 -0
- package/lib/operation.test.js.map +1 -1
- package/lib-es/account/groupOperations.d.ts +29 -0
- package/lib-es/account/groupOperations.d.ts.map +1 -1
- package/lib-es/account/groupOperations.js +60 -8
- package/lib-es/account/groupOperations.js.map +1 -1
- package/lib-es/account/groupOperations.test.d.ts +2 -0
- package/lib-es/account/groupOperations.test.d.ts.map +1 -0
- package/lib-es/account/groupOperations.test.js +91 -0
- package/lib-es/account/groupOperations.test.js.map +1 -0
- package/lib-es/account/pending.d.ts.map +1 -1
- package/lib-es/account/pending.js +20 -0
- package/lib-es/account/pending.js.map +1 -1
- package/lib-es/account/pending.test.d.ts +3 -1
- package/lib-es/account/pending.test.d.ts.map +1 -1
- package/lib-es/account/pending.test.js +30 -2
- package/lib-es/account/pending.test.js.map +1 -1
- package/lib-es/api/types.d.ts +67 -10
- package/lib-es/api/types.d.ts.map +1 -1
- package/lib-es/config.d.ts +3 -0
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js.map +1 -1
- package/lib-es/operation.test.js +18 -0
- package/lib-es/operation.test.js.map +1 -1
- package/package.json +5 -6
- package/src/account/groupOperations.test.ts +123 -0
- package/src/account/groupOperations.ts +61 -11
- package/src/account/pending.test.ts +38 -2
- package/src/account/pending.ts +20 -0
- package/src/api/types.ts +100 -23
- package/src/config.ts +4 -0
- package/src/operation.test.ts +25 -0
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhF,KAAK,YAAY,GACb;IACE,IAAI,EAAE,QAAQ,CAAC;CAChB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EACH,SAAS,GACT,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,SAAS,GACT,0BAA0B,CAAC;CAChC,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,KAAK,CAAC,CAAC;AAEpF,iBAAS,eAAe,CAAC,CAAC,SAAS,cAAc;4BAGhB,WAAW,CAAC,CAAC,KAAG,IAAI;+BAIjB,cAAc,KAAG,CAAC;EAYrD;AAED,eAAe,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhF,KAAK,YAAY,GACb;IACE,IAAI,EAAE,QAAQ,CAAC;CAChB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EACH,SAAS,GACT,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,SAAS,GACT,0BAA0B,CAAC;CAChC,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,KAAK,CAAC,CAAC;AAEpF,MAAM,MAAM,YAAY,GAAG;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,iBAAS,eAAe,CAAC,CAAC,SAAS,cAAc;4BAGhB,WAAW,CAAC,CAAC,KAAG,IAAI;+BAIjB,cAAc,KAAG,CAAC;EAYrD;AAED,eAAe,eAAe,CAAC"}
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AACA,qCAA6C;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AACA,qCAA6C;AAmD7C,SAAS,eAAe;IACtB,IAAI,UAAqC,CAAC;IAE1C,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACpD,UAAU,GAAG,MAAM,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,QAAyB,EAAK,EAAE;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,0BAAiB,EAAE,CAAC;QAChC,CAAC;QAED,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO;QACL,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC;AAED,kBAAe,eAAe,CAAC"}
|
package/lib/operation.test.js
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -7,6 +7,66 @@ const emptyDailyOperations = {
|
|
|
7
7
|
};
|
|
8
8
|
const hasStableOperation = (account, hash) => account.operations.some(op => op.hash === hash);
|
|
9
9
|
/**
|
|
10
|
+
* Compares two operations to determine if the first one (`op1`) is more recent than the second (`op2`).
|
|
11
|
+
* This is used to sort operations in descending chronological order.
|
|
12
|
+
*
|
|
13
|
+
* - First compares by `date` (newer dates come first).
|
|
14
|
+
* - If both operations have the same `date`, and both define `transactionSequenceNumber`,
|
|
15
|
+
* the one with the higher sequence number is considered more recent.
|
|
16
|
+
* - If only one operation has a defined `transactionSequenceNumber`, it is prioritized
|
|
17
|
+
* over the one that does not (under the assumption it's more precisely ordered).
|
|
18
|
+
* - If neither has a defined sequence, fallback returns `false` (preserving existing order).
|
|
19
|
+
*
|
|
20
|
+
* @param op1 - First operation
|
|
21
|
+
* @param op2 - Second operation
|
|
22
|
+
* @returns `true` if `op1` should come before `op2`, `false` otherwise
|
|
23
|
+
*/
|
|
24
|
+
function compareOps(op1, op2) {
|
|
25
|
+
if (op1.date > op2.date)
|
|
26
|
+
return true;
|
|
27
|
+
if (op1.date < op2.date)
|
|
28
|
+
return false;
|
|
29
|
+
const seq1 = op1.transactionSequenceNumber;
|
|
30
|
+
const seq2 = op2.transactionSequenceNumber;
|
|
31
|
+
if (seq1 !== undefined && seq2 !== undefined) {
|
|
32
|
+
return seq1 > seq2;
|
|
33
|
+
}
|
|
34
|
+
if (seq1 !== undefined && seq2 === undefined)
|
|
35
|
+
return true;
|
|
36
|
+
if (seq1 === undefined && seq2 !== undefined)
|
|
37
|
+
return false;
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Groups operations from one or more accounts into day-based sections,
|
|
42
|
+
* ordered from most recent to oldest.
|
|
43
|
+
*
|
|
44
|
+
* This function collects operations incrementally, scanning one operation
|
|
45
|
+
* at a time per account in a round-robin fashion (including subaccounts if enabled).
|
|
46
|
+
* In each round, it picks the most recent operation based on:
|
|
47
|
+
* - `date` (newer comes first)
|
|
48
|
+
* - `transactionSequenceNumber` (higher means more recent, used as a tiebreaker when dates are equal)
|
|
49
|
+
*
|
|
50
|
+
* The process stops once the requested `count` of operations has been collected.
|
|
51
|
+
* Pending operations are included unless:
|
|
52
|
+
* - They are duplicates of confirmed operations (based on `hash`)
|
|
53
|
+
* - They are filtered out via the optional `filterOperation` callback
|
|
54
|
+
*
|
|
55
|
+
* ⚠️ Due to its round-by-account design, operations from the same account
|
|
56
|
+
* are not compared against each other in the same pass. This may lead to
|
|
57
|
+
* chronological inconsistencies if relying solely on `transactionSequenceNumber`
|
|
58
|
+
* for intra-account ordering. Consider sorting operations manually if strict ordering is required.
|
|
59
|
+
*
|
|
60
|
+
* @param inputAccounts - A list of accounts (or parent accounts) to pull operations from
|
|
61
|
+
* @param options - Options to configure grouping behavior
|
|
62
|
+
* @param options.count - Maximum number of operations to include in the result
|
|
63
|
+
* @param options.withSubAccounts - Whether to include subaccounts in the input set
|
|
64
|
+
* @param options.filterOperation - Optional function to selectively include/exclude operations
|
|
65
|
+
*
|
|
66
|
+
* @returns A `DailyOperations` object containing:
|
|
67
|
+
* - `sections`: An array of `{ day, data[] }` groups
|
|
68
|
+
* - `completed`: Boolean indicating whether fewer operations were available than requested
|
|
69
|
+
*
|
|
10
70
|
* @memberof account
|
|
11
71
|
*/
|
|
12
72
|
export function groupAccountsOperationsByDay(inputAccounts, { count, withSubAccounts, filterOperation }) {
|
|
@@ -15,14 +75,6 @@ export function groupAccountsOperationsByDay(inputAccounts, { count, withSubAcco
|
|
|
15
75
|
const indexes = Array(accounts.length).fill(0);
|
|
16
76
|
// Track indexes of account.pendingOperations[] for each account
|
|
17
77
|
const indexesPending = Array(accounts.length).fill(0);
|
|
18
|
-
// Retruns true if operation 1 is later than operation 2
|
|
19
|
-
function compareOps(op1, op2) {
|
|
20
|
-
return (op1.date > op2.date ||
|
|
21
|
-
(op1.date === op2.date &&
|
|
22
|
-
op1.transactionSequenceNumber !== undefined &&
|
|
23
|
-
op2.transactionSequenceNumber !== undefined &&
|
|
24
|
-
op1.transactionSequenceNumber > op2.transactionSequenceNumber));
|
|
25
|
-
}
|
|
26
78
|
// Returns the next most recent operation from the account with current indexes
|
|
27
79
|
function getNext() {
|
|
28
80
|
let bestOp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupOperations.js","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oCAAoC,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;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
|
|
1
|
+
{"version":3,"file":"groupOperations.js","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupOperations.test.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { groupAccountsOperationsByDay } from "./groupOperations";
|
|
2
|
+
import { createOperation, createAccount as baseCreateAccount } from "./pending.test";
|
|
3
|
+
// Wrapper around createOperation to set transactionSequenceNumber and optional date override
|
|
4
|
+
const createOp = (id, isoDate, sequence, isPending = false) => {
|
|
5
|
+
const op = createOperation("acc1", ["sender"], sequence);
|
|
6
|
+
return {
|
|
7
|
+
...op,
|
|
8
|
+
id,
|
|
9
|
+
hash: id,
|
|
10
|
+
accountId: "acc1",
|
|
11
|
+
date: new Date(isoDate),
|
|
12
|
+
transactionSequenceNumber: sequence,
|
|
13
|
+
blockHeight: isPending ? null : 1,
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
// Wrap createAccount to support injecting confirmed & pending operations
|
|
17
|
+
const createAccount = ({ confirmed = [], pending = [], }) => {
|
|
18
|
+
const base = baseCreateAccount("acc1");
|
|
19
|
+
return {
|
|
20
|
+
...base,
|
|
21
|
+
id: "acc1",
|
|
22
|
+
operations: confirmed,
|
|
23
|
+
operationsCount: confirmed.length,
|
|
24
|
+
pendingOperations: pending,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
describe("groupAccountOperationsByDay", () => {
|
|
28
|
+
it("groups confirmed ops by day and preserves order", () => {
|
|
29
|
+
const op1 = createOp("op1", "2024-01-01T10:00:00Z");
|
|
30
|
+
const op2 = createOp("op2", "2024-01-01T08:00:00Z");
|
|
31
|
+
const op3 = createOp("op3", "2024-01-02T12:00:00Z");
|
|
32
|
+
const acc = createAccount({ confirmed: [op3, op1, op2] });
|
|
33
|
+
const result = groupAccountsOperationsByDay([acc], { count: 10 });
|
|
34
|
+
expect(result.sections.length).toBe(2);
|
|
35
|
+
expect(result.sections[0].day.toISOString()).toContain("2024-01-02");
|
|
36
|
+
expect(result.sections[0].data.map((op) => op.id)).toEqual(["op3"]);
|
|
37
|
+
expect(result.sections[1].data.map((op) => op.id)).toEqual(["op1", "op2"]);
|
|
38
|
+
});
|
|
39
|
+
it("orders ops with equal date by transactionSequenceNumber", () => {
|
|
40
|
+
const op1 = createOp("op1", "2024-01-01T10:00:00Z", 3);
|
|
41
|
+
const op2 = createOp("op2", "2024-01-01T10:00:00Z", 5);
|
|
42
|
+
const acc1 = createAccount({ confirmed: [op1] });
|
|
43
|
+
const acc2 = createAccount({ confirmed: [op2] });
|
|
44
|
+
const result = groupAccountsOperationsByDay([acc1, acc2], { count: 10 });
|
|
45
|
+
expect(result.sections.length).toBe(1);
|
|
46
|
+
expect(result.sections[0].data.map((op) => op.id)).toEqual(["op2", "op1"]);
|
|
47
|
+
});
|
|
48
|
+
it("prioritizes defined transactionSequenceNumber over undefined", () => {
|
|
49
|
+
const op1 = createOp("op1", "2024-01-01T10:00:00Z");
|
|
50
|
+
const op2 = createOp("op2", "2024-01-01T10:00:00Z", 0);
|
|
51
|
+
const acc1 = createAccount({ confirmed: [op1] });
|
|
52
|
+
const acc2 = createAccount({ confirmed: [op2] });
|
|
53
|
+
const result = groupAccountsOperationsByDay([acc1, acc2], { count: 10 });
|
|
54
|
+
expect(result.sections[0].data.map((op) => op.id)).toEqual(["op2", "op1"]);
|
|
55
|
+
});
|
|
56
|
+
it("includes pending ops if not duplicated", () => {
|
|
57
|
+
const confirmed = createOp("op1", "2024-01-01T10:00:00Z", 5);
|
|
58
|
+
const pending = createOp("op2", "2024-01-02T10:00:00Z", 10, true);
|
|
59
|
+
const acc = createAccount({
|
|
60
|
+
confirmed: [confirmed],
|
|
61
|
+
pending: [pending],
|
|
62
|
+
});
|
|
63
|
+
const result = groupAccountsOperationsByDay([acc], { count: 10 });
|
|
64
|
+
expect(result.sections.length).toBe(2);
|
|
65
|
+
expect(result.sections[0].data.map((op) => op.id)).toEqual(["op2"]);
|
|
66
|
+
expect(result.sections[1].data.map((op) => op.id)).toEqual(["op1"]);
|
|
67
|
+
});
|
|
68
|
+
it("filters out pending ops with duplicate hash", () => {
|
|
69
|
+
const confirmed = createOp("op1", "2024-01-01T10:00:00Z", 5);
|
|
70
|
+
const pendingDuplicate = createOp("op1", "2024-01-02T10:00:00Z", 10, true); // same hash/id
|
|
71
|
+
const acc = createAccount({
|
|
72
|
+
confirmed: [confirmed],
|
|
73
|
+
pending: [pendingDuplicate],
|
|
74
|
+
});
|
|
75
|
+
const result = groupAccountsOperationsByDay([acc], { count: 10 });
|
|
76
|
+
expect(result.sections.length).toBe(1);
|
|
77
|
+
expect(result.sections[0].data.map((op) => op.id)).toEqual(["op1"]);
|
|
78
|
+
});
|
|
79
|
+
it("respects filterOperation if provided", () => {
|
|
80
|
+
const op1 = createOp("op1", "2024-01-01T10:00:00Z");
|
|
81
|
+
const op2 = createOp("op2", "2024-01-01T09:00:00Z");
|
|
82
|
+
const acc = createAccount({ confirmed: [op1, op2] });
|
|
83
|
+
const result = groupAccountsOperationsByDay([acc], {
|
|
84
|
+
count: 10,
|
|
85
|
+
filterOperation: (op) => op.id === "op1",
|
|
86
|
+
});
|
|
87
|
+
expect(result.sections.length).toBe(1);
|
|
88
|
+
expect(result.sections[0].data.map((op) => op.id)).toEqual(["op1"]);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# 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;
|
|
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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { getEnv } from "@ledgerhq/live-env";
|
|
2
|
+
/*
|
|
3
|
+
We want to discard pendingOperations if their transaction sequence number
|
|
4
|
+
has been out-numbered by the last operation...
|
|
5
|
+
*/
|
|
2
6
|
export function shouldRetainPendingOperation(account, op) {
|
|
3
7
|
// FIXME: valueOf to compare dates in typescript
|
|
4
8
|
const delay = new Date().valueOf() - op.date.valueOf();
|
|
@@ -11,6 +15,22 @@ export function shouldRetainPendingOperation(account, op) {
|
|
|
11
15
|
}
|
|
12
16
|
return delay < getEnv("OPERATION_OPTIMISTIC_RETENTION");
|
|
13
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Appends a pending operation to the list, ensuring no duplicates based on transactionSequenceNumber.
|
|
20
|
+
*
|
|
21
|
+
* If another operation in the list has the same `transactionSequenceNumber` as the new one,
|
|
22
|
+
* it is removed first — the new one replaces it at the beginning of the list.
|
|
23
|
+
*
|
|
24
|
+
* This ensures optimistic operations (e.g., from RBF or retry logic) don't stack up multiple times
|
|
25
|
+
* when they refer to the same transaction.
|
|
26
|
+
*
|
|
27
|
+
* Note: If `transactionSequenceNumber` is `undefined`, all existing ops with `undefined` are preserved,
|
|
28
|
+
* which may lead to duplicates — this is acceptable for receive-only txs or ops with incomplete metadata.
|
|
29
|
+
*
|
|
30
|
+
* @param ops - Existing list of pending operations
|
|
31
|
+
* @param op - The new pending operation to insert
|
|
32
|
+
* @returns A new array with `op` prepended and any conflicting op removed
|
|
33
|
+
*/
|
|
14
34
|
const appendPendingOp = (ops, op) => {
|
|
15
35
|
const filtered = ops.filter(o => o.transactionSequenceNumber !== op.transactionSequenceNumber);
|
|
16
36
|
filtered.unshift(op);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,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,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAC1D,CAAC;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;AAED,MAAM,CAAC,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"}
|
|
1
|
+
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;EAGE;AACF,MAAM,UAAU,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,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAC1D,CAAC;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;AAED,MAAM,CAAC,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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
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"}
|
|
@@ -149,8 +149,36 @@ describe("shouldRetainPendingOperation", () => {
|
|
|
149
149
|
// Then
|
|
150
150
|
expect(shouldRetainPending).toBe(true);
|
|
151
151
|
});
|
|
152
|
+
it("should replace existing pending operation with same transactionSequenceNumber", () => {
|
|
153
|
+
const account = createAccount("12");
|
|
154
|
+
const op1 = createOperation("12", ["addr"], 5);
|
|
155
|
+
const op2 = createOperation("12", ["addr"], 5); // same sequence
|
|
156
|
+
const result = addPendingOperation(addPendingOperation(account, op1), op2);
|
|
157
|
+
expect(result.pendingOperations.length).toBe(1);
|
|
158
|
+
expect(result.pendingOperations[0]).toBe(op2);
|
|
159
|
+
});
|
|
160
|
+
it("should remove the pending operation when confirmed version appears in second sync", () => {
|
|
161
|
+
const account = createAccount("12");
|
|
162
|
+
const now = new Date();
|
|
163
|
+
const senders = ["abc"];
|
|
164
|
+
// First sync: we get a pending operation
|
|
165
|
+
const pendingOp = createOperation("12", senders, 42, now);
|
|
166
|
+
const withPending = addPendingOperation(account, pendingOp);
|
|
167
|
+
expect(withPending.pendingOperations).toHaveLength(1);
|
|
168
|
+
expect(withPending.pendingOperations[0]).toBe(pendingOp);
|
|
169
|
+
// Second sync: confirmed operation shows up in the history
|
|
170
|
+
const confirmedOp = {
|
|
171
|
+
...pendingOp,
|
|
172
|
+
blockHeight: 100,
|
|
173
|
+
blockHash: "blockhash",
|
|
174
|
+
};
|
|
175
|
+
withPending.operations.push(confirmedOp);
|
|
176
|
+
// Should not retain pending now
|
|
177
|
+
const retain = shouldRetainPendingOperation(withPending, pendingOp);
|
|
178
|
+
expect(retain).toBe(false);
|
|
179
|
+
});
|
|
152
180
|
});
|
|
153
|
-
function createAccount(id) {
|
|
181
|
+
export function createAccount(id) {
|
|
154
182
|
const currency = listCryptoCurrencies(true)[0];
|
|
155
183
|
return {
|
|
156
184
|
type: "Account",
|
|
@@ -191,7 +219,7 @@ function createTokenAccount(id) {
|
|
|
191
219
|
swapHistory: [],
|
|
192
220
|
};
|
|
193
221
|
}
|
|
194
|
-
function createOperation(accountId, sender, sequenceNumber, date) {
|
|
222
|
+
export function createOperation(accountId, sender, sequenceNumber, date) {
|
|
195
223
|
return {
|
|
196
224
|
id: "",
|
|
197
225
|
hash: "",
|
|
@@ -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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"}
|
package/lib-es/api/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Unit } from "@ledgerhq/types-cryptoassets";
|
|
1
2
|
export type BlockInfo = {
|
|
2
3
|
height: number;
|
|
3
4
|
hash?: string;
|
|
@@ -9,13 +10,23 @@ export type Asset<TokenInfo extends TokenInfoCommon = never> = {
|
|
|
9
10
|
} | (TokenInfo extends never ? TokenInfo : {
|
|
10
11
|
type: "token";
|
|
11
12
|
} & TokenInfo);
|
|
12
|
-
export type Operation<AssetInfo extends Asset<TokenInfoCommon
|
|
13
|
+
export type Operation<AssetInfo extends Asset<TokenInfoCommon> = Asset<TokenInfoCommon>, MemoType extends Memo = MemoNotSupported> = {
|
|
13
14
|
id: string;
|
|
14
15
|
type: string;
|
|
15
16
|
senders: string[];
|
|
16
17
|
recipients: string[];
|
|
17
18
|
value: bigint;
|
|
18
19
|
asset: AssetInfo;
|
|
20
|
+
/**
|
|
21
|
+
* Optional memo associated with the operation.
|
|
22
|
+
* Use a `Memo` interface like `StringMemo<"text">`, `MapMemo<Kind, Value>`, or `MyMemo`.
|
|
23
|
+
* Defaults to `MemoNotSupported`.
|
|
24
|
+
*/
|
|
25
|
+
memo?: MemoType;
|
|
26
|
+
/**
|
|
27
|
+
* Arbitrary per-blockchain extra fields.
|
|
28
|
+
* This can include things like status, error messages, swap info, etc.
|
|
29
|
+
*/
|
|
19
30
|
details?: Record<string, unknown>;
|
|
20
31
|
tx: {
|
|
21
32
|
hash: string;
|
|
@@ -30,32 +41,78 @@ export type Transaction = {
|
|
|
30
41
|
amount: bigint;
|
|
31
42
|
fee: bigint;
|
|
32
43
|
} & Record<string, unknown>;
|
|
44
|
+
export type Account = {
|
|
45
|
+
currencyName: string;
|
|
46
|
+
address: string;
|
|
47
|
+
balance: bigint;
|
|
48
|
+
currencyUnit: Unit;
|
|
49
|
+
};
|
|
33
50
|
export type Balance<AssetInfo extends Asset<TokenInfoCommon>> = {
|
|
34
51
|
value: bigint;
|
|
52
|
+
locked?: bigint;
|
|
35
53
|
asset: AssetInfo;
|
|
36
54
|
};
|
|
37
|
-
export
|
|
55
|
+
export interface Memo {
|
|
56
|
+
type: string;
|
|
57
|
+
}
|
|
58
|
+
export interface MemoNotSupported extends Memo {
|
|
59
|
+
type: "none";
|
|
60
|
+
}
|
|
61
|
+
export interface StringMemo<Kind extends string = "text"> extends Memo {
|
|
62
|
+
type: "string";
|
|
63
|
+
kind: Kind;
|
|
64
|
+
value: string;
|
|
65
|
+
}
|
|
66
|
+
export interface MapMemo<Kind extends string, Value> extends Memo {
|
|
67
|
+
type: "map";
|
|
68
|
+
memos: Map<Kind, Value>;
|
|
69
|
+
}
|
|
70
|
+
export interface TypedMapMemo<KindToValueMap extends Record<string, unknown>> extends Memo {
|
|
71
|
+
type: "map";
|
|
72
|
+
memos: Map<keyof KindToValueMap, KindToValueMap[keyof KindToValueMap]>;
|
|
73
|
+
}
|
|
74
|
+
type MaybeMemo<MemoType extends Memo> = MemoType extends MemoNotSupported ? {} : {
|
|
75
|
+
memo: MemoType;
|
|
76
|
+
};
|
|
77
|
+
export type TransactionIntent<AssetInfo extends Asset<TokenInfoCommon>, MemoType extends Memo = MemoNotSupported> = {
|
|
38
78
|
type: string;
|
|
39
|
-
sender:
|
|
79
|
+
sender: string;
|
|
80
|
+
senderPublicKey?: string;
|
|
81
|
+
expiration?: number;
|
|
40
82
|
recipient: string;
|
|
41
83
|
amount: bigint;
|
|
42
84
|
asset: AssetInfo;
|
|
43
|
-
} &
|
|
44
|
-
export type
|
|
85
|
+
} & MaybeMemo<MemoType>;
|
|
86
|
+
export type TransactionValidation = {
|
|
87
|
+
errors: Record<string, Error>;
|
|
88
|
+
warnings: Record<string, Error>;
|
|
89
|
+
estimatedFees: bigint;
|
|
90
|
+
amount: bigint;
|
|
91
|
+
totalSpent: bigint;
|
|
92
|
+
};
|
|
93
|
+
export type FeeEstimation = {
|
|
45
94
|
value: bigint;
|
|
46
|
-
parameters?:
|
|
95
|
+
parameters?: {
|
|
96
|
+
storageLimit: bigint;
|
|
97
|
+
gasLimit: bigint;
|
|
98
|
+
gasPrice?: bigint;
|
|
99
|
+
};
|
|
47
100
|
};
|
|
48
101
|
export type Pagination = {
|
|
49
102
|
minHeight: number;
|
|
50
103
|
};
|
|
51
|
-
export type
|
|
104
|
+
export type AlpacaApi<AssetInfo extends Asset<TokenInfoCommon>, MemoType extends Memo = MemoNotSupported> = {
|
|
52
105
|
broadcast: (tx: string) => Promise<string>;
|
|
53
|
-
combine: (tx: string, signature: string, pubkey?: string) => string
|
|
54
|
-
estimateFees: (transactionIntent: TransactionIntent<AssetInfo,
|
|
55
|
-
craftTransaction: (transactionIntent: TransactionIntent<AssetInfo,
|
|
106
|
+
combine: (tx: string, signature: string, pubkey?: string) => string | Promise<string>;
|
|
107
|
+
estimateFees: (transactionIntent: TransactionIntent<AssetInfo, MemoType>) => Promise<FeeEstimation>;
|
|
108
|
+
craftTransaction: (transactionIntent: TransactionIntent<AssetInfo, MemoType>, customFees?: bigint) => Promise<string>;
|
|
56
109
|
getBalance: (address: string) => Promise<Balance<AssetInfo>[]>;
|
|
57
110
|
lastBlock: () => Promise<BlockInfo>;
|
|
58
111
|
listOperations: (address: string, pagination: Pagination) => Promise<[Operation<AssetInfo>[], string]>;
|
|
59
112
|
};
|
|
113
|
+
export type BridgeApi = {
|
|
114
|
+
validateIntent: (account: Account, transaction: Transaction) => Promise<TransactionValidation>;
|
|
115
|
+
};
|
|
116
|
+
export type Api<AssetInfo extends Asset<TokenInfoCommon>, MemoType extends Memo = MemoNotSupported> = AlpacaApi<AssetInfo, MemoType> & BridgeApi;
|
|
60
117
|
export {};
|
|
61
118
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,MAAM,KAAK,CAAC,SAAS,SAAS,eAAe,GAAG,KAAK,IACvD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB,CAAC,SAAS,SAAS,KAAK,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAAC;AAE1E,MAAM,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
|