@ledgerhq/coin-xrp 7.8.0 → 7.9.0-nightly.20251126160702
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 +14 -0
- package/lib/logic/listOperations.d.ts.map +1 -1
- package/lib/logic/listOperations.js +4 -1
- package/lib/logic/listOperations.js.map +1 -1
- package/lib-es/logic/listOperations.d.ts.map +1 -1
- package/lib-es/logic/listOperations.js +4 -1
- package/lib-es/logic/listOperations.js.map +1 -1
- package/package.json +5 -5
- package/src/logic/listOperations.test.ts +47 -2
- package/src/logic/listOperations.ts +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @ledgerhq/coin-xrp
|
|
2
2
|
|
|
3
|
+
## 7.9.0-nightly.20251126160702
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#12744](https://github.com/LedgerHQ/ledger-live/pull/12744) [`0edc30e`](https://github.com/LedgerHQ/ledger-live/commit/0edc30edd33122718cd5b82f8b9d68262368b5e2) Thanks [@dilaouid](https://github.com/dilaouid)! - fix: handle invalid ledger_index_min value gracefully
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`50aeea1`](https://github.com/LedgerHQ/ledger-live/commit/50aeea1233056e9abff9568eb928927f39e76cff), [`a2ecb55`](https://github.com/LedgerHQ/ledger-live/commit/a2ecb55df9d383dc282f5fe489cb14386208215e), [`fe81926`](https://github.com/LedgerHQ/ledger-live/commit/fe81926afeb2df8e917e6bd1e4cbab13f09647fd), [`67137eb`](https://github.com/LedgerHQ/ledger-live/commit/67137eb5d7f04dd5f3610fdaa4e463d292654105), [`49ef24c`](https://github.com/LedgerHQ/ledger-live/commit/49ef24cbd1948bfd146af0b20f2128951b2dc170), [`b4a4e16`](https://github.com/LedgerHQ/ledger-live/commit/b4a4e160aae6fd64f944ab25633f6931dc4358d3), [`927ae64`](https://github.com/LedgerHQ/ledger-live/commit/927ae64db0bb04af54e25623655a001a68e0f2d3), [`903ea9c`](https://github.com/LedgerHQ/ledger-live/commit/903ea9cdacf704a0119de2803a4f409b775391a5), [`9251b77`](https://github.com/LedgerHQ/ledger-live/commit/9251b77fcb01709723842f19220a2a41a6fc8f3b), [`02ef98f`](https://github.com/LedgerHQ/ledger-live/commit/02ef98faeb13c182ef255e06a43c39abeb55ecc7), [`6d0c6b2`](https://github.com/LedgerHQ/ledger-live/commit/6d0c6b2eda60049d8eebda5de2c54e8f0be7d009), [`0d33751`](https://github.com/LedgerHQ/ledger-live/commit/0d33751bb2ae599d0d26ce6a8efdbe01757f12fb), [`aadcec6`](https://github.com/LedgerHQ/ledger-live/commit/aadcec66847b800f79452ba1df09149e0a1cb9e8), [`b113920`](https://github.com/LedgerHQ/ledger-live/commit/b11392056bc334fc1813c473569ad3ae7be08045), [`ed8532b`](https://github.com/LedgerHQ/ledger-live/commit/ed8532bad754ca2b5f1788c6e92f4646b775ec79), [`88a5018`](https://github.com/LedgerHQ/ledger-live/commit/88a501871d58c980f18495b5b32012a3eaa9ab2c), [`9659a34`](https://github.com/LedgerHQ/ledger-live/commit/9659a34d9998d5c4dff8618bf6cef7d16403680d)]:
|
|
12
|
+
- @ledgerhq/cryptoassets@13.34.0-nightly.20251126160702
|
|
13
|
+
- @ledgerhq/types-live@6.90.0-nightly.20251126160702
|
|
14
|
+
- @ledgerhq/coin-framework@6.10.0-nightly.20251126160702
|
|
15
|
+
- @ledgerhq/live-network@2.1.2-nightly.20251126160702
|
|
16
|
+
|
|
3
17
|
## 7.8.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAW,MAAM,UAAU,CAAC;AAG1D;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,qBAAqB,GACxD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAW,MAAM,UAAU,CAAC;AAG1D;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,qBAAqB,GACxD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CA8EhC"}
|
|
@@ -20,6 +20,7 @@ async function listOperations(address, { limit, minHeight, token, order }) {
|
|
|
20
20
|
const serverInfo = await (0, network_1.getServerInfos)();
|
|
21
21
|
const ledgers = serverInfo.info.complete_ledgers.split("-");
|
|
22
22
|
const minLedgerVersion = Number(ledgers[0]);
|
|
23
|
+
const maxLedgerVersion = Number(ledgers[1]);
|
|
23
24
|
// by default the explorer queries the transactions in descending order (newest first)
|
|
24
25
|
let forward = false;
|
|
25
26
|
if (order && order === "asc") {
|
|
@@ -40,7 +41,9 @@ async function listOperations(address, { limit, minHeight, token, order }) {
|
|
|
40
41
|
marker: JSON.parse(token),
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
if (minHeight !== undefined) {
|
|
44
|
+
if (minHeight !== undefined && minHeight <= maxLedgerVersion) {
|
|
45
|
+
// Only set ledger_index_min if minHeight is valid (not higher than current ledger)
|
|
46
|
+
// LIVE-22334 fix: minHeight <= maxLedgerVersion
|
|
44
47
|
options = {
|
|
45
48
|
...options,
|
|
46
49
|
// if there is no ops, it might be after a clear and we prefer to pull from the oldest possible history
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;AAmBA,
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAW,MAAM,UAAU,CAAC;AAG1D;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,qBAAqB,GACxD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAW,MAAM,UAAU,CAAC;AAG1D;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,qBAAqB,GACxD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CA8EhC"}
|
|
@@ -17,6 +17,7 @@ export async function listOperations(address, { limit, minHeight, token, order }
|
|
|
17
17
|
const serverInfo = await getServerInfos();
|
|
18
18
|
const ledgers = serverInfo.info.complete_ledgers.split("-");
|
|
19
19
|
const minLedgerVersion = Number(ledgers[0]);
|
|
20
|
+
const maxLedgerVersion = Number(ledgers[1]);
|
|
20
21
|
// by default the explorer queries the transactions in descending order (newest first)
|
|
21
22
|
let forward = false;
|
|
22
23
|
if (order && order === "asc") {
|
|
@@ -37,7 +38,9 @@ export async function listOperations(address, { limit, minHeight, token, order }
|
|
|
37
38
|
marker: JSON.parse(token),
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
|
-
if (minHeight !== undefined) {
|
|
41
|
+
if (minHeight !== undefined && minHeight <= maxLedgerVersion) {
|
|
42
|
+
// Only set ledger_index_min if minHeight is valid (not higher than current ledger)
|
|
43
|
+
// LIVE-22334 fix: minHeight <= maxLedgerVersion
|
|
41
44
|
options = {
|
|
42
45
|
...options,
|
|
43
46
|
// if there is no ops, it might be after a clear and we prefer to pull from the oldest possible history
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAA0B,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAyB;IAEzD,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,sFAAsF;IACtF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,GAA2B;QACpC,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG;YACR,GAAG,OAAO;YACV,KAAK;SACN,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG;YACR,GAAG,OAAO;YACV,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-xrp",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.9.0-nightly.20251126160702",
|
|
4
4
|
"description": "Ledger XRP Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -103,12 +103,12 @@
|
|
|
103
103
|
"invariant": "^2.2.4",
|
|
104
104
|
"ripple-address-codec": "^5.0.0",
|
|
105
105
|
"ripple-binary-codec": "^1.3.0",
|
|
106
|
-
"@ledgerhq/coin-framework": "^6.
|
|
107
|
-
"@ledgerhq/cryptoassets": "^13.
|
|
106
|
+
"@ledgerhq/coin-framework": "^6.10.0-nightly.20251126160702",
|
|
107
|
+
"@ledgerhq/cryptoassets": "^13.34.0-nightly.20251126160702",
|
|
108
108
|
"@ledgerhq/devices": "8.7.0",
|
|
109
109
|
"@ledgerhq/errors": "^6.27.0",
|
|
110
|
-
"@ledgerhq/live-network": "^2.1.
|
|
111
|
-
"@ledgerhq/types-live": "^6.
|
|
110
|
+
"@ledgerhq/live-network": "^2.1.2-nightly.20251126160702",
|
|
111
|
+
"@ledgerhq/types-live": "^6.90.0-nightly.20251126160702",
|
|
112
112
|
"@ledgerhq/logs": "^6.13.0"
|
|
113
113
|
},
|
|
114
114
|
"devDependencies": {
|
|
@@ -14,7 +14,7 @@ const mockGetServerInfos = jest.fn().mockResolvedValue({
|
|
|
14
14
|
const mockNetworkGetTransactions = jest.fn();
|
|
15
15
|
jest.mock("../network", () => ({
|
|
16
16
|
getServerInfos: () => mockGetServerInfos(),
|
|
17
|
-
getTransactions: () => mockNetworkGetTransactions(),
|
|
17
|
+
getTransactions: (...args: any[]) => mockNetworkGetTransactions(...args),
|
|
18
18
|
}));
|
|
19
19
|
|
|
20
20
|
describe("listOperations", () => {
|
|
@@ -66,7 +66,10 @@ describe("listOperations", () => {
|
|
|
66
66
|
hash: "HASH_VALUE",
|
|
67
67
|
validated: true,
|
|
68
68
|
close_time_iso: "2000-01-01T00:00:01Z",
|
|
69
|
-
meta: {
|
|
69
|
+
meta: {
|
|
70
|
+
delivered_amount: "100",
|
|
71
|
+
TransactionResult: "tesSUCCESS",
|
|
72
|
+
},
|
|
70
73
|
tx_json: {
|
|
71
74
|
TransactionType: "Payment",
|
|
72
75
|
Fee: "1",
|
|
@@ -128,6 +131,48 @@ describe("listOperations", () => {
|
|
|
128
131
|
expect(JSON.parse(token)).toEqual(someMarker);
|
|
129
132
|
});
|
|
130
133
|
|
|
134
|
+
it("should handle gracefully when minHeight is higher than current ledger (future block)", async () => {
|
|
135
|
+
mockNetworkGetTransactions.mockResolvedValue(mockNetworkTxs([paymentTx]));
|
|
136
|
+
|
|
137
|
+
const futureMinHeight = 999439370; // very high value (more than expected)
|
|
138
|
+
const [results, token] = await listOperations("any address", {
|
|
139
|
+
minHeight: futureMinHeight,
|
|
140
|
+
order: "asc",
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
expect(mockGetServerInfos).toHaveBeenCalledTimes(1);
|
|
144
|
+
expect(mockNetworkGetTransactions).toHaveBeenCalledTimes(1);
|
|
145
|
+
|
|
146
|
+
// Verify that ledger_index_min is NOT passed when minHeight is too high
|
|
147
|
+
const callArgs = mockNetworkGetTransactions.mock.calls[0][1];
|
|
148
|
+
expect(callArgs).toBeDefined();
|
|
149
|
+
expect(callArgs.ledger_index_min).toBeUndefined();
|
|
150
|
+
|
|
151
|
+
expect(results.length).toEqual(1);
|
|
152
|
+
expect(JSON.parse(token)).toEqual(someMarker);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
it("should use ledger_index_min when minHeight is valid (within current ledger range)", async () => {
|
|
156
|
+
mockNetworkGetTransactions.mockResolvedValue(mockNetworkTxs([paymentTx]));
|
|
157
|
+
|
|
158
|
+
const validMinHeight = 1; // valid value (within range 1-2)
|
|
159
|
+
const [results, token] = await listOperations("any address", {
|
|
160
|
+
minHeight: validMinHeight,
|
|
161
|
+
order: "asc",
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
expect(mockGetServerInfos).toHaveBeenCalledTimes(1);
|
|
165
|
+
expect(mockNetworkGetTransactions).toHaveBeenCalledTimes(1);
|
|
166
|
+
|
|
167
|
+
// Verify that ledger_index_min IS passed when minHeight is valid
|
|
168
|
+
const callArgs = mockNetworkGetTransactions.mock.calls[0][1];
|
|
169
|
+
expect(callArgs).toBeDefined();
|
|
170
|
+
expect(callArgs.ledger_index_min).toBe(1); // Should be max(1, 1) = 1
|
|
171
|
+
|
|
172
|
+
expect(results.length).toEqual(1);
|
|
173
|
+
expect(JSON.parse(token)).toEqual(someMarker);
|
|
174
|
+
});
|
|
175
|
+
|
|
131
176
|
it.each([
|
|
132
177
|
{
|
|
133
178
|
address: "WHATEVER_ADDRESS",
|
|
@@ -24,6 +24,7 @@ export async function listOperations(
|
|
|
24
24
|
const serverInfo = await getServerInfos();
|
|
25
25
|
const ledgers = serverInfo.info.complete_ledgers.split("-");
|
|
26
26
|
const minLedgerVersion = Number(ledgers[0]);
|
|
27
|
+
const maxLedgerVersion = Number(ledgers[1]);
|
|
27
28
|
|
|
28
29
|
// by default the explorer queries the transactions in descending order (newest first)
|
|
29
30
|
let forward = false;
|
|
@@ -49,7 +50,9 @@ export async function listOperations(
|
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
if (minHeight !== undefined) {
|
|
53
|
+
if (minHeight !== undefined && minHeight <= maxLedgerVersion) {
|
|
54
|
+
// Only set ledger_index_min if minHeight is valid (not higher than current ledger)
|
|
55
|
+
// LIVE-22334 fix: minHeight <= maxLedgerVersion
|
|
53
56
|
options = {
|
|
54
57
|
...options,
|
|
55
58
|
// if there is no ops, it might be after a clear and we prefer to pull from the oldest possible history
|