@ledgerhq/coin-stellar 6.26.0 → 6.26.1
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/.oxlintrc.json +7 -0
- package/CHANGELOG.md +6 -0
- package/LICENSE +194 -0
- package/knip.json +12 -0
- package/lib/api/index.d.ts +5 -5
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +12 -10
- package/lib/api/index.js.map +1 -1
- package/lib/config.d.ts +1 -1
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +2 -0
- package/lib/config.js.map +1 -1
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +3 -1
- package/lib/constants.js.map +1 -1
- package/lib/logic/broadcast.d.ts.map +1 -1
- package/lib/logic/broadcast.js +2 -0
- package/lib/logic/broadcast.js.map +1 -1
- package/lib/logic/combine.d.ts +1 -1
- package/lib/logic/combine.d.ts.map +1 -1
- package/lib/logic/combine.js +2 -0
- package/lib/logic/combine.js.map +1 -1
- package/lib/logic/common.d.ts +1 -1
- package/lib/logic/common.d.ts.map +1 -1
- package/lib/logic/common.js +4 -2
- package/lib/logic/common.js.map +1 -1
- package/lib/logic/craftTransaction.d.ts +1 -1
- package/lib/logic/craftTransaction.d.ts.map +1 -1
- package/lib/logic/craftTransaction.js +10 -8
- package/lib/logic/craftTransaction.js.map +1 -1
- package/lib/logic/estimateFees.d.ts.map +1 -1
- package/lib/logic/estimateFees.js +2 -0
- package/lib/logic/estimateFees.js.map +1 -1
- package/lib/logic/getBalance.d.ts +1 -1
- package/lib/logic/getBalance.d.ts.map +1 -1
- package/lib/logic/getBalance.js +4 -2
- package/lib/logic/getBalance.js.map +1 -1
- package/lib/logic/getBlock.d.ts +1 -1
- package/lib/logic/getBlock.d.ts.map +1 -1
- package/lib/logic/getBlock.js +39 -34
- package/lib/logic/getBlock.js.map +1 -1
- package/lib/logic/getBlockInfo.d.ts +1 -1
- package/lib/logic/getBlockInfo.d.ts.map +1 -1
- package/lib/logic/getBlockInfo.js +2 -0
- package/lib/logic/getBlockInfo.js.map +1 -1
- package/lib/logic/index.d.ts +12 -12
- package/lib/logic/index.d.ts.map +1 -1
- package/lib/logic/index.js +2 -0
- package/lib/logic/index.js.map +1 -1
- package/lib/logic/lastBlock.d.ts +1 -1
- package/lib/logic/lastBlock.d.ts.map +1 -1
- package/lib/logic/lastBlock.js +2 -0
- package/lib/logic/lastBlock.js.map +1 -1
- package/lib/logic/listOperations.d.ts +1 -1
- package/lib/logic/listOperations.d.ts.map +1 -1
- package/lib/logic/listOperations.js +6 -4
- package/lib/logic/listOperations.js.map +1 -1
- package/lib/logic/sdkWrapper.d.ts +1 -1
- package/lib/logic/sdkWrapper.d.ts.map +1 -1
- package/lib/logic/sdkWrapper.js +2 -0
- package/lib/logic/sdkWrapper.js.map +1 -1
- package/lib/logic/utils.d.ts.map +1 -1
- package/lib/logic/utils.js +4 -2
- package/lib/logic/utils.js.map +1 -1
- package/lib/logic/validateAddress.d.ts +1 -1
- package/lib/logic/validateAddress.d.ts.map +1 -1
- package/lib/logic/validateAddress.js +2 -0
- package/lib/logic/validateAddress.js.map +1 -1
- package/lib/logic/validateIntent.d.ts +2 -2
- package/lib/logic/validateIntent.d.ts.map +1 -1
- package/lib/logic/validateIntent.js +21 -19
- package/lib/logic/validateIntent.js.map +1 -1
- package/lib/logic/validateMemo.d.ts +1 -1
- package/lib/logic/validateMemo.d.ts.map +1 -1
- package/lib/logic/validateMemo.js +7 -5
- package/lib/logic/validateMemo.js.map +1 -1
- package/lib/network/horizon.d.ts +6 -7
- package/lib/network/horizon.d.ts.map +1 -1
- package/lib/network/horizon.js +71 -68
- package/lib/network/horizon.js.map +1 -1
- package/lib/network/horizonLedgerErrors.d.ts.map +1 -1
- package/lib/network/horizonLedgerErrors.js +5 -3
- package/lib/network/horizonLedgerErrors.js.map +1 -1
- package/lib/network/index.d.ts +1 -1
- package/lib/network/index.d.ts.map +1 -1
- package/lib/network/index.js +2 -0
- package/lib/network/index.js.map +1 -1
- package/lib/network/serialization.d.ts +6 -4
- package/lib/network/serialization.d.ts.map +1 -1
- package/lib/network/serialization.js +95 -91
- package/lib/network/serialization.js.map +1 -1
- package/lib/polyfill.d.ts.map +1 -1
- package/lib/polyfill.js +6 -4
- package/lib/polyfill.js.map +1 -1
- package/lib/supportedFeatures.d.ts +1 -1
- package/lib/supportedFeatures.d.ts.map +1 -1
- package/lib/supportedFeatures.js +3 -1
- package/lib/supportedFeatures.js.map +1 -1
- package/lib/types/errors.d.ts.map +1 -1
- package/lib/types/errors.js +14 -12
- package/lib/types/errors.js.map +1 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +2 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/model.d.ts +6 -6
- package/lib/types/model.d.ts.map +1 -1
- package/lib/types/model.js +7 -5
- package/lib/types/model.js.map +1 -1
- package/lib-es/api/index.d.ts +5 -5
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +20 -18
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/config.d.ts +1 -1
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js +3 -1
- package/lib-es/config.js.map +1 -1
- package/lib-es/constants.d.ts.map +1 -1
- package/lib-es/constants.js +3 -1
- package/lib-es/constants.js.map +1 -1
- package/lib-es/logic/broadcast.d.ts.map +1 -1
- package/lib-es/logic/broadcast.js +3 -1
- package/lib-es/logic/broadcast.js.map +1 -1
- package/lib-es/logic/combine.d.ts +1 -1
- package/lib-es/logic/combine.d.ts.map +1 -1
- package/lib-es/logic/combine.js +3 -1
- package/lib-es/logic/combine.js.map +1 -1
- package/lib-es/logic/common.d.ts +1 -1
- package/lib-es/logic/common.d.ts.map +1 -1
- package/lib-es/logic/common.js +5 -3
- package/lib-es/logic/common.js.map +1 -1
- package/lib-es/logic/craftTransaction.d.ts +1 -1
- package/lib-es/logic/craftTransaction.d.ts.map +1 -1
- package/lib-es/logic/craftTransaction.js +15 -13
- package/lib-es/logic/craftTransaction.js.map +1 -1
- package/lib-es/logic/estimateFees.d.ts.map +1 -1
- package/lib-es/logic/estimateFees.js +3 -1
- package/lib-es/logic/estimateFees.js.map +1 -1
- package/lib-es/logic/getBalance.d.ts +1 -1
- package/lib-es/logic/getBalance.d.ts.map +1 -1
- package/lib-es/logic/getBalance.js +5 -3
- package/lib-es/logic/getBalance.js.map +1 -1
- package/lib-es/logic/getBlock.d.ts +1 -1
- package/lib-es/logic/getBlock.d.ts.map +1 -1
- package/lib-es/logic/getBlock.js +42 -37
- package/lib-es/logic/getBlock.js.map +1 -1
- package/lib-es/logic/getBlockInfo.d.ts +1 -1
- package/lib-es/logic/getBlockInfo.d.ts.map +1 -1
- package/lib-es/logic/getBlockInfo.js +3 -1
- package/lib-es/logic/getBlockInfo.js.map +1 -1
- package/lib-es/logic/index.d.ts +12 -12
- package/lib-es/logic/index.d.ts.map +1 -1
- package/lib-es/logic/index.js +14 -12
- package/lib-es/logic/index.js.map +1 -1
- package/lib-es/logic/lastBlock.d.ts +1 -1
- package/lib-es/logic/lastBlock.d.ts.map +1 -1
- package/lib-es/logic/lastBlock.js +3 -1
- package/lib-es/logic/lastBlock.js.map +1 -1
- package/lib-es/logic/listOperations.d.ts +1 -1
- package/lib-es/logic/listOperations.d.ts.map +1 -1
- package/lib-es/logic/listOperations.js +7 -5
- package/lib-es/logic/listOperations.js.map +1 -1
- package/lib-es/logic/sdkWrapper.d.ts +1 -1
- package/lib-es/logic/sdkWrapper.d.ts.map +1 -1
- package/lib-es/logic/sdkWrapper.js +4 -2
- package/lib-es/logic/sdkWrapper.js.map +1 -1
- package/lib-es/logic/utils.d.ts.map +1 -1
- package/lib-es/logic/utils.js +6 -4
- package/lib-es/logic/utils.js.map +1 -1
- package/lib-es/logic/validateAddress.d.ts +1 -1
- package/lib-es/logic/validateAddress.d.ts.map +1 -1
- package/lib-es/logic/validateAddress.js +3 -1
- package/lib-es/logic/validateAddress.js.map +1 -1
- package/lib-es/logic/validateIntent.d.ts +2 -2
- package/lib-es/logic/validateIntent.d.ts.map +1 -1
- package/lib-es/logic/validateIntent.js +30 -28
- package/lib-es/logic/validateIntent.js.map +1 -1
- package/lib-es/logic/validateMemo.d.ts +1 -1
- package/lib-es/logic/validateMemo.d.ts.map +1 -1
- package/lib-es/logic/validateMemo.js +8 -6
- package/lib-es/logic/validateMemo.js.map +1 -1
- package/lib-es/network/horizon.d.ts +6 -7
- package/lib-es/network/horizon.d.ts.map +1 -1
- package/lib-es/network/horizon.js +80 -77
- package/lib-es/network/horizon.js.map +1 -1
- package/lib-es/network/horizonLedgerErrors.d.ts.map +1 -1
- package/lib-es/network/horizonLedgerErrors.js +7 -5
- package/lib-es/network/horizonLedgerErrors.js.map +1 -1
- package/lib-es/network/index.d.ts +1 -1
- package/lib-es/network/index.d.ts.map +1 -1
- package/lib-es/network/index.js +3 -1
- package/lib-es/network/index.js.map +1 -1
- package/lib-es/network/serialization.d.ts +6 -4
- package/lib-es/network/serialization.d.ts.map +1 -1
- package/lib-es/network/serialization.js +97 -95
- package/lib-es/network/serialization.js.map +1 -1
- package/lib-es/polyfill.d.ts.map +1 -1
- package/lib-es/polyfill.js +7 -5
- package/lib-es/polyfill.js.map +1 -1
- package/lib-es/supportedFeatures.d.ts +1 -1
- package/lib-es/supportedFeatures.d.ts.map +1 -1
- package/lib-es/supportedFeatures.js +3 -1
- package/lib-es/supportedFeatures.js.map +1 -1
- package/lib-es/types/errors.d.ts.map +1 -1
- package/lib-es/types/errors.js +15 -13
- package/lib-es/types/errors.js.map +1 -1
- package/lib-es/types/index.d.ts +2 -2
- package/lib-es/types/index.d.ts.map +1 -1
- package/lib-es/types/index.js +4 -2
- package/lib-es/types/index.js.map +1 -1
- package/lib-es/types/model.d.ts +6 -6
- package/lib-es/types/model.d.ts.map +1 -1
- package/lib-es/types/model.js +7 -5
- package/lib-es/types/model.js.map +1 -1
- package/package.json +13 -16
- package/src/api/index.integ.test.ts +165 -162
- package/src/api/index.test.ts +106 -103
- package/src/api/index.ts +49 -46
- package/src/api/index_error.test.ts +48 -25
- package/src/config.ts +15 -12
- package/src/constants.ts +4 -1
- package/src/globals.d.ts +7 -5
- package/src/logic/broadcast.integ.test.ts +22 -19
- package/src/logic/broadcast.ts +5 -2
- package/src/logic/combine.test.ts +18 -15
- package/src/logic/combine.ts +8 -5
- package/src/logic/common.ts +9 -6
- package/src/logic/craftTransaction.test.ts +76 -75
- package/src/logic/craftTransaction.ts +46 -43
- package/src/logic/estimateFees.ts +6 -3
- package/src/logic/getBalance.test.ts +31 -28
- package/src/logic/getBalance.ts +13 -10
- package/src/logic/getBlock.integ.test.ts +40 -39
- package/src/logic/getBlock.test.ts +462 -415
- package/src/logic/getBlock.ts +142 -127
- package/src/logic/getBlockInfo.test.ts +72 -69
- package/src/logic/getBlockInfo.ts +15 -12
- package/src/logic/index.ts +15 -12
- package/src/logic/lastBlock.ts +6 -3
- package/src/logic/listOperations.ts +14 -11
- package/src/logic/listOperations.unit.test.ts +212 -209
- package/src/logic/networkWrappers.test.ts +32 -29
- package/src/logic/sdkWrapper.ts +19 -16
- package/src/logic/utils.ts +13 -10
- package/src/logic/validateAddress.test.ts +21 -18
- package/src/logic/validateAddress.ts +7 -4
- package/src/logic/validateIntent.test.ts +62 -59
- package/src/logic/validateIntent.ts +87 -84
- package/src/logic/validateMemo.test.ts +50 -47
- package/src/logic/validateMemo.ts +16 -13
- package/src/network/broadcastTransaction.test.ts +60 -60
- package/src/network/fetchLedgerOperations.unit.test.ts +155 -0
- package/src/network/horizon.integ.test.ts +45 -42
- package/src/network/horizon.test.ts +17 -14
- package/src/network/horizon.ts +279 -281
- package/src/network/horizon.unit.test.ts +238 -237
- package/src/network/horizonLedgerErrors.test.ts +81 -78
- package/src/network/horizonLedgerErrors.ts +22 -19
- package/src/network/index.ts +4 -1
- package/src/network/registerHorizonInterceptors.test.ts +163 -160
- package/src/network/serialization.ts +232 -227
- package/src/network/serialization.unit.test.ts +801 -798
- package/src/polyfill.ts +18 -15
- package/src/supportedFeatures.ts +6 -3
- package/src/types/errors.ts +33 -32
- package/src/types/index.ts +5 -2
- package/src/types/model.ts +55 -52
- package/tsconfig.json +1 -1
- package/.unimportedrc.json +0 -17
- package/LICENSE.txt +0 -21
- package/src/network/fetchLedgerOperations.nock.unit.test.ts +0 -156
package/lib-es/logic/utils.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// SPDX-FileCopyrightText: © 2026 LEDGER SAS
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { StrKey } from '@stellar/stellar-sdk';
|
|
4
|
+
import { fetchSigners } from '../network';
|
|
5
|
+
export const STELLAR_BURN_ADDRESS = 'GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF';
|
|
4
6
|
export async function isAccountMultiSign(account) {
|
|
5
7
|
const signers = await fetchSigners(account);
|
|
6
8
|
return signers.length > 1;
|
|
@@ -25,6 +27,6 @@ export function isAddressValid(address) {
|
|
|
25
27
|
}
|
|
26
28
|
/** Compile-time exhaustiveness helper: call when a value should be `never`. */
|
|
27
29
|
export function assertUnreachable(_) {
|
|
28
|
-
throw new Error(
|
|
30
|
+
throw new Error('unreachable assertion failed');
|
|
29
31
|
}
|
|
30
32
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sCAAsC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,0DAA0D,CAAA;AAE9F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,yFAAyF;IACzF,IAAI,OAAO,KAAK,oBAAoB;QAAE,OAAO,KAAK,CAAA;IAElD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,CAAQ;IACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { AddressValidationCurrencyParameters } from
|
|
1
|
+
import type { AddressValidationCurrencyParameters } from '@ledgerhq/coin-module-framework/api/types';
|
|
2
2
|
export declare function validateAddress(address: string, _parameters: Partial<AddressValidationCurrencyParameters>): Promise<boolean>;
|
|
3
3
|
//# sourceMappingURL=validateAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateAddress.d.ts","sourceRoot":"","sources":["../../src/logic/validateAddress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateAddress.d.ts","sourceRoot":"","sources":["../../src/logic/validateAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAA;AAGpG,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,CAAC,mCAAmC,CAAC,GACxD,OAAO,CAAC,OAAO,CAAC,CAElB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
// SPDX-FileCopyrightText: © 2026 LEDGER SAS
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { isAddressValid } from './utils';
|
|
2
4
|
export async function validateAddress(address, _parameters) {
|
|
3
5
|
return isAddressValid(address);
|
|
4
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateAddress.js","sourceRoot":"","sources":["../../src/logic/validateAddress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateAddress.js","sourceRoot":"","sources":["../../src/logic/validateAddress.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sCAAsC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,WAAyD;IAEzD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TransactionValidation, TransactionIntent, FeeEstimation, Balance } from
|
|
2
|
-
import { StellarMemo } from
|
|
1
|
+
import { TransactionValidation, TransactionIntent, FeeEstimation, Balance } from '@ledgerhq/coin-module-framework/api/types';
|
|
2
|
+
import { StellarMemo } from '../types';
|
|
3
3
|
export declare const validateIntent: (transactionIntent: TransactionIntent<StellarMemo>, balances: Balance[], customFees?: FeeEstimation) => Promise<TransactionValidation>;
|
|
4
4
|
export default validateIntent;
|
|
5
5
|
//# sourceMappingURL=validateIntent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACR,MAAM,2CAA2C,CAAA;AAelD,OAAO,EAML,WAAW,EAMZ,MAAM,UAAU,CAAA;AAIjB,eAAO,MAAM,cAAc,GACzB,mBAAmB,iBAAiB,CAAC,WAAW,CAAC,EACjD,UAAU,OAAO,EAAE,EACnB,aAAa,aAAa,KACzB,OAAO,CAAC,qBAAqB,CA8L/B,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
1
|
+
// SPDX-FileCopyrightText: © 2026 LEDGER SAS
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { formatCurrencyUnit } from '@ledgerhq/coin-module-framework/currencies/index';
|
|
4
|
+
import { AmountRequired, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, NotEnoughBalance, NotEnoughBalanceBecauseDestinationNotCreated, NotEnoughSpendableBalance, RecipientRequired, } from '@ledgerhq/errors';
|
|
5
|
+
import BigNumber from 'bignumber.js';
|
|
6
|
+
import { fetchAccountNetworkInfo, getRecipientAccount } from '../network';
|
|
7
|
+
import { fetchAccount } from '../network/horizon';
|
|
8
|
+
import { BASE_RESERVE, MIN_BALANCE } from '../network/serialization';
|
|
9
|
+
import { StellarAssetNotAccepted, StellarAssetNotFound, StellarAssetRequired, StellarFeeSmallerThanBase, StellarFeeSmallerThanRecommended, StellarMuxedAccountNotExist, StellarNotEnoughNativeBalance, StellarNotEnoughNativeBalanceToAddTrustline, StellarSourceHasMultiSign, StellarWrongMemoFormat, } from '../types';
|
|
10
|
+
import { isAccountMultiSign, isAddressValid } from './utils';
|
|
11
|
+
import { validateMemo } from './validateMemo';
|
|
10
12
|
export const validateIntent = async (transactionIntent, balances, customFees) => {
|
|
11
13
|
const errors = {};
|
|
12
14
|
const warnings = {};
|
|
13
15
|
const useAllAmount = !!transactionIntent.useAllAmount;
|
|
14
|
-
const destinationNotExistMessage = new NotEnoughBalanceBecauseDestinationNotCreated(
|
|
16
|
+
const destinationNotExistMessage = new NotEnoughBalanceBecauseDestinationNotCreated('', {
|
|
15
17
|
minimalAmount: `${MIN_BALANCE} XLM`,
|
|
16
18
|
});
|
|
17
19
|
const { spendableBalance, balance } = await fetchAccount(transactionIntent.sender);
|
|
@@ -20,7 +22,7 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
20
22
|
const baseReserve = networkInfo.baseReserve
|
|
21
23
|
? BigInt(Math.round(networkInfo.baseReserve.toNumber() * 10)) / 10n
|
|
22
24
|
: 0n;
|
|
23
|
-
const isAssetPayment = transactionIntent.asset.type !==
|
|
25
|
+
const isAssetPayment = transactionIntent.asset.type !== 'native';
|
|
24
26
|
const nativeBalance = BigInt(balance.toString());
|
|
25
27
|
const nativeAmountAvailable = BigInt(spendableBalance.toString()) - estimatedFees;
|
|
26
28
|
let amount = 0n;
|
|
@@ -30,8 +32,8 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
30
32
|
if (!errors.amount && nativeAmountAvailable < 0) {
|
|
31
33
|
errors.amount = new StellarNotEnoughNativeBalance();
|
|
32
34
|
}
|
|
33
|
-
const networkInfoBaseFee = BigInt(networkInfo.baseFee.toString() ||
|
|
34
|
-
const networkFees = BigInt(networkInfo.fees.toString() ||
|
|
35
|
+
const networkInfoBaseFee = BigInt(networkInfo.baseFee.toString() || '0');
|
|
36
|
+
const networkFees = BigInt(networkInfo.fees.toString() || '0');
|
|
35
37
|
// Entered fee is smaller than base fee
|
|
36
38
|
if (estimatedFees < networkInfoBaseFee) {
|
|
37
39
|
errors.transaction = new StellarFeeSmallerThanBase();
|
|
@@ -41,13 +43,13 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
41
43
|
warnings.transaction = new StellarFeeSmallerThanRecommended();
|
|
42
44
|
}
|
|
43
45
|
// Operation specific checks
|
|
44
|
-
if (transactionIntent.type ===
|
|
46
|
+
if (transactionIntent.type === 'changeTrust') {
|
|
45
47
|
// Check asset provided
|
|
46
|
-
if (transactionIntent.asset.type !==
|
|
47
|
-
((
|
|
48
|
-
(
|
|
48
|
+
if (transactionIntent.asset.type !== 'native' &&
|
|
49
|
+
(('assetReference' in transactionIntent.asset && !transactionIntent.asset.assetReference) ||
|
|
50
|
+
('assetOwner' in transactionIntent.asset && !transactionIntent.asset.assetOwner))) {
|
|
49
51
|
// This is unlikely
|
|
50
|
-
errors.transaction = new StellarAssetRequired(
|
|
52
|
+
errors.transaction = new StellarAssetRequired('');
|
|
51
53
|
}
|
|
52
54
|
// Has enough native balance to add new trustline
|
|
53
55
|
// NOTE: need to do this as BASE_RESERVE is 0.5
|
|
@@ -62,11 +64,11 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
62
64
|
// Payment
|
|
63
65
|
// Check recipient address
|
|
64
66
|
if (!transactionIntent.recipient) {
|
|
65
|
-
errors.recipient = new RecipientRequired(
|
|
67
|
+
errors.recipient = new RecipientRequired('');
|
|
66
68
|
}
|
|
67
69
|
else if (!isAddressValid(transactionIntent.recipient)) {
|
|
68
|
-
errors.recipient = new InvalidAddress(
|
|
69
|
-
currencyName: transactionIntent.asset.name ??
|
|
70
|
+
errors.recipient = new InvalidAddress('', {
|
|
71
|
+
currencyName: transactionIntent.asset.name ?? '', // NOTE: before account.currencyName,
|
|
70
72
|
});
|
|
71
73
|
}
|
|
72
74
|
else if (transactionIntent.sender === transactionIntent.recipient) {
|
|
@@ -92,7 +94,7 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
92
94
|
// Asset payment
|
|
93
95
|
if (isAssetPayment) {
|
|
94
96
|
const asset = transactionIntent.asset;
|
|
95
|
-
if (asset.type ===
|
|
97
|
+
if (asset.type === 'native' || (!('assetReference' in asset) && !('assetOwner' in asset))) {
|
|
96
98
|
throw new StellarAssetNotFound();
|
|
97
99
|
}
|
|
98
100
|
// Check recipient account accepts asset
|
|
@@ -100,14 +102,14 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
100
102
|
!errors.recipient &&
|
|
101
103
|
!warnings.recipient &&
|
|
102
104
|
!recipientAccount.assetIds.includes(`${asset.assetReference}:${asset.assetOwner}`)) {
|
|
103
|
-
errors.recipient = new StellarAssetNotAccepted(
|
|
105
|
+
errors.recipient = new StellarAssetNotAccepted('', {
|
|
104
106
|
assetCode: asset.assetReference,
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
|
-
const assetBalance = balances.find(b => b.asset.type !==
|
|
108
|
-
|
|
109
|
+
const assetBalance = balances.find((b) => b.asset.type !== 'native' &&
|
|
110
|
+
'assetReference' in b.asset &&
|
|
109
111
|
b.asset.assetReference === asset.assetReference &&
|
|
110
|
-
|
|
112
|
+
'assetOwner' in b.asset &&
|
|
111
113
|
b.asset.assetOwner === asset.assetOwner);
|
|
112
114
|
if (!assetBalance) {
|
|
113
115
|
// This is unlikely
|
|
@@ -140,7 +142,7 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
140
142
|
disableRounding: true,
|
|
141
143
|
showCode: true,
|
|
142
144
|
})
|
|
143
|
-
:
|
|
145
|
+
: 'Unknown unit',
|
|
144
146
|
});
|
|
145
147
|
}
|
|
146
148
|
if (!errors.recipient && !errors.amount && (amount < 0n || totalSpent > nativeBalance)) {
|
|
@@ -156,7 +158,7 @@ export const validateIntent = async (transactionIntent, balances, customFees) =>
|
|
|
156
158
|
if (await isAccountMultiSign(transactionIntent.sender)) {
|
|
157
159
|
errors.recipient = new StellarSourceHasMultiSign();
|
|
158
160
|
}
|
|
159
|
-
if (transactionIntent?.memo?.type !==
|
|
161
|
+
if (transactionIntent?.memo?.type !== 'NO_MEMO' &&
|
|
160
162
|
!validateMemo(transactionIntent?.memo?.value, transactionIntent?.memo?.type)) {
|
|
161
163
|
errors.transaction = new StellarWrongMemoFormat();
|
|
162
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StellarMemoKind } from
|
|
1
|
+
import { StellarMemoKind } from '../types/model';
|
|
2
2
|
export declare const MEMO_TEXT_MAXIMUM_SIZE = 28;
|
|
3
3
|
export declare const MEMO_HASH_FIXED_SIZE = 64;
|
|
4
4
|
export declare function validateMemo(memo: string, type: StellarMemoKind): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateMemo.d.ts","sourceRoot":"","sources":["../../src/logic/validateMemo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateMemo.d.ts","sourceRoot":"","sources":["../../src/logic/validateMemo.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAYzE"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
// SPDX-FileCopyrightText: © 2026 LEDGER SAS
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import BigNumber from 'bignumber.js';
|
|
2
4
|
export const MEMO_TEXT_MAXIMUM_SIZE = 28;
|
|
3
5
|
export const MEMO_HASH_FIXED_SIZE = 64;
|
|
4
6
|
export function validateMemo(memo, type) {
|
|
5
7
|
switch (type) {
|
|
6
|
-
case
|
|
8
|
+
case 'NO_MEMO':
|
|
7
9
|
return !memo || memo.length === 0;
|
|
8
|
-
case
|
|
10
|
+
case 'MEMO_TEXT':
|
|
9
11
|
return memo.length <= MEMO_TEXT_MAXIMUM_SIZE;
|
|
10
|
-
case
|
|
12
|
+
case 'MEMO_ID':
|
|
11
13
|
return !new BigNumber(memo.toString()).isNaN();
|
|
12
|
-
case
|
|
13
|
-
case
|
|
14
|
+
case 'MEMO_HASH':
|
|
15
|
+
case 'MEMO_RETURN':
|
|
14
16
|
return memo.length === 64;
|
|
15
17
|
}
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateMemo.js","sourceRoot":"","sources":["../../src/logic/validateMemo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"validateMemo.js","sourceRoot":"","sources":["../../src/logic/validateMemo.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sCAAsC;AAEtC,OAAO,SAAS,MAAM,cAAc,CAAA;AAGpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAEtC,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAqB;IAC9D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA;QACnC,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,MAAM,IAAI,sBAAsB,CAAA;QAC9C,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QAChD,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,MAAM,KAAK,EAAE,CAAA;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { Operation, Page } from
|
|
2
|
-
import type { CacheRes } from
|
|
3
|
-
import { Horizon } from
|
|
4
|
-
import {
|
|
5
|
-
import { type BalanceAsset, type NetworkInfo, type RawOperation, type Signer, NetworkCongestionLevel } from "../types";
|
|
1
|
+
import type { Operation, Page } from '@ledgerhq/coin-module-framework/api/types';
|
|
2
|
+
import type { CacheRes } from '@ledgerhq/live-network/cache';
|
|
3
|
+
import { Horizon } from '@stellar/stellar-sdk';
|
|
4
|
+
import { type BalanceAsset, type NetworkInfo, type RawOperation, type Signer, NetworkCongestionLevel } from '../types';
|
|
6
5
|
/**
|
|
7
6
|
* Register logging and URL-fix interceptors on Horizon.AxiosClient.
|
|
8
7
|
* Must be called once after coinConfig is initialised (i.e. inside createApi).
|
|
@@ -42,12 +41,12 @@ export declare function fetchAccount(addr: string): Promise<{
|
|
|
42
41
|
*
|
|
43
42
|
* @return {Operation[]}
|
|
44
43
|
*/
|
|
45
|
-
export declare function fetchAllOperations(accountId: string, addr: string, order:
|
|
44
|
+
export declare function fetchAllOperations(accountId: string, addr: string, order: 'asc' | 'desc', cursor?: string, maxOperations?: number): Promise<Operation[]>;
|
|
46
45
|
export declare function fetchOperations({ accountId, addr, minHeight, order, cursor, limit, }: {
|
|
47
46
|
accountId: string;
|
|
48
47
|
addr: string;
|
|
49
48
|
minHeight: number;
|
|
50
|
-
order:
|
|
49
|
+
order: 'asc' | 'desc';
|
|
51
50
|
cursor: string | undefined;
|
|
52
51
|
limit?: number | undefined;
|
|
53
52
|
}): Promise<Page<Operation>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"horizon.d.ts","sourceRoot":"","sources":["../../src/network/horizon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"horizon.d.ts","sourceRoot":"","sources":["../../src/network/horizon.ts"],"names":[],"mappings":"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"}
|