@ledgerhq/coin-tezos 10.2.1 → 10.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @ledgerhq/coin-tezos
2
2
 
3
+ ## 10.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#846](https://github.com/LedgerHQ/coin-modules/pull/846) [`6eb5c92`](https://github.com/LedgerHQ/coin-modules/commit/6eb5c92f9e73ebbe20b2b4bb052e7008331d4f72) Thanks [@koda-apps](https://github.com/apps/koda-apps)! - Fix Send Max resolving to a 0 amount with no blocking validation error
8
+
9
+ Coverage validation only compares the native XTZ spendable balance against the fees, which a
10
+ 0-amount transaction satisfies whenever the parent account can still pay them. Three Send Max
11
+ cases therefore reached device confirmation with an enabled Continue button:
12
+
13
+ - an FA1.2/FA2 token sub-account (e.g. USDT) with a 0 token balance;
14
+ - a token sub-account whose balance TzKT could not resolve, which returned
15
+ spendable-XTZ-minus-fees in mutez as the token amount;
16
+ - a native XTZ account whose spendable balance is exactly the fees.
17
+
18
+ `validateIntent` now reports `NotEnoughBalance` whenever a `send` or `stake` Send Max resolves
19
+ to 0, and `UnexpectedGetBalanceError` when the token balance could not be retrieved — a holder
20
+ of the token is no longer told they have insufficient funds during a TzKT outage.
21
+
3
22
  ## 10.2.1
4
23
 
5
24
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2CAA2C,CAAA;AAkVlD,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAuGhC"}
1
+ {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2CAA2C,CAAA;AAmVlD,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CA8HhC"}
@@ -293,6 +293,7 @@ async function validateIntent(context, intent) {
293
293
  // the outer handler (which would wipe the already-computed estimatedFees and add a spurious
294
294
  // errors.estimation on top of the real fee-estimation error).
295
295
  let tokenBalance;
296
+ let tokenBalanceError;
296
297
  if (errors.amount && !intent.useAllAmount) {
297
298
  tokenBalance = undefined;
298
299
  }
@@ -300,23 +301,40 @@ async function validateIntent(context, intent) {
300
301
  try {
301
302
  tokenBalance = await fetchTokenBalance(config, intent);
302
303
  }
303
- catch {
304
- tokenBalance = undefined; // TzKT unreachable: fall back gracefully, no token coverage check
304
+ catch (e) {
305
+ tokenBalance = undefined;
306
+ tokenBalanceError = e;
305
307
  }
306
308
  }
307
- // send-max uses the full token balance as the sent amount; fixed-amount only needs it for coverage
308
- const tokenBalanceForSendMax = intent.useAllAmount ? tokenBalance : undefined;
309
+ // Never pass `undefined` for a token send-max: that triggers the native-branch/wrong-unit
310
+ // fallback described above. An unresolved balance becomes 0n; the guards below set the error.
311
+ const isTokenSendMax = intent.type === 'send' &&
312
+ !!intent.useAllAmount &&
313
+ (0, utils_2.resolveTezosOperationMode)(intent.type, intent.asset) === 'send_token';
314
+ const tokenBalanceForSendMax = isTokenSendMax ? (tokenBalance ?? 0n) : undefined;
309
315
  const amounts = calculateAmounts(intent, senderInfo, estimatedFees, estimatedAmount, tokenBalanceForSendMax);
310
316
  amount = amounts.amount;
311
317
  totalSpent = amounts.totalSpent;
312
- if (intent.type === 'stake' && intent.useAllAmount && amount === 0n && !errors.amount) {
318
+ // An unreachable TzKT is not an empty balance. Both block, but reporting NotEnoughBalance
319
+ // here would tell a user who holds the token that they have insufficient funds.
320
+ if (isTokenSendMax && tokenBalanceError !== undefined && !errors.amount) {
321
+ errors.amount = new errors_1.UnexpectedGetBalanceError(undefined, tokenBalanceError);
322
+ }
323
+ // A send-max resolving to 0n must block. validateBalanceCoverage below only compares native
324
+ // spendable against totalSpent, which a 0-amount transaction always satisfies, so nothing
325
+ // else catches it.
326
+ // `finalize_unstake` is excluded: it is parameter-less and 0n by construction.
327
+ if ((intent.type === 'send' || intent.type === 'stake') &&
328
+ intent.useAllAmount &&
329
+ amount === 0n &&
330
+ !errors.amount) {
313
331
  errors.amount = new errors_1.NotEnoughBalance();
314
332
  }
315
333
  const { spendable } = (0, utils_2.partitionNativeBalance)(BigInt(senderInfo.balance), BigInt(senderInfo.stakedBalance ?? 0), BigInt(senderInfo.unstakedBalance ?? 0));
316
334
  const balanceErrors = validateBalanceCoverage(spendable, totalSpent);
317
335
  Object.assign(errors, balanceErrors);
318
- // Token balance coverage for fixed-amount token sends.
319
- // (send-max is always valid by construction: amount is set to tokenBalance above.)
336
+ // Token balance coverage for fixed-amount token sends. send-max needs none: amount is the
337
+ // token balance itself, and the zero/unresolved cases already errored above.
320
338
  if (!errors.amount &&
321
339
  intent.type === 'send' &&
322
340
  !intent.useAllAmount &&
@@ -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 +1 @@
1
- {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2CAA2C,CAAA;AAkVlD,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAuGhC"}
1
+ {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2CAA2C,CAAA;AAmVlD,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CA8HhC"}
@@ -1,6 +1,6 @@
1
1
  // SPDX-FileCopyrightText: © 2026 LEDGER SAS
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { InvalidAddress, RecipientRequired, NotEnoughBalance, AmountRequired, InvalidAddressBecauseDestinationIsAlsoSource, } from '@ledgerhq/coin-module-framework/errors';
3
+ import { InvalidAddress, RecipientRequired, NotEnoughBalance, AmountRequired, InvalidAddressBecauseDestinationIsAlsoSource, UnexpectedGetBalanceError, } from '@ledgerhq/coin-module-framework/errors';
4
4
  import { validateAddress, ValidationResult } from '@taquito/utils';
5
5
  import { hasManagerKey } from '../network/types';
6
6
  import { createTzktApi } from '../network/tzkt';
@@ -290,6 +290,7 @@ export async function validateIntent(context, intent) {
290
290
  // the outer handler (which would wipe the already-computed estimatedFees and add a spurious
291
291
  // errors.estimation on top of the real fee-estimation error).
292
292
  let tokenBalance;
293
+ let tokenBalanceError;
293
294
  if (errors.amount && !intent.useAllAmount) {
294
295
  tokenBalance = undefined;
295
296
  }
@@ -297,23 +298,40 @@ export async function validateIntent(context, intent) {
297
298
  try {
298
299
  tokenBalance = await fetchTokenBalance(config, intent);
299
300
  }
300
- catch {
301
- tokenBalance = undefined; // TzKT unreachable: fall back gracefully, no token coverage check
301
+ catch (e) {
302
+ tokenBalance = undefined;
303
+ tokenBalanceError = e;
302
304
  }
303
305
  }
304
- // send-max uses the full token balance as the sent amount; fixed-amount only needs it for coverage
305
- const tokenBalanceForSendMax = intent.useAllAmount ? tokenBalance : undefined;
306
+ // Never pass `undefined` for a token send-max: that triggers the native-branch/wrong-unit
307
+ // fallback described above. An unresolved balance becomes 0n; the guards below set the error.
308
+ const isTokenSendMax = intent.type === 'send' &&
309
+ !!intent.useAllAmount &&
310
+ resolveTezosOperationMode(intent.type, intent.asset) === 'send_token';
311
+ const tokenBalanceForSendMax = isTokenSendMax ? (tokenBalance ?? 0n) : undefined;
306
312
  const amounts = calculateAmounts(intent, senderInfo, estimatedFees, estimatedAmount, tokenBalanceForSendMax);
307
313
  amount = amounts.amount;
308
314
  totalSpent = amounts.totalSpent;
309
- if (intent.type === 'stake' && intent.useAllAmount && amount === 0n && !errors.amount) {
315
+ // An unreachable TzKT is not an empty balance. Both block, but reporting NotEnoughBalance
316
+ // here would tell a user who holds the token that they have insufficient funds.
317
+ if (isTokenSendMax && tokenBalanceError !== undefined && !errors.amount) {
318
+ errors.amount = new UnexpectedGetBalanceError(undefined, tokenBalanceError);
319
+ }
320
+ // A send-max resolving to 0n must block. validateBalanceCoverage below only compares native
321
+ // spendable against totalSpent, which a 0-amount transaction always satisfies, so nothing
322
+ // else catches it.
323
+ // `finalize_unstake` is excluded: it is parameter-less and 0n by construction.
324
+ if ((intent.type === 'send' || intent.type === 'stake') &&
325
+ intent.useAllAmount &&
326
+ amount === 0n &&
327
+ !errors.amount) {
310
328
  errors.amount = new NotEnoughBalance();
311
329
  }
312
330
  const { spendable } = partitionNativeBalance(BigInt(senderInfo.balance), BigInt(senderInfo.stakedBalance ?? 0), BigInt(senderInfo.unstakedBalance ?? 0));
313
331
  const balanceErrors = validateBalanceCoverage(spendable, totalSpent);
314
332
  Object.assign(errors, balanceErrors);
315
- // Token balance coverage for fixed-amount token sends.
316
- // (send-max is always valid by construction: amount is set to tokenBalance above.)
333
+ // Token balance coverage for fixed-amount token sends. send-max needs none: amount is the
334
+ // token balance itself, and the zero/unresolved cases already errored above.
317
335
  if (!errors.amount &&
318
336
  intent.type === 'send' &&
319
337
  !intent.useAllAmount &&
@@ -1 +1 @@
1
- {"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sCAAsC;AAStC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,4CAA4C,GAC7C,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,qCAAqC,EACrC,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,iCAAiC,GAClC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,SAAS,8BAA8B,CAAC,MAAyB;IAC/D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,kBAAkB;YACrB,OAAO,MAAM,CAAC,IAAI,CAAA;QACpB;YACE,OAAO,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAc;IACpD,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO,IAAI,cAAc,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,gBAAgB,EAAE,CAAA;IAC/B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,MAAyB;IACxD,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC9C,CAAC;SAAM,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACxE,MAAM,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,SAAS,GAAG,IAAI,4CAA4C,EAAE,CAAA;IACvE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAA;IACtC,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACxC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAyB,EACzB,UAA6B;IAE7B,0FAA0F;IAC1F,0FAA0F;IAC1F,2EAA2E;IAC3E,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU,CAAA;IAClD,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,IAAI,yBAAyB,EAAE,EAAE,CAAA;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACnD,CAAC;AAED,SAAS,0BAA0B,CACjC,MAAyB,EACzB,UAA6B;IAE7B,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,CAAA;IAC3D,IAAI,aAAa,IAAI,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,EAAE,CAAA;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACjE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,EAAE,CAAA;IAC/C,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,kCAAkC,CAAC,WAAmB;IAC7D,OAAO,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACpE,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAyB,EACzB,UAA6B,EAC7B,WAAmB;IAEnB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO;YACV,OAAO,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACrD,KAAK,SAAS;YACZ,OAAO,0BAA0B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACvD,KAAK,kBAAkB;YACrB,OAAO,kCAAkC,CAAC,WAAW,CAAC,CAAA;QACxD;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,YAAoB,EAAE,UAAkB;IAChE,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC/F,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACxC,CAAC;SAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAC9D,MAAM,CAAC,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,CAAC;SAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAyB,EAAE,CAAA;IACjD,CAAC;SAAM,IACL,YAAY,CAAC,QAAQ,CAAC,sEAAsE,CAAC,EAC7F,CAAC;QACD,wFAAwF;QACxF,wFAAwF;QACxF,MAAM,CAAC,MAAM,GAAG,IAAI,iCAAiC,EAAE,CAAA;IACzD,CAAC;SAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACvD,0FAA0F;QAC1F,uFAAuF;QACvF,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAqC,EAAE,CAAA;IAChE,CAAC;SAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,MAAM;YACX,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,0BAA0B,EAAE,CAAA;IACtF,CAAC;SAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mCAAmC,CAC1C,SAAiB,EACjB,aAAqB,EACrB,eAAmC;IAEnC,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IACjF,MAAM,0BAA0B,GAAG,eAAe,KAAK,SAAS,IAAI,eAAe,GAAG,EAAE,CAAA;IACxF,MAAM,MAAM,GAAG,0BAA0B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAA;IAC5E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,MAAyB,EACzB,UAA6B,EAC7B,aAAqB,EACrB,eAAmC,EACnC,sBAA+B;IAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,aAAa,EAAE,CAAA;QAC7E,CAAC;QACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,GAAG,aAAa,EAAE,CAAA;QACjF,CAAC;QACD,iFAAiF;QACjF,MAAM,MAAM,GAAG,qBAAqB,CAClC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAC1B,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,EACrC,MAAM,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC,EACvC,aAAa,CACd,CAAA;QACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,CAAA;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;QAClE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;IAClD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAClD,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;QACtE,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAC1C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAC1B,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,EACrC,MAAM,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC,CACxC,CAAA;QACD,OAAO,mCAAmC,CAAC,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC,CAAA;IACvF,CAAC;IAED,8FAA8F;IAC9F,wFAAwF;IACxF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,gBAAwB,EACxB,UAAkB;IAElB,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,IAAI,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACxC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAqB,EACrB,MAAyB,EACzB,UAA6B;IAM7B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IACzE,CAAC;IAED,MAAM,SAAS,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9F,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE;QAC7C,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YACnC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC;YACpD,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC;YACxD,IAAI,EAAE,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,SAAS;SACrD;QACD,WAAW,EAAE;YACX,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,4EAA4E;YAC5E,qEAAqE;YACrE,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;YACnC,GAAG,CAAC,SAAS,IAAI;gBACf,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B,CAAC;SACH;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/E,CAAC;IAED,OAAO;QACL,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,MAAM;KACP,CAAA;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAuB,EACvB,MAAyB;IAEzB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE;QACjF,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,eAAe;QACtD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,OAAO,CAChD,CAAA;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACvC,CAAC;AAED,6FAA6F;AAC7F,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAqB,EACrB,MAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IACrC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAC1C,IAAI,aAAqB,CAAA;IACzB,IAAI,eAAmC,CAAA;IACvC,IAAI,MAAc,CAAA;IAClB,IAAI,UAAkB,CAAA;IAEtB,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;IACnD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAElC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;IAC5E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAE1E,4EAA4E;QAC5E,yDAAyD;QACzD,MAAM,WAAW,GACf,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAChC,CAAC,CAAC,MAAM,GAAG,CAAC,6BAA6B,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,CAAC,CAAC,EAAE,CAAA;QAER,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;QACxF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,yFAAyF;YACzF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;QACvF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAC1E,aAAa,GAAG,SAAS,CAAC,aAAa,CAAA;QACvC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;QAEvC,gGAAgG;QAChG,kFAAkF;QAClF,iGAAiG;QACjG,0FAA0F;QAC1F,+FAA+F;QAC/F,4FAA4F;QAC5F,8DAA8D;QAC9D,IAAI,YAAgC,CAAA;QACpC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1C,YAAY,GAAG,SAAS,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,SAAS,CAAA,CAAC,kEAAkE;YAC7F,CAAC;QACH,CAAC;QACD,mGAAmG;QACnG,MAAM,sBAAsB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QAE7E,MAAM,OAAO,GAAG,gBAAgB,CAC9B,MAAM,EACN,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,CACvB,CAAA;QACD,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QACvB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtF,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;QACxC,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAC1C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAC1B,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,EACrC,MAAM,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC,CACxC,CAAA;QACD,MAAM,aAAa,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAEpC,uDAAuD;QACvD,mFAAmF;QACnF,IACE,CAAC,MAAM,CAAC,MAAM;YACd,MAAM,CAAC,IAAI,KAAK,MAAM;YACtB,CAAC,MAAM,CAAC,YAAY;YACpB,YAAY,KAAK,SAAS,EAC1B,CAAC;YACD,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,UAAU,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,aAAa,GAAG,EAAE,CAAA;QAClB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;AAChE,CAAC"}
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-tezos",
3
- "version": "10.2.1",
3
+ "version": "10.2.2",
4
4
  "description": "Tezos Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -61,7 +61,7 @@
61
61
  "@taquito/rpc": "^23.0.0-RC.0",
62
62
  "@taquito/taquito": "^23.0.0-RC.0",
63
63
  "@taquito/utils": "^23.0.0-RC.0",
64
- "@ledgerhq/coin-module-framework": "^8.3.0"
64
+ "@ledgerhq/coin-module-framework": "^8.4.0"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@ledgerhq/live-network": "^3.0.0",
@@ -8,6 +8,7 @@ import {
8
8
  InvalidAddressBecauseDestinationIsAlsoSource,
9
9
  AmountRequired,
10
10
  NotEnoughBalance,
11
+ UnexpectedGetBalanceError,
11
12
  } from '@ledgerhq/coin-module-framework/errors'
12
13
  import {
13
14
  InvalidAddressBecauseAlreadyDelegated,
@@ -1163,7 +1164,7 @@ describe('validateIntent', () => {
1163
1164
  expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance)
1164
1165
  })
1165
1166
 
1166
- it('should set amount to 0n when useAllAmount and token balance row is missing', async () => {
1167
+ it('should set amount to 0n and NotEnoughBalance when useAllAmount and token balance row is missing [LIVE-36768]', async () => {
1167
1168
  const contract = 'KT1CpeSQKdkhWi4pinYcseCFKmDhs5M74BkU'
1168
1169
  mockGetTokensBalances.mockResolvedValue([])
1169
1170
 
@@ -1179,6 +1180,113 @@ describe('validateIntent', () => {
1179
1180
 
1180
1181
  expect(result.amount).toBe(0n)
1181
1182
  expect(result.totalSpent).toBe(1000n)
1183
+ expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance)
1184
+ })
1185
+
1186
+ it('send-max on a 0-balance token account blocks with NotEnoughBalance even when parent XTZ account has funds for fees [LIVE-36768]', async () => {
1187
+ const contract = 'KT1XnTn74bagnxYoFErbDH5QRAULUDtpXkmV'
1188
+
1189
+ mockGetAccountByAddress.mockResolvedValue(makeUserAccount({ balance: 5_000_000 }))
1190
+ mockGetTokensBalances.mockResolvedValue([
1191
+ {
1192
+ id: 2,
1193
+ account: { address: senderAddress },
1194
+ token: {
1195
+ id: 2,
1196
+ contract: { address: contract },
1197
+ tokenId: '0',
1198
+ standard: 'fa2' as const,
1199
+ metadata: { symbol: 'USDt', decimals: '6' },
1200
+ },
1201
+ balance: '0',
1202
+ transfersCount: 0,
1203
+ firstLevel: 0,
1204
+ firstTime: '',
1205
+ lastLevel: 0,
1206
+ lastTime: '',
1207
+ },
1208
+ ])
1209
+
1210
+ const result = await validateIntent(context, {
1211
+ intentType: 'transaction',
1212
+ asset: { type: 'token', assetReference: `${contract}:0` },
1213
+ type: 'send',
1214
+ sender: senderAddress,
1215
+ recipient: validRecipient,
1216
+ amount: 0n,
1217
+ useAllAmount: true,
1218
+ })
1219
+
1220
+ expect(result.amount).toBe(0n)
1221
+ expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance)
1222
+ })
1223
+
1224
+ it('send-max on a token account with a positive balance still resolves with no error [LIVE-36768 regression guard]', async () => {
1225
+ const contract = 'KT1XnTn74bagnxYoFErbDH5QRAULUDtpXkmV'
1226
+ const tokenBalance = '10000'
1227
+
1228
+ mockGetTokensBalances.mockResolvedValue([
1229
+ {
1230
+ id: 2,
1231
+ account: { address: senderAddress },
1232
+ token: {
1233
+ id: 2,
1234
+ contract: { address: contract },
1235
+ tokenId: '0',
1236
+ standard: 'fa2' as const,
1237
+ metadata: { symbol: 'USDt', decimals: '6' },
1238
+ },
1239
+ balance: tokenBalance,
1240
+ transfersCount: 0,
1241
+ firstLevel: 0,
1242
+ firstTime: '',
1243
+ lastLevel: 0,
1244
+ lastTime: '',
1245
+ },
1246
+ ])
1247
+
1248
+ const result = await validateIntent(context, {
1249
+ intentType: 'transaction',
1250
+ asset: { type: 'token', assetReference: `${contract}:0` },
1251
+ type: 'send',
1252
+ sender: senderAddress,
1253
+ recipient: validRecipient,
1254
+ amount: 0n,
1255
+ useAllAmount: true,
1256
+ })
1257
+
1258
+ expect(result.errors.amount).toBeUndefined()
1259
+ expect(result.amount).toBe(BigInt(tokenBalance))
1260
+ })
1261
+
1262
+ it('send-max token: an unreachable TzKT blocks instead of returning the XTZ balance as a token amount [LIVE-36768]', async () => {
1263
+ // The wrong-unit fallback: with no token balance, calculateAmounts returned
1264
+ // spendable-XTZ-minus-fees (4_999_000 mutez) as the token amount, so the user could have
1265
+ // signed a 4.999 USDt transfer they never chose.
1266
+ const contract = 'KT1XnTn74bagnxYoFErbDH5QRAULUDtpXkmV'
1267
+ const cause = new Error('TzKT unreachable')
1268
+
1269
+ mockGetAccountByAddress.mockResolvedValue(makeUserAccount({ balance: 5_000_000 }))
1270
+ mockGetTokensBalances.mockRejectedValue(cause)
1271
+
1272
+ const result = await validateIntent(context, {
1273
+ intentType: 'transaction',
1274
+ asset: { type: 'token', assetReference: `${contract}:0` },
1275
+ type: 'send',
1276
+ sender: senderAddress,
1277
+ recipient: validRecipient,
1278
+ amount: 0n,
1279
+ useAllAmount: true,
1280
+ })
1281
+
1282
+ expect(result.amount).toBe(0n)
1283
+ expect(result.amount).not.toBe(4_999_000n)
1284
+ expect(result.estimatedFees).toBe(1000n) // fee estimation is preserved, not wiped
1285
+ // A holder of the token must not be told they have insufficient funds.
1286
+ const amountError: Error = result.errors.amount
1287
+ expect(amountError).toBeInstanceOf(UnexpectedGetBalanceError)
1288
+ expect(amountError).not.toBeInstanceOf(NotEnoughBalance)
1289
+ expect(amountError).toHaveProperty('cause', cause)
1182
1290
  })
1183
1291
 
1184
1292
  it('fixed-amount TKEY (18 dec): no error when user has enough token and XTZ for fees [LIVE-35976]', async () => {
@@ -1577,6 +1685,25 @@ describe('validateIntent', () => {
1577
1685
  expect(result.amount).toBe(1_999_000n)
1578
1686
  expect(result.totalSpent).toBe(2_000_000n)
1579
1687
  })
1688
+
1689
+ it('blocks native send-max when spendable balance is exactly the fees [LIVE-36768]', async () => {
1690
+ // The native counterpart: totalSpent equals spendable exactly, so the
1691
+ // `totalSpent > spendable` coverage check passes and a 0-XTZ send used to go through.
1692
+ mockGetAccountByAddress.mockResolvedValue(makeUserAccount({ balance: 1000 })) // == estimatedFees
1693
+
1694
+ const result = await validateIntent(context, {
1695
+ intentType: 'transaction',
1696
+ asset: { type: 'native' },
1697
+ type: 'send',
1698
+ sender: senderAddress,
1699
+ recipient: validRecipient,
1700
+ amount: 0n,
1701
+ useAllAmount: true,
1702
+ })
1703
+
1704
+ expect(result.amount).toBe(0n)
1705
+ expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance)
1706
+ })
1580
1707
  })
1581
1708
 
1582
1709
  describe('successful validation', () => {
@@ -14,6 +14,7 @@ import {
14
14
  NotEnoughBalance,
15
15
  AmountRequired,
16
16
  InvalidAddressBecauseDestinationIsAlsoSource,
17
+ UnexpectedGetBalanceError,
17
18
  } from '@ledgerhq/coin-module-framework/errors'
18
19
  import { validateAddress, ValidationResult } from '@taquito/utils'
19
20
  import { hasManagerKey } from '../network/types'
@@ -397,17 +398,25 @@ export async function validateIntent(
397
398
  // the outer handler (which would wipe the already-computed estimatedFees and add a spurious
398
399
  // errors.estimation on top of the real fee-estimation error).
399
400
  let tokenBalance: bigint | undefined
401
+ let tokenBalanceError: unknown
400
402
  if (errors.amount && !intent.useAllAmount) {
401
403
  tokenBalance = undefined
402
404
  } else {
403
405
  try {
404
406
  tokenBalance = await fetchTokenBalance(config, intent)
405
- } catch {
406
- tokenBalance = undefined // TzKT unreachable: fall back gracefully, no token coverage check
407
+ } catch (e) {
408
+ tokenBalance = undefined
409
+ tokenBalanceError = e
407
410
  }
408
411
  }
409
- // send-max uses the full token balance as the sent amount; fixed-amount only needs it for coverage
410
- const tokenBalanceForSendMax = intent.useAllAmount ? tokenBalance : undefined
412
+
413
+ // Never pass `undefined` for a token send-max: that triggers the native-branch/wrong-unit
414
+ // fallback described above. An unresolved balance becomes 0n; the guards below set the error.
415
+ const isTokenSendMax =
416
+ intent.type === 'send' &&
417
+ !!intent.useAllAmount &&
418
+ resolveTezosOperationMode(intent.type, intent.asset) === 'send_token'
419
+ const tokenBalanceForSendMax = isTokenSendMax ? (tokenBalance ?? 0n) : undefined
411
420
 
412
421
  const amounts = calculateAmounts(
413
422
  intent,
@@ -419,7 +428,22 @@ export async function validateIntent(
419
428
  amount = amounts.amount
420
429
  totalSpent = amounts.totalSpent
421
430
 
422
- if (intent.type === 'stake' && intent.useAllAmount && amount === 0n && !errors.amount) {
431
+ // An unreachable TzKT is not an empty balance. Both block, but reporting NotEnoughBalance
432
+ // here would tell a user who holds the token that they have insufficient funds.
433
+ if (isTokenSendMax && tokenBalanceError !== undefined && !errors.amount) {
434
+ errors.amount = new UnexpectedGetBalanceError(undefined, tokenBalanceError)
435
+ }
436
+
437
+ // A send-max resolving to 0n must block. validateBalanceCoverage below only compares native
438
+ // spendable against totalSpent, which a 0-amount transaction always satisfies, so nothing
439
+ // else catches it.
440
+ // `finalize_unstake` is excluded: it is parameter-less and 0n by construction.
441
+ if (
442
+ (intent.type === 'send' || intent.type === 'stake') &&
443
+ intent.useAllAmount &&
444
+ amount === 0n &&
445
+ !errors.amount
446
+ ) {
423
447
  errors.amount = new NotEnoughBalance()
424
448
  }
425
449
 
@@ -431,8 +455,8 @@ export async function validateIntent(
431
455
  const balanceErrors = validateBalanceCoverage(spendable, totalSpent)
432
456
  Object.assign(errors, balanceErrors)
433
457
 
434
- // Token balance coverage for fixed-amount token sends.
435
- // (send-max is always valid by construction: amount is set to tokenBalance above.)
458
+ // Token balance coverage for fixed-amount token sends. send-max needs none: amount is the
459
+ // token balance itself, and the zero/unresolved cases already errored above.
436
460
  if (
437
461
  !errors.amount &&
438
462
  intent.type === 'send' &&