@ledgerhq/coin-xrp 7.11.0-nightly.20260114024814 → 7.12.0-nightly.20260115024415

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-xrp@7.10.1 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-xrp
2
+ > @ledgerhq/coin-xrp@7.11.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-xrp
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @ledgerhq/coin-xrp
2
2
 
3
- ## 7.11.0-nightly.20260114024814
3
+ ## 7.12.0-nightly.20260115024415
4
4
 
5
5
  ### Minor Changes
6
6
 
@@ -8,14 +8,51 @@
8
8
 
9
9
  ### Patch Changes
10
10
 
11
- - Updated dependencies [[`6e6a12c`](https://github.com/LedgerHQ/ledger-live/commit/6e6a12cdfd79b752839bf664bab5156cea9c9e23), [`537a975`](https://github.com/LedgerHQ/ledger-live/commit/537a975536ca3669d3b88371e1e1f651c4cb9a1b), [`cbcae7c`](https://github.com/LedgerHQ/ledger-live/commit/cbcae7c0ba9b54b1167d26e4227bd2b847207cb9), [`7e12cd3`](https://github.com/LedgerHQ/ledger-live/commit/7e12cd30f47d42cd8dac35cfa475abdd9ad44e19), [`a8c59da`](https://github.com/LedgerHQ/ledger-live/commit/a8c59da888c8cb3c200a9f62869ca54aba706cae), [`4455451`](https://github.com/LedgerHQ/ledger-live/commit/445545117cf0196d7c5a303df21041c23b91844c), [`8cb7d40`](https://github.com/LedgerHQ/ledger-live/commit/8cb7d40e0a55e47f42adc5cd522740cab1fd4de4), [`e57fa40`](https://github.com/LedgerHQ/ledger-live/commit/e57fa40a1bb480ebcc03120a1aab3b02e249bf8d), [`8754614`](https://github.com/LedgerHQ/ledger-live/commit/87546149a62b81f8a25bb6222626592ead629f62), [`e844b3b`](https://github.com/LedgerHQ/ledger-live/commit/e844b3bd5f8a4b21cf94e0a598c22a2a42791490), [`cf08174`](https://github.com/LedgerHQ/ledger-live/commit/cf0817462e9f0210fceff29ec60b0699e4e69b71), [`b9a3e43`](https://github.com/LedgerHQ/ledger-live/commit/b9a3e431be33943ab4feb4294d6a7f27b966e61b), [`c2d4259`](https://github.com/LedgerHQ/ledger-live/commit/c2d425989b600732f4fb0a88993e2673e93698a7), [`9e80ecc`](https://github.com/LedgerHQ/ledger-live/commit/9e80ecc5ef6da4f39a184d3c555c8d7c439754a8), [`3ac5f26`](https://github.com/LedgerHQ/ledger-live/commit/3ac5f26111f8596327fa7e588e514509de3f8a59), [`ffa9e7e`](https://github.com/LedgerHQ/ledger-live/commit/ffa9e7e58dd60d0f568362a95e14ba5d130c2d07), [`4caf2ef`](https://github.com/LedgerHQ/ledger-live/commit/4caf2eff2aff2a6f1048ccf8e94295c954554ae1), [`c4045c7`](https://github.com/LedgerHQ/ledger-live/commit/c4045c714ee0fb1f02f6e75cae04e99cdea01ae4), [`7f05536`](https://github.com/LedgerHQ/ledger-live/commit/7f0553665e9c8721f263825cc79994bfc6729d9b)]:
12
- - @ledgerhq/cryptoassets@13.36.0-nightly.20260114024814
13
- - @ledgerhq/coin-framework@6.12.0-nightly.20260114024814
14
- - @ledgerhq/types-live@6.92.0-nightly.20260114024814
15
- - @ledgerhq/devices@8.9.0-nightly.20260114024814
16
- - @ledgerhq/errors@6.29.0-nightly.20260114024814
17
- - @ledgerhq/logs@6.14.0-nightly.20260114024814
18
- - @ledgerhq/live-network@2.2.0-nightly.20260114024814
11
+ - Updated dependencies [[`537a975`](https://github.com/LedgerHQ/ledger-live/commit/537a975536ca3669d3b88371e1e1f651c4cb9a1b), [`cbcae7c`](https://github.com/LedgerHQ/ledger-live/commit/cbcae7c0ba9b54b1167d26e4227bd2b847207cb9), [`8754614`](https://github.com/LedgerHQ/ledger-live/commit/87546149a62b81f8a25bb6222626592ead629f62), [`cf08174`](https://github.com/LedgerHQ/ledger-live/commit/cf0817462e9f0210fceff29ec60b0699e4e69b71), [`b9a3e43`](https://github.com/LedgerHQ/ledger-live/commit/b9a3e431be33943ab4feb4294d6a7f27b966e61b), [`3ac5f26`](https://github.com/LedgerHQ/ledger-live/commit/3ac5f26111f8596327fa7e588e514509de3f8a59), [`7f05536`](https://github.com/LedgerHQ/ledger-live/commit/7f0553665e9c8721f263825cc79994bfc6729d9b)]:
12
+ - @ledgerhq/cryptoassets@13.37.0-nightly.20260115024415
13
+ - @ledgerhq/coin-framework@6.13.0-nightly.20260115024415
14
+ - @ledgerhq/types-live@6.93.0-nightly.20260115024415
15
+ - @ledgerhq/devices@8.10.0-nightly.20260115024415
16
+ - @ledgerhq/errors@6.29.0-nightly.20260115024415
17
+ - @ledgerhq/logs@6.14.0-nightly.20260115024415
18
+ - @ledgerhq/live-network@2.2.0-nightly.20260115024415
19
+
20
+ ## 7.11.0
21
+
22
+ ### Minor Changes
23
+
24
+ - [#13651](https://github.com/LedgerHQ/ledger-live/pull/13651) [`398b3d8`](https://github.com/LedgerHQ/ledger-live/commit/398b3d85d2de4a520d5ae78a18135f8d163aad5b) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - fix(llc): do not recompute balances
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [[`6e6a12c`](https://github.com/LedgerHQ/ledger-live/commit/6e6a12cdfd79b752839bf664bab5156cea9c9e23), [`398b3d8`](https://github.com/LedgerHQ/ledger-live/commit/398b3d85d2de4a520d5ae78a18135f8d163aad5b), [`7e12cd3`](https://github.com/LedgerHQ/ledger-live/commit/7e12cd30f47d42cd8dac35cfa475abdd9ad44e19), [`a8c59da`](https://github.com/LedgerHQ/ledger-live/commit/a8c59da888c8cb3c200a9f62869ca54aba706cae), [`4455451`](https://github.com/LedgerHQ/ledger-live/commit/445545117cf0196d7c5a303df21041c23b91844c), [`8cb7d40`](https://github.com/LedgerHQ/ledger-live/commit/8cb7d40e0a55e47f42adc5cd522740cab1fd4de4), [`e57fa40`](https://github.com/LedgerHQ/ledger-live/commit/e57fa40a1bb480ebcc03120a1aab3b02e249bf8d), [`e844b3b`](https://github.com/LedgerHQ/ledger-live/commit/e844b3bd5f8a4b21cf94e0a598c22a2a42791490), [`c2d4259`](https://github.com/LedgerHQ/ledger-live/commit/c2d425989b600732f4fb0a88993e2673e93698a7), [`9e80ecc`](https://github.com/LedgerHQ/ledger-live/commit/9e80ecc5ef6da4f39a184d3c555c8d7c439754a8), [`ffa9e7e`](https://github.com/LedgerHQ/ledger-live/commit/ffa9e7e58dd60d0f568362a95e14ba5d130c2d07), [`4caf2ef`](https://github.com/LedgerHQ/ledger-live/commit/4caf2eff2aff2a6f1048ccf8e94295c954554ae1), [`c4045c7`](https://github.com/LedgerHQ/ledger-live/commit/c4045c714ee0fb1f02f6e75cae04e99cdea01ae4)]:
29
+ - @ledgerhq/cryptoassets@13.36.0
30
+ - @ledgerhq/coin-framework@6.12.0
31
+ - @ledgerhq/types-live@6.92.0
32
+ - @ledgerhq/devices@8.9.0
33
+ - @ledgerhq/live-network@2.1.5
34
+
35
+ ## 7.11.0-next.1
36
+
37
+ ### Minor Changes
38
+
39
+ - [#13651](https://github.com/LedgerHQ/ledger-live/pull/13651) [`398b3d8`](https://github.com/LedgerHQ/ledger-live/commit/398b3d85d2de4a520d5ae78a18135f8d163aad5b) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - fix(llc): do not recompute balances
40
+
41
+ ### Patch Changes
42
+
43
+ - Updated dependencies [[`398b3d8`](https://github.com/LedgerHQ/ledger-live/commit/398b3d85d2de4a520d5ae78a18135f8d163aad5b)]:
44
+ - @ledgerhq/coin-framework@6.12.0-next.1
45
+
46
+ ## 7.10.2-next.0
47
+
48
+ ### Patch Changes
49
+
50
+ - Updated dependencies [[`6e6a12c`](https://github.com/LedgerHQ/ledger-live/commit/6e6a12cdfd79b752839bf664bab5156cea9c9e23), [`7e12cd3`](https://github.com/LedgerHQ/ledger-live/commit/7e12cd30f47d42cd8dac35cfa475abdd9ad44e19), [`a8c59da`](https://github.com/LedgerHQ/ledger-live/commit/a8c59da888c8cb3c200a9f62869ca54aba706cae), [`4455451`](https://github.com/LedgerHQ/ledger-live/commit/445545117cf0196d7c5a303df21041c23b91844c), [`8cb7d40`](https://github.com/LedgerHQ/ledger-live/commit/8cb7d40e0a55e47f42adc5cd522740cab1fd4de4), [`e57fa40`](https://github.com/LedgerHQ/ledger-live/commit/e57fa40a1bb480ebcc03120a1aab3b02e249bf8d), [`e844b3b`](https://github.com/LedgerHQ/ledger-live/commit/e844b3bd5f8a4b21cf94e0a598c22a2a42791490), [`c2d4259`](https://github.com/LedgerHQ/ledger-live/commit/c2d425989b600732f4fb0a88993e2673e93698a7), [`9e80ecc`](https://github.com/LedgerHQ/ledger-live/commit/9e80ecc5ef6da4f39a184d3c555c8d7c439754a8), [`ffa9e7e`](https://github.com/LedgerHQ/ledger-live/commit/ffa9e7e58dd60d0f568362a95e14ba5d130c2d07), [`4caf2ef`](https://github.com/LedgerHQ/ledger-live/commit/4caf2eff2aff2a6f1048ccf8e94295c954554ae1), [`c4045c7`](https://github.com/LedgerHQ/ledger-live/commit/c4045c714ee0fb1f02f6e75cae04e99cdea01ae4)]:
51
+ - @ledgerhq/cryptoassets@13.36.0-next.0
52
+ - @ledgerhq/types-live@6.92.0-next.0
53
+ - @ledgerhq/devices@8.9.0-next.0
54
+ - @ledgerhq/coin-framework@6.11.2-next.0
55
+ - @ledgerhq/live-network@2.1.5-next.0
19
56
 
20
57
  ## 7.10.1
21
58
 
@@ -1,4 +1,4 @@
1
- import { TransactionValidation, TransactionIntent, FeeEstimation } from "@ledgerhq/coin-framework/api/types";
1
+ import { TransactionValidation, TransactionIntent, FeeEstimation, Balance } from "@ledgerhq/coin-framework/api/types";
2
2
  import { XrpMapMemo } from "../types";
3
- export declare const validateIntent: (transactionIntent: TransactionIntent<XrpMapMemo>, customFees?: FeeEstimation) => Promise<TransactionValidation>;
3
+ export declare const validateIntent: (transactionIntent: TransactionIntent<XrpMapMemo>, balances: Balance[], customFees?: FeeEstimation) => Promise<TransactionValidation>;
4
4
  //# sourceMappingURL=validateIntent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKtC,eAAO,MAAM,cAAc,sBACN,iBAAiB,CAAC,UAAU,CAAC,eACnC,aAAa,KACzB,OAAO,CAAC,qBAAqB,CAsE/B,CAAC"}
1
+ {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACR,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,eAAO,MAAM,cAAc,sBACN,iBAAiB,CAAC,UAAU,CAAC,YACtC,OAAO,EAAE,eACN,aAAa,KACzB,OAAO,CAAC,qBAAqB,CAqE/B,CAAC"}
@@ -7,8 +7,7 @@ const index_1 = require("@ledgerhq/coin-framework/currencies/index");
7
7
  const network_1 = require("../network");
8
8
  const utils_1 = require("./utils");
9
9
  const common_1 = require("./common");
10
- const getBalance_1 = require("./getBalance");
11
- const validateIntent = async (transactionIntent, customFees) => {
10
+ const validateIntent = async (transactionIntent, balances, customFees) => {
12
11
  const errors = {};
13
12
  const warnings = {};
14
13
  const serverInfos = await (0, network_1.getServerInfos)();
@@ -19,7 +18,6 @@ const validateIntent = async (transactionIntent, customFees) => {
19
18
  if (amount > 0 && estimatedFees * 10n > amount) {
20
19
  warnings.feeTooHigh = new errors_1.FeeTooHigh();
21
20
  }
22
- const balances = await (0, getBalance_1.getBalance)(transactionIntent.sender);
23
21
  const nativeBalance = balances.find(b => b.asset.type === "native");
24
22
  if (nativeBalance === undefined) {
25
23
  throw Error("Shouldn't happen");
@@ -1 +1 @@
1
- {"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TransactionValidation, TransactionIntent, FeeEstimation } from "@ledgerhq/coin-framework/api/types";
1
+ import { TransactionValidation, TransactionIntent, FeeEstimation, Balance } from "@ledgerhq/coin-framework/api/types";
2
2
  import { XrpMapMemo } from "../types";
3
- export declare const validateIntent: (transactionIntent: TransactionIntent<XrpMapMemo>, customFees?: FeeEstimation) => Promise<TransactionValidation>;
3
+ export declare const validateIntent: (transactionIntent: TransactionIntent<XrpMapMemo>, balances: Balance[], customFees?: FeeEstimation) => Promise<TransactionValidation>;
4
4
  //# sourceMappingURL=validateIntent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKtC,eAAO,MAAM,cAAc,sBACN,iBAAiB,CAAC,UAAU,CAAC,eACnC,aAAa,KACzB,OAAO,CAAC,qBAAqB,CAsE/B,CAAC"}
1
+ {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACR,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,eAAO,MAAM,cAAc,sBACN,iBAAiB,CAAC,UAAU,CAAC,YACtC,OAAO,EAAE,eACN,aAAa,KACzB,OAAO,CAAC,qBAAqB,CAqE/B,CAAC"}
@@ -4,8 +4,7 @@ import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
4
4
  import { getServerInfos } from "../network";
5
5
  import { cachedRecipientIsNew } from "./utils";
6
6
  import { parseAPIValue } from "./common";
7
- import { getBalance } from "./getBalance";
8
- export const validateIntent = async (transactionIntent, customFees) => {
7
+ export const validateIntent = async (transactionIntent, balances, customFees) => {
9
8
  const errors = {};
10
9
  const warnings = {};
11
10
  const serverInfos = await getServerInfos();
@@ -16,7 +15,6 @@ export const validateIntent = async (transactionIntent, customFees) => {
16
15
  if (amount > 0 && estimatedFees * 10n > amount) {
17
16
  warnings.feeTooHigh = new FeeTooHigh();
18
17
  }
19
- const balances = await getBalance(transactionIntent.sender);
20
18
  const nativeBalance = balances.find(b => b.asset.type === "native");
21
19
  if (nativeBalance === undefined) {
22
20
  throw Error("Shouldn't happen");
@@ -1 +1 @@
1
- {"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.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.11.0-nightly.20260114024814",
3
+ "version": "7.12.0-nightly.20260115024415",
4
4
  "description": "Ledger XRP Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -103,13 +103,13 @@
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.12.0-nightly.20260114024814",
107
- "@ledgerhq/cryptoassets": "^13.36.0-nightly.20260114024814",
108
- "@ledgerhq/devices": "8.9.0-nightly.20260114024814",
109
- "@ledgerhq/errors": "^6.29.0-nightly.20260114024814",
110
- "@ledgerhq/live-network": "^2.2.0-nightly.20260114024814",
111
- "@ledgerhq/types-live": "^6.92.0-nightly.20260114024814",
112
- "@ledgerhq/logs": "^6.14.0-nightly.20260114024814"
106
+ "@ledgerhq/coin-framework": "^6.13.0-nightly.20260115024415",
107
+ "@ledgerhq/cryptoassets": "^13.37.0-nightly.20260115024415",
108
+ "@ledgerhq/devices": "8.10.0-nightly.20260115024415",
109
+ "@ledgerhq/errors": "^6.29.0-nightly.20260115024415",
110
+ "@ledgerhq/live-network": "^2.2.0-nightly.20260115024415",
111
+ "@ledgerhq/types-live": "^6.93.0-nightly.20260115024415",
112
+ "@ledgerhq/logs": "^6.14.0-nightly.20260115024415"
113
113
  },
114
114
  "devDependencies": {
115
115
  "@faker-js/faker": "^8.4.1",
@@ -122,8 +122,8 @@
122
122
  "@swc/jest": "0.2.39",
123
123
  "@swc/core": "1.15.8",
124
124
  "typescript": "^5.4.5",
125
- "@ledgerhq/disable-network-setup": "^0.2.0-nightly.20260114024814",
126
- "@ledgerhq/types-cryptoassets": "^7.32.0-nightly.20260114024814"
125
+ "@ledgerhq/disable-network-setup": "^0.2.0-nightly.20260115024415",
126
+ "@ledgerhq/types-cryptoassets": "^7.32.0-nightly.20260115024415"
127
127
  },
128
128
  "scripts": {
129
129
  "clean": "rimraf lib lib-es",
@@ -42,13 +42,6 @@ describe("validateIntent", () => {
42
42
  },
43
43
  },
44
44
  });
45
- mockGetBalance.mockResolvedValue([
46
- {
47
- value: 50_000_000n,
48
- asset: { type: "native" },
49
- locked: 0n,
50
- },
51
- ]);
52
45
 
53
46
  const result = await validateIntent(
54
47
  // account as any,
@@ -59,6 +52,13 @@ describe("validateIntent", () => {
59
52
  recipient: RECIPIENT,
60
53
  asset: { unit: { code: "XRP", magnitude: 6 } },
61
54
  } as any,
55
+ [
56
+ {
57
+ value: 50_000_000n,
58
+ asset: { type: "native" },
59
+ locked: 0n,
60
+ },
61
+ ],
62
62
  {
63
63
  value: 10_000n, // fees
64
64
  },
@@ -77,13 +77,6 @@ describe("validateIntent", () => {
77
77
  },
78
78
  },
79
79
  });
80
- mockGetBalance.mockResolvedValue([
81
- {
82
- value: 50_000_000n,
83
- asset: { type: "native" },
84
- locked: 0n,
85
- },
86
- ]);
87
80
 
88
81
  const result = await validateIntent(
89
82
  // account as any,
@@ -94,6 +87,13 @@ describe("validateIntent", () => {
94
87
  recipient: RECIPIENT,
95
88
  asset: { unit: { code: "XRP", magnitude: 6 } },
96
89
  } as any,
90
+ [
91
+ {
92
+ value: 50_000_000n,
93
+ asset: { type: "native" },
94
+ locked: 0n,
95
+ },
96
+ ],
97
97
  {
98
98
  value: 200_000n, // fees
99
99
  },
@@ -111,13 +111,6 @@ describe("validateIntent", () => {
111
111
  },
112
112
  },
113
113
  });
114
- mockGetBalance.mockResolvedValue([
115
- {
116
- value: 30_000_000n,
117
- asset: { type: "native" },
118
- locked: 0n,
119
- },
120
- ]);
121
114
 
122
115
  const result = await validateIntent(
123
116
  // account as any,
@@ -128,6 +121,13 @@ describe("validateIntent", () => {
128
121
  recipient: RECIPIENT,
129
122
  asset: { unit: { code: "XRP", magnitude: 6 } },
130
123
  } as any,
124
+ [
125
+ {
126
+ value: 30_000_000n,
127
+ asset: { type: "native" },
128
+ locked: 0n,
129
+ },
130
+ ],
131
131
  );
132
132
 
133
133
  expect(result.errors.fee?.name).toBe("FeeNotLoaded");
@@ -141,13 +141,6 @@ describe("validateIntent", () => {
141
141
  },
142
142
  },
143
143
  });
144
- mockGetBalance.mockResolvedValue([
145
- {
146
- value: 50_000_000n,
147
- asset: { type: "native" },
148
- locked: 0n,
149
- },
150
- ]);
151
144
 
152
145
  const result = await validateIntent(
153
146
  // account as any,
@@ -158,6 +151,13 @@ describe("validateIntent", () => {
158
151
  recipient: SENDER,
159
152
  asset: { unit: { code: "XRP", magnitude: 6 } },
160
153
  } as any,
154
+ [
155
+ {
156
+ value: 50_000_000n,
157
+ asset: { type: "native" },
158
+ locked: 0n,
159
+ },
160
+ ],
161
161
  { value: 10_000n }, // fees
162
162
  );
163
163
 
@@ -172,13 +172,6 @@ describe("validateIntent", () => {
172
172
  },
173
173
  },
174
174
  });
175
- mockGetBalance.mockResolvedValue([
176
- {
177
- value: 50_000_000n,
178
- asset: { type: "native" },
179
- locked: 0n,
180
- },
181
- ]);
182
175
 
183
176
  const result = await validateIntent(
184
177
  // account as any,
@@ -189,6 +182,13 @@ describe("validateIntent", () => {
189
182
  recipient: RECIPIENT_NEW,
190
183
  asset: { unit: { code: "XRP", magnitude: 6 } },
191
184
  } as any,
185
+ [
186
+ {
187
+ value: 50_000_000n,
188
+ asset: { type: "native" },
189
+ locked: 0n,
190
+ },
191
+ ],
192
192
  { value: 10_000n }, // fees
193
193
  );
194
194
 
@@ -203,13 +203,6 @@ describe("validateIntent", () => {
203
203
  },
204
204
  },
205
205
  });
206
- mockGetBalance.mockResolvedValue([
207
- {
208
- value: 50_000_000n,
209
- asset: { type: "native" },
210
- locked: 0n,
211
- },
212
- ]);
213
206
 
214
207
  const result = await validateIntent(
215
208
  // account as any,
@@ -220,6 +213,13 @@ describe("validateIntent", () => {
220
213
  recipient: RECIPIENT,
221
214
  asset: { unit: { code: "XRP", magnitude: 6 } },
222
215
  } as any,
216
+ [
217
+ {
218
+ value: 50_000_000n,
219
+ asset: { type: "native" },
220
+ locked: 0n,
221
+ },
222
+ ],
223
223
  { value: 10_000n }, // fees
224
224
  );
225
225
 
@@ -234,13 +234,6 @@ describe("validateIntent", () => {
234
234
  },
235
235
  },
236
236
  });
237
- mockGetBalance.mockResolvedValue([
238
- {
239
- value: 50_000_000n,
240
- asset: { type: "native" },
241
- locked: 0n,
242
- },
243
- ]);
244
237
 
245
238
  const result = await validateIntent(
246
239
  // account as any,
@@ -251,6 +244,13 @@ describe("validateIntent", () => {
251
244
  amount: 1_000_000n,
252
245
  recipient: "not-an-address",
253
246
  } as any,
247
+ [
248
+ {
249
+ value: 50_000_000n,
250
+ asset: { type: "native" },
251
+ locked: 0n,
252
+ },
253
+ ],
254
254
  { value: 10_000n }, // fees
255
255
  );
256
256
 
@@ -265,13 +265,6 @@ describe("validateIntent", () => {
265
265
  },
266
266
  },
267
267
  });
268
- mockGetBalance.mockResolvedValue([
269
- {
270
- value: 50_000_000n,
271
- asset: { type: "native" },
272
- locked: 0n,
273
- },
274
- ]);
275
268
 
276
269
  const result = await validateIntent(
277
270
  // account as any,
@@ -282,6 +275,13 @@ describe("validateIntent", () => {
282
275
  amount: 1_000_000n,
283
276
  recipient: "",
284
277
  } as any,
278
+ [
279
+ {
280
+ value: 50_000_000n,
281
+ asset: { type: "native" },
282
+ locked: 0n,
283
+ },
284
+ ],
285
285
  { value: 10_000n }, // fees
286
286
  );
287
287
 
@@ -14,15 +14,16 @@ import {
14
14
  TransactionValidation,
15
15
  TransactionIntent,
16
16
  FeeEstimation,
17
+ Balance,
17
18
  } from "@ledgerhq/coin-framework/api/types";
18
19
  import { getServerInfos } from "../network";
19
20
  import { XrpMapMemo } from "../types";
20
21
  import { cachedRecipientIsNew } from "./utils";
21
22
  import { parseAPIValue } from "./common";
22
- import { getBalance } from "./getBalance";
23
23
 
24
24
  export const validateIntent = async (
25
25
  transactionIntent: TransactionIntent<XrpMapMemo>,
26
+ balances: Balance[],
26
27
  customFees?: FeeEstimation,
27
28
  ): Promise<TransactionValidation> => {
28
29
  const errors: Record<string, Error> = {};
@@ -39,7 +40,6 @@ export const validateIntent = async (
39
40
  warnings.feeTooHigh = new FeeTooHigh();
40
41
  }
41
42
 
42
- const balances = await getBalance(transactionIntent.sender);
43
43
  const nativeBalance = balances.find(b => b.asset.type === "native");
44
44
  if (nativeBalance === undefined) {
45
45
  throw Error("Shouldn't happen");