@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 +19 -0
- package/lib/logic/validateIntent.d.ts.map +1 -1
- package/lib/logic/validateIntent.js +25 -7
- package/lib/logic/validateIntent.js.map +1 -1
- package/lib-es/logic/validateIntent.d.ts.map +1 -1
- package/lib-es/logic/validateIntent.js +26 -8
- package/lib-es/logic/validateIntent.js.map +1 -1
- package/package.json +2 -2
- package/src/logic/validateIntent.test.ts +128 -1
- package/src/logic/validateIntent.ts +31 -7
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;
|
|
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;
|
|
304
|
+
catch (e) {
|
|
305
|
+
tokenBalance = undefined;
|
|
306
|
+
tokenBalanceError = e;
|
|
305
307
|
}
|
|
306
308
|
}
|
|
307
|
-
//
|
|
308
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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;
|
|
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;
|
|
301
|
+
catch (e) {
|
|
302
|
+
tokenBalance = undefined;
|
|
303
|
+
tokenBalanceError = e;
|
|
302
304
|
}
|
|
303
305
|
}
|
|
304
|
-
//
|
|
305
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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":"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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-tezos",
|
|
3
|
-
"version": "10.2.
|
|
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.
|
|
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
|
|
407
|
+
} catch (e) {
|
|
408
|
+
tokenBalance = undefined
|
|
409
|
+
tokenBalanceError = e
|
|
407
410
|
}
|
|
408
411
|
}
|
|
409
|
-
|
|
410
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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' &&
|