@ledgerhq/live-common 34.54.0 → 34.55.0-nightly.20251210114107
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/lib/__tests__/test-helpers/bridge.js +1 -1
- package/lib/__tests__/test-helpers/bridge.js.map +1 -1
- package/lib/__tests__/test-helpers/environment.js +3 -0
- package/lib/__tests__/test-helpers/environment.js.map +1 -1
- package/lib/account/index.d.ts +1 -0
- package/lib/account/index.d.ts.map +1 -1
- package/lib/account/index.js +4 -1
- package/lib/account/index.js.map +1 -1
- package/lib/account/recentAddresses.d.ts +10 -0
- package/lib/account/recentAddresses.d.ts.map +1 -0
- package/lib/account/recentAddresses.js +60 -0
- package/lib/account/recentAddresses.js.map +1 -0
- package/lib/account/serialization.js +1 -1
- package/lib/account/serialization.js.map +1 -1
- package/lib/account/support.js +1 -1
- package/lib/account/support.js.map +1 -1
- package/lib/bridge/generic-alpaca/accountBridge.d.ts +1 -1
- package/lib/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/accountBridge.js +2 -1
- package/lib/bridge/generic-alpaca/accountBridge.js.map +1 -1
- package/lib/bridge/generic-alpaca/broadcast.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/broadcast.js +3 -3
- package/lib/bridge/generic-alpaca/broadcast.js.map +1 -1
- package/lib/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/currencyBridge.js +3 -3
- package/lib/bridge/generic-alpaca/currencyBridge.js.map +1 -1
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +2 -1
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/getAccountShape.js +24 -8
- package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
- package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/getTransactionStatus.js +16 -1
- package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
- package/lib/bridge/generic-alpaca/postSync.d.ts +16 -0
- package/lib/bridge/generic-alpaca/postSync.d.ts.map +1 -0
- package/lib/bridge/generic-alpaca/postSync.js +44 -0
- package/lib/bridge/generic-alpaca/postSync.js.map +1 -0
- package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.js +45 -4
- package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
- package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signOperation.js +18 -2
- package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib/bridge/generic-alpaca/signer/Eth.d.ts +2 -0
- package/lib/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signer/Eth.js +8 -1
- package/lib/bridge/generic-alpaca/signer/Eth.js.map +1 -1
- package/lib/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signer/index.js +7 -0
- package/lib/bridge/generic-alpaca/signer/index.js.map +1 -1
- package/lib/bridge/generic-alpaca/types.d.ts +4 -0
- package/lib/bridge/generic-alpaca/types.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/utils.js +12 -3
- package/lib/bridge/generic-alpaca/utils.js.map +1 -1
- package/lib/bridge/impl.d.ts.map +1 -1
- package/lib/bridge/impl.js +14 -3
- package/lib/bridge/impl.js.map +1 -1
- package/lib/bridge/react/BridgeSync.d.ts +1 -1
- package/lib/bridge/react/BridgeSync.d.ts.map +1 -1
- package/lib/bridge/react/BridgeSync.js.map +1 -1
- package/lib/currencies/helpers.d.ts +1 -0
- package/lib/currencies/helpers.d.ts.map +1 -1
- package/lib/currencies/helpers.js +7 -1
- package/lib/currencies/helpers.js.map +1 -1
- package/lib/deposit/api.js +2 -2
- package/lib/deposit/api.js.map +1 -1
- package/lib/domain/getTokensWithFunds.d.ts +7 -1
- package/lib/domain/getTokensWithFunds.d.ts.map +1 -1
- package/lib/domain/getTokensWithFunds.js +15 -4
- package/lib/domain/getTokensWithFunds.js.map +1 -1
- package/lib/domain/getTotalStakeableAssets.d.ts +10 -0
- package/lib/domain/getTotalStakeableAssets.d.ts.map +1 -0
- package/lib/domain/getTotalStakeableAssets.js +35 -0
- package/lib/domain/getTotalStakeableAssets.js.map +1 -0
- package/lib/e2e/data/deviceLabelsData.d.ts.map +1 -1
- package/lib/e2e/data/deviceLabelsData.js +1 -0
- package/lib/e2e/data/deviceLabelsData.js.map +1 -1
- package/lib/e2e/data/regexes.d.ts +2 -0
- package/lib/e2e/data/regexes.d.ts.map +1 -0
- package/lib/e2e/data/regexes.js +5 -0
- package/lib/e2e/data/regexes.js.map +1 -0
- package/lib/e2e/enum/Device.d.ts +1 -0
- package/lib/e2e/enum/Device.d.ts.map +1 -1
- package/lib/e2e/enum/Device.js +1 -0
- package/lib/e2e/enum/Device.js.map +1 -1
- package/lib/e2e/families/cardano.d.ts.map +1 -1
- package/lib/e2e/families/cardano.js +29 -14
- package/lib/e2e/families/cardano.js.map +1 -1
- package/lib/e2e/index.d.ts +35 -3
- package/lib/e2e/index.d.ts.map +1 -1
- package/lib/e2e/index.js +21 -1
- package/lib/e2e/index.js.map +1 -1
- package/lib/e2e/speculos.d.ts.map +1 -1
- package/lib/e2e/speculos.js +31 -4
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/e2e/speculosAppVersion.d.ts.map +1 -1
- package/lib/e2e/speculosAppVersion.js +6 -2
- package/lib/e2e/speculosAppVersion.js.map +1 -1
- package/lib/e2e/swap.d.ts.map +1 -1
- package/lib/e2e/swap.js +7 -6
- package/lib/e2e/swap.js.map +1 -1
- package/lib/env.react.d.ts +1 -1
- package/lib/env.react.d.ts.map +1 -1
- package/lib/exchange/swap/api/v5/fetchCurrencyAll.js +2 -2
- package/lib/exchange/swap/api/v5/fetchCurrencyAll.js.map +1 -1
- package/lib/exchange/swap/api/v5/fetchCurrencyFrom.js +3 -3
- package/lib/exchange/swap/api/v5/fetchCurrencyFrom.js.map +1 -1
- package/lib/exchange/swap/api/v5/fetchCurrencyTo.js +2 -2
- package/lib/exchange/swap/api/v5/fetchCurrencyTo.js.map +1 -1
- package/lib/exchange/swap/api/v5/fetchRates.js +2 -2
- package/lib/exchange/swap/api/v5/fetchRates.js.map +1 -1
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.d.ts.map +1 -1
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.js +4 -0
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
- package/lib/exchange/swap/postSwapState.d.ts.map +1 -1
- package/lib/exchange/swap/postSwapState.js +10 -6
- package/lib/exchange/swap/postSwapState.js.map +1 -1
- package/lib/exchange/swap/transactionStrategies.d.ts +3 -2
- package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
- package/lib/exchange/swap/transactionStrategies.js +26 -7
- package/lib/exchange/swap/transactionStrategies.js.map +1 -1
- package/lib/exchange/swap/types.d.ts +3 -1
- package/lib/exchange/swap/types.d.ts.map +1 -1
- package/lib/families/bitcoin/bridge/api.js +2 -2
- package/lib/families/bitcoin/bridge/api.js.map +1 -1
- package/lib/families/bitcoin/walletApiAdapter.d.ts.map +1 -1
- package/lib/families/bitcoin/walletApiAdapter.js +3 -0
- package/lib/families/bitcoin/walletApiAdapter.js.map +1 -1
- package/lib/families/canton/config.d.ts.map +1 -1
- package/lib/families/canton/config.js +4 -4
- package/lib/families/canton/config.js.map +1 -1
- package/lib/families/canton/react.d.ts +2 -0
- package/lib/families/canton/react.d.ts.map +1 -1
- package/lib/families/canton/react.js +40 -1
- package/lib/families/canton/react.js.map +1 -1
- package/lib/families/celo/setup.d.ts.map +1 -1
- package/lib/families/celo/setup.js +11 -0
- package/lib/families/celo/setup.js.map +1 -1
- package/lib/families/evm/bridge/mock.d.ts +1 -0
- package/lib/families/evm/bridge/mock.d.ts.map +1 -1
- package/lib/families/evm/bridge/mock.js +12 -0
- package/lib/families/evm/bridge/mock.js.map +1 -1
- package/lib/families/evm/setup.d.ts +1 -4
- package/lib/families/evm/setup.d.ts.map +1 -1
- package/lib/families/evm/setup.js +1 -8
- package/lib/families/evm/setup.js.map +1 -1
- package/lib/families/evm/walletApiAdapter.d.ts +7 -0
- package/lib/families/evm/walletApiAdapter.d.ts.map +1 -1
- package/lib/families/evm/walletApiAdapter.js +36 -2
- package/lib/families/evm/walletApiAdapter.js.map +1 -1
- package/lib/families/hedera/react.d.ts +6 -0
- package/lib/families/hedera/react.d.ts.map +1 -0
- package/lib/families/hedera/react.js +50 -0
- package/lib/families/hedera/react.js.map +1 -0
- package/lib/families/polkadot/config.js +1 -1
- package/lib/families/polkadot/config.js.map +1 -1
- package/lib/families/stacks/constants.d.ts +1 -1
- package/lib/families/stacks/constants.d.ts.map +1 -1
- package/lib/families/stacks/constants.js +1 -1
- package/lib/families/stacks/constants.js.map +1 -1
- package/lib/featureFlags/FeatureToggle.d.ts +2 -2
- package/lib/featureFlags/FeatureToggle.d.ts.map +1 -1
- package/lib/featureFlags/FeatureToggle.js.map +1 -1
- package/lib/featureFlags/defaultFeatures.d.ts +2 -0
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +22 -1
- package/lib/featureFlags/defaultFeatures.js.map +1 -1
- package/lib/featureFlags/firebaseFeatureFlags.js +1 -1
- package/lib/featureFlags/firebaseFeatureFlags.js.map +1 -1
- package/lib/featureFlags/stakePrograms/index.js +4 -4
- package/lib/featureFlags/stakePrograms/index.js.map +1 -1
- package/lib/featureFlags/useFeature.d.ts +1 -1
- package/lib/featureFlags/useFeature.d.ts.map +1 -1
- package/lib/featureFlags/useHasOverriddenFeatureFlags.js +1 -1
- package/lib/featureFlags/useHasOverriddenFeatureFlags.js.map +1 -1
- package/lib/generated/bridge/js.d.ts +0 -1
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +30 -32
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/generated/bridge/mock.d.ts +1 -0
- package/lib/generated/bridge/mock.d.ts.map +1 -1
- package/lib/helpers/cryptoIconSize.d.ts +3 -0
- package/lib/helpers/cryptoIconSize.d.ts.map +1 -0
- package/lib/helpers/cryptoIconSize.js +40 -0
- package/lib/helpers/cryptoIconSize.js.map +1 -0
- package/lib/helpers.d.ts +1 -0
- package/lib/helpers.d.ts.map +1 -1
- package/lib/helpers.js +15 -0
- package/lib/helpers.js.map +1 -1
- package/lib/hooks/useHtmlLinkSegments.d.ts +19 -0
- package/lib/hooks/useHtmlLinkSegments.d.ts.map +1 -0
- package/lib/hooks/useHtmlLinkSegments.js +128 -0
- package/lib/hooks/useHtmlLinkSegments.js.map +1 -0
- package/lib/hw/getAppAndVersion.d.ts +3 -1
- package/lib/hw/getAppAndVersion.d.ts.map +1 -1
- package/lib/hw/getAppAndVersion.js +2 -2
- package/lib/hw/getAppAndVersion.js.map +1 -1
- package/lib/hw/getBitcoinLikeInfo.js +1 -1
- package/lib/hw/getBitcoinLikeInfo.js.map +1 -1
- package/lib/hw/isFirmwareUpdateVersionSupported.d.ts +2 -2
- package/lib/hw/isFirmwareUpdateVersionSupported.d.ts.map +1 -1
- package/lib/hw/isFirmwareUpdateVersionSupported.js +20 -7
- package/lib/hw/isFirmwareUpdateVersionSupported.js.map +1 -1
- package/lib/load/speculos.d.ts.map +1 -1
- package/lib/load/speculos.js +1 -0
- package/lib/load/speculos.js.map +1 -1
- package/lib/market/api/index.d.ts.map +1 -1
- package/lib/market/api/index.js +7 -7
- package/lib/market/api/index.js.map +1 -1
- package/lib/market/utils/types.d.ts +5 -0
- package/lib/market/utils/types.d.ts.map +1 -1
- package/lib/market/utils/types.js.map +1 -1
- package/lib/mock/account.js +1 -1
- package/lib/mock/account.js.map +1 -1
- package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +6 -0
- package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
- package/lib/notifications/AnnouncementProvider/api/api.js +2 -2
- package/lib/notifications/AnnouncementProvider/api/api.js.map +1 -1
- package/lib/notifications/ServiceStatusProvider/api/api.js +2 -2
- package/lib/notifications/ServiceStatusProvider/api/api.js.map +1 -1
- package/lib/operation.d.ts.map +1 -1
- package/lib/operation.js +7 -2
- package/lib/operation.js.map +1 -1
- package/lib/platform/providers/RampCatalogProvider/api/index.js +2 -2
- package/lib/platform/providers/RampCatalogProvider/api/index.js.map +1 -1
- package/lib/platform/providers/RampCatalogProvider/index.d.ts +1 -1
- package/lib/platform/providers/RampCatalogProvider/index.d.ts.map +1 -1
- package/lib/platform/providers/RemoteLiveAppProvider/index.d.ts +1 -1
- package/lib/platform/providers/RemoteLiveAppProvider/index.d.ts.map +1 -1
- package/lib/postOnboarding/reducer.d.ts +2 -0
- package/lib/postOnboarding/reducer.d.ts.map +1 -1
- package/lib/wallet-api/Exchange/SwapError.d.ts +93 -0
- package/lib/wallet-api/Exchange/SwapError.d.ts.map +1 -0
- package/lib/wallet-api/Exchange/SwapError.js +142 -0
- package/lib/wallet-api/Exchange/SwapError.js.map +1 -0
- package/lib/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
- package/lib/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
- package/lib/wallet-api/Exchange/handleSwapErrors.js +112 -0
- package/lib/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
- package/lib/wallet-api/Exchange/index.d.ts +4 -0
- package/lib/wallet-api/Exchange/index.d.ts.map +1 -0
- package/lib/wallet-api/Exchange/index.js +27 -0
- package/lib/wallet-api/Exchange/index.js.map +1 -0
- package/lib/wallet-api/Exchange/parser.d.ts +46 -0
- package/lib/wallet-api/Exchange/parser.d.ts.map +1 -0
- package/lib/wallet-api/Exchange/parser.js +97 -0
- package/lib/wallet-api/Exchange/parser.js.map +1 -0
- package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
- package/lib/wallet-api/Exchange/server.js +227 -174
- package/lib/wallet-api/Exchange/server.js.map +1 -1
- package/lib/wallet-api/Exchange/tracking.d.ts +7 -6
- package/lib/wallet-api/Exchange/tracking.d.ts.map +1 -1
- package/lib/wallet-api/Exchange/tracking.js +52 -13
- package/lib/wallet-api/Exchange/tracking.js.map +1 -1
- package/lib/wallet-api/LocalLiveAppProvider/index.d.ts +1 -1
- package/lib/wallet-api/LocalLiveAppProvider/index.d.ts.map +1 -1
- package/lib/wallet-api/constants.d.ts +1 -1
- package/lib/wallet-api/logic.d.ts +1 -1
- package/lib/wallet-api/logic.d.ts.map +1 -1
- package/lib/wallet-api/logic.js +5 -5
- package/lib/wallet-api/logic.js.map +1 -1
- package/lib/wallet-api/react.d.ts.map +1 -1
- package/lib/wallet-api/react.js +9 -6
- package/lib/wallet-api/react.js.map +1 -1
- package/lib/wallet-api/tracking.d.ts +5 -5
- package/lib/wallet-api/tracking.d.ts.map +1 -1
- package/lib/wallet-api/tracking.js +30 -10
- package/lib/wallet-api/tracking.js.map +1 -1
- package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
- package/lib/wallet-api/useDappLogic.js +31 -20
- package/lib/wallet-api/useDappLogic.js.map +1 -1
- package/lib/wallet-api/utils/extractDappURLFromManifest.js +3 -3
- package/lib/wallet-api/utils/extractDappURLFromManifest.js.map +1 -1
- package/lib/wallet-api/utils/extractURLFromManifest.js +1 -1
- package/lib/wallet-api/utils/extractURLFromManifest.js.map +1 -1
- package/lib/walletSync/getEnvironmentParams.js +6 -6
- package/lib/walletSync/getEnvironmentParams.js.map +1 -1
- package/lib-es/__tests__/test-helpers/bridge.js +1 -1
- package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
- package/lib-es/__tests__/test-helpers/environment.js +3 -0
- package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
- package/lib-es/account/index.d.ts +1 -0
- package/lib-es/account/index.d.ts.map +1 -1
- package/lib-es/account/index.js +1 -0
- package/lib-es/account/index.js.map +1 -1
- package/lib-es/account/recentAddresses.d.ts +10 -0
- package/lib-es/account/recentAddresses.d.ts.map +1 -0
- package/lib-es/account/recentAddresses.js +55 -0
- package/lib-es/account/recentAddresses.js.map +1 -0
- package/lib-es/account/serialization.js +1 -1
- package/lib-es/account/serialization.js.map +1 -1
- package/lib-es/account/support.js +1 -1
- package/lib-es/account/support.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.js +2 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/broadcast.js +3 -3
- package/lib-es/bridge/generic-alpaca/broadcast.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/currencyBridge.js +3 -3
- package/lib-es/bridge/generic-alpaca/currencyBridge.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +2 -1
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/getAccountShape.js +24 -8
- package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +16 -1
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/postSync.d.ts +16 -0
- package/lib-es/bridge/generic-alpaca/postSync.d.ts.map +1 -0
- package/lib-es/bridge/generic-alpaca/postSync.js +37 -0
- package/lib-es/bridge/generic-alpaca/postSync.js.map +1 -0
- package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js +45 -4
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.js +18 -2
- package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts +2 -0
- package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/Eth.js +4 -0
- package/lib-es/bridge/generic-alpaca/signer/Eth.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/index.js +7 -0
- package/lib-es/bridge/generic-alpaca/signer/index.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/types.d.ts +4 -0
- package/lib-es/bridge/generic-alpaca/types.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/utils.js +12 -3
- package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
- package/lib-es/bridge/impl.d.ts.map +1 -1
- package/lib-es/bridge/impl.js +14 -3
- package/lib-es/bridge/impl.js.map +1 -1
- package/lib-es/bridge/react/BridgeSync.d.ts +1 -1
- package/lib-es/bridge/react/BridgeSync.d.ts.map +1 -1
- package/lib-es/bridge/react/BridgeSync.js.map +1 -1
- package/lib-es/currencies/helpers.d.ts +1 -0
- package/lib-es/currencies/helpers.d.ts.map +1 -1
- package/lib-es/currencies/helpers.js +5 -0
- package/lib-es/currencies/helpers.js.map +1 -1
- package/lib-es/deposit/api.js +1 -1
- package/lib-es/deposit/api.js.map +1 -1
- package/lib-es/domain/getTokensWithFunds.d.ts +7 -1
- package/lib-es/domain/getTokensWithFunds.d.ts.map +1 -1
- package/lib-es/domain/getTokensWithFunds.js +13 -3
- package/lib-es/domain/getTokensWithFunds.js.map +1 -1
- package/lib-es/domain/getTotalStakeableAssets.d.ts +10 -0
- package/lib-es/domain/getTotalStakeableAssets.d.ts.map +1 -0
- package/lib-es/domain/getTotalStakeableAssets.js +31 -0
- package/lib-es/domain/getTotalStakeableAssets.js.map +1 -0
- package/lib-es/e2e/data/deviceLabelsData.d.ts.map +1 -1
- package/lib-es/e2e/data/deviceLabelsData.js +1 -0
- package/lib-es/e2e/data/deviceLabelsData.js.map +1 -1
- package/lib-es/e2e/data/regexes.d.ts +2 -0
- package/lib-es/e2e/data/regexes.d.ts.map +1 -0
- package/lib-es/e2e/data/regexes.js +2 -0
- package/lib-es/e2e/data/regexes.js.map +1 -0
- package/lib-es/e2e/enum/Device.d.ts +1 -0
- package/lib-es/e2e/enum/Device.d.ts.map +1 -1
- package/lib-es/e2e/enum/Device.js +1 -0
- package/lib-es/e2e/enum/Device.js.map +1 -1
- package/lib-es/e2e/families/cardano.d.ts.map +1 -1
- package/lib-es/e2e/families/cardano.js +29 -14
- package/lib-es/e2e/families/cardano.js.map +1 -1
- package/lib-es/e2e/index.d.ts +35 -3
- package/lib-es/e2e/index.d.ts.map +1 -1
- package/lib-es/e2e/index.js +16 -0
- package/lib-es/e2e/index.js.map +1 -1
- package/lib-es/e2e/speculos.d.ts.map +1 -1
- package/lib-es/e2e/speculos.js +31 -4
- package/lib-es/e2e/speculos.js.map +1 -1
- package/lib-es/e2e/speculosAppVersion.d.ts.map +1 -1
- package/lib-es/e2e/speculosAppVersion.js +6 -2
- package/lib-es/e2e/speculosAppVersion.js.map +1 -1
- package/lib-es/e2e/swap.d.ts.map +1 -1
- package/lib-es/e2e/swap.js +7 -6
- package/lib-es/e2e/swap.js.map +1 -1
- package/lib-es/env.react.d.ts +1 -1
- package/lib-es/env.react.d.ts.map +1 -1
- package/lib-es/exchange/swap/api/v5/fetchCurrencyAll.js +1 -1
- package/lib-es/exchange/swap/api/v5/fetchCurrencyAll.js.map +1 -1
- package/lib-es/exchange/swap/api/v5/fetchCurrencyFrom.js +2 -2
- package/lib-es/exchange/swap/api/v5/fetchCurrencyFrom.js.map +1 -1
- package/lib-es/exchange/swap/api/v5/fetchCurrencyTo.js +1 -1
- package/lib-es/exchange/swap/api/v5/fetchCurrencyTo.js.map +1 -1
- package/lib-es/exchange/swap/api/v5/fetchRates.js +1 -1
- package/lib-es/exchange/swap/api/v5/fetchRates.js.map +1 -1
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.d.ts.map +1 -1
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js +4 -0
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
- package/lib-es/exchange/swap/postSwapState.d.ts.map +1 -1
- package/lib-es/exchange/swap/postSwapState.js +10 -6
- package/lib-es/exchange/swap/postSwapState.js.map +1 -1
- package/lib-es/exchange/swap/transactionStrategies.d.ts +3 -2
- package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
- package/lib-es/exchange/swap/transactionStrategies.js +26 -7
- package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
- package/lib-es/exchange/swap/types.d.ts +3 -1
- package/lib-es/exchange/swap/types.d.ts.map +1 -1
- package/lib-es/families/bitcoin/bridge/api.js +1 -1
- package/lib-es/families/bitcoin/bridge/api.js.map +1 -1
- package/lib-es/families/bitcoin/walletApiAdapter.d.ts.map +1 -1
- package/lib-es/families/bitcoin/walletApiAdapter.js +3 -0
- package/lib-es/families/bitcoin/walletApiAdapter.js.map +1 -1
- package/lib-es/families/canton/config.d.ts.map +1 -1
- package/lib-es/families/canton/config.js +4 -4
- package/lib-es/families/canton/config.js.map +1 -1
- package/lib-es/families/canton/react.d.ts +2 -0
- package/lib-es/families/canton/react.d.ts.map +1 -1
- package/lib-es/families/canton/react.js +38 -1
- package/lib-es/families/canton/react.js.map +1 -1
- package/lib-es/families/celo/setup.d.ts.map +1 -1
- package/lib-es/families/celo/setup.js +11 -0
- package/lib-es/families/celo/setup.js.map +1 -1
- package/lib-es/families/evm/bridge/mock.d.ts +1 -0
- package/lib-es/families/evm/bridge/mock.d.ts.map +1 -1
- package/lib-es/families/evm/bridge/mock.js +12 -0
- package/lib-es/families/evm/bridge/mock.js.map +1 -1
- package/lib-es/families/evm/setup.d.ts +1 -4
- package/lib-es/families/evm/setup.d.ts.map +1 -1
- package/lib-es/families/evm/setup.js +2 -8
- package/lib-es/families/evm/setup.js.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.d.ts +7 -0
- package/lib-es/families/evm/walletApiAdapter.d.ts.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.js +30 -1
- package/lib-es/families/evm/walletApiAdapter.js.map +1 -1
- package/lib-es/families/hedera/react.d.ts +6 -0
- package/lib-es/families/hedera/react.d.ts.map +1 -0
- package/lib-es/families/hedera/react.js +41 -0
- package/lib-es/families/hedera/react.js.map +1 -0
- package/lib-es/families/polkadot/config.js +1 -1
- package/lib-es/families/polkadot/config.js.map +1 -1
- package/lib-es/families/stacks/constants.d.ts +1 -1
- package/lib-es/families/stacks/constants.d.ts.map +1 -1
- package/lib-es/families/stacks/constants.js +1 -1
- package/lib-es/families/stacks/constants.js.map +1 -1
- package/lib-es/featureFlags/FeatureToggle.d.ts +2 -2
- package/lib-es/featureFlags/FeatureToggle.d.ts.map +1 -1
- package/lib-es/featureFlags/FeatureToggle.js.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.d.ts +2 -0
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +22 -1
- package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
- package/lib-es/featureFlags/firebaseFeatureFlags.js +1 -1
- package/lib-es/featureFlags/firebaseFeatureFlags.js.map +1 -1
- package/lib-es/featureFlags/stakePrograms/index.js +4 -4
- package/lib-es/featureFlags/stakePrograms/index.js.map +1 -1
- package/lib-es/featureFlags/useFeature.d.ts +1 -1
- package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
- package/lib-es/featureFlags/useHasOverriddenFeatureFlags.js +1 -1
- package/lib-es/featureFlags/useHasOverriddenFeatureFlags.js.map +1 -1
- package/lib-es/generated/bridge/js.d.ts +0 -1
- package/lib-es/generated/bridge/js.d.ts.map +1 -1
- package/lib-es/generated/bridge/js.js +0 -2
- package/lib-es/generated/bridge/js.js.map +1 -1
- package/lib-es/generated/bridge/mock.d.ts +1 -0
- package/lib-es/generated/bridge/mock.d.ts.map +1 -1
- package/lib-es/helpers/cryptoIconSize.d.ts +3 -0
- package/lib-es/helpers/cryptoIconSize.d.ts.map +1 -0
- package/lib-es/helpers/cryptoIconSize.js +35 -0
- package/lib-es/helpers/cryptoIconSize.js.map +1 -0
- package/lib-es/helpers.d.ts +1 -0
- package/lib-es/helpers.d.ts.map +1 -1
- package/lib-es/helpers.js +1 -0
- package/lib-es/helpers.js.map +1 -1
- package/lib-es/hooks/useHtmlLinkSegments.d.ts +19 -0
- package/lib-es/hooks/useHtmlLinkSegments.d.ts.map +1 -0
- package/lib-es/hooks/useHtmlLinkSegments.js +121 -0
- package/lib-es/hooks/useHtmlLinkSegments.js.map +1 -0
- package/lib-es/hw/getAppAndVersion.d.ts +3 -1
- package/lib-es/hw/getAppAndVersion.d.ts.map +1 -1
- package/lib-es/hw/getAppAndVersion.js +2 -2
- package/lib-es/hw/getAppAndVersion.js.map +1 -1
- package/lib-es/hw/getBitcoinLikeInfo.js +1 -1
- package/lib-es/hw/getBitcoinLikeInfo.js.map +1 -1
- package/lib-es/hw/isFirmwareUpdateVersionSupported.d.ts +2 -2
- package/lib-es/hw/isFirmwareUpdateVersionSupported.d.ts.map +1 -1
- package/lib-es/hw/isFirmwareUpdateVersionSupported.js +17 -7
- package/lib-es/hw/isFirmwareUpdateVersionSupported.js.map +1 -1
- package/lib-es/load/speculos.d.ts.map +1 -1
- package/lib-es/load/speculos.js +1 -0
- package/lib-es/load/speculos.js.map +1 -1
- package/lib-es/market/api/index.d.ts.map +1 -1
- package/lib-es/market/api/index.js +1 -1
- package/lib-es/market/api/index.js.map +1 -1
- package/lib-es/market/utils/types.d.ts +5 -0
- package/lib-es/market/utils/types.d.ts.map +1 -1
- package/lib-es/market/utils/types.js.map +1 -1
- package/lib-es/mock/account.js +1 -1
- package/lib-es/mock/account.js.map +1 -1
- package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +6 -0
- package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
- package/lib-es/notifications/AnnouncementProvider/api/api.js +1 -1
- package/lib-es/notifications/AnnouncementProvider/api/api.js.map +1 -1
- package/lib-es/notifications/ServiceStatusProvider/api/api.js +1 -1
- package/lib-es/notifications/ServiceStatusProvider/api/api.js.map +1 -1
- package/lib-es/operation.d.ts.map +1 -1
- package/lib-es/operation.js +7 -2
- package/lib-es/operation.js.map +1 -1
- package/lib-es/platform/providers/RampCatalogProvider/api/index.js +1 -1
- package/lib-es/platform/providers/RampCatalogProvider/api/index.js.map +1 -1
- package/lib-es/platform/providers/RampCatalogProvider/index.d.ts +1 -1
- package/lib-es/platform/providers/RampCatalogProvider/index.d.ts.map +1 -1
- package/lib-es/platform/providers/RemoteLiveAppProvider/index.d.ts +1 -1
- package/lib-es/platform/providers/RemoteLiveAppProvider/index.d.ts.map +1 -1
- package/lib-es/postOnboarding/reducer.d.ts +2 -0
- package/lib-es/postOnboarding/reducer.d.ts.map +1 -1
- package/lib-es/wallet-api/Exchange/SwapError.d.ts +93 -0
- package/lib-es/wallet-api/Exchange/SwapError.d.ts.map +1 -0
- package/lib-es/wallet-api/Exchange/SwapError.js +128 -0
- package/lib-es/wallet-api/Exchange/SwapError.js.map +1 -0
- package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
- package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
- package/lib-es/wallet-api/Exchange/handleSwapErrors.js +106 -0
- package/lib-es/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
- package/lib-es/wallet-api/Exchange/index.d.ts +4 -0
- package/lib-es/wallet-api/Exchange/index.d.ts.map +1 -0
- package/lib-es/wallet-api/Exchange/index.js +7 -0
- package/lib-es/wallet-api/Exchange/index.js.map +1 -0
- package/lib-es/wallet-api/Exchange/parser.d.ts +46 -0
- package/lib-es/wallet-api/Exchange/parser.d.ts.map +1 -0
- package/lib-es/wallet-api/Exchange/parser.js +90 -0
- package/lib-es/wallet-api/Exchange/parser.js.map +1 -0
- package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
- package/lib-es/wallet-api/Exchange/server.js +224 -174
- package/lib-es/wallet-api/Exchange/server.js.map +1 -1
- package/lib-es/wallet-api/Exchange/tracking.d.ts +7 -6
- package/lib-es/wallet-api/Exchange/tracking.d.ts.map +1 -1
- package/lib-es/wallet-api/Exchange/tracking.js +52 -13
- package/lib-es/wallet-api/Exchange/tracking.js.map +1 -1
- package/lib-es/wallet-api/LocalLiveAppProvider/index.d.ts +1 -1
- package/lib-es/wallet-api/LocalLiveAppProvider/index.d.ts.map +1 -1
- package/lib-es/wallet-api/constants.d.ts +1 -1
- package/lib-es/wallet-api/logic.d.ts +1 -1
- package/lib-es/wallet-api/logic.d.ts.map +1 -1
- package/lib-es/wallet-api/logic.js +5 -5
- package/lib-es/wallet-api/logic.js.map +1 -1
- package/lib-es/wallet-api/react.d.ts.map +1 -1
- package/lib-es/wallet-api/react.js +9 -6
- package/lib-es/wallet-api/react.js.map +1 -1
- package/lib-es/wallet-api/tracking.d.ts +5 -5
- package/lib-es/wallet-api/tracking.d.ts.map +1 -1
- package/lib-es/wallet-api/tracking.js +30 -10
- package/lib-es/wallet-api/tracking.js.map +1 -1
- package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
- package/lib-es/wallet-api/useDappLogic.js +31 -20
- package/lib-es/wallet-api/useDappLogic.js.map +1 -1
- package/lib-es/wallet-api/utils/extractDappURLFromManifest.js +3 -3
- package/lib-es/wallet-api/utils/extractDappURLFromManifest.js.map +1 -1
- package/lib-es/wallet-api/utils/extractURLFromManifest.js +1 -1
- package/lib-es/wallet-api/utils/extractURLFromManifest.js.map +1 -1
- package/lib-es/walletSync/getEnvironmentParams.js +6 -6
- package/lib-es/walletSync/getEnvironmentParams.js.map +1 -1
- package/package.json +82 -90
- package/src/__tests__/test-helpers/bridge.ts +1 -1
- package/src/__tests__/test-helpers/environment.ts +3 -0
- package/src/account/index.ts +6 -0
- package/src/account/recentAddresses.test.ts +104 -0
- package/src/account/recentAddresses.ts +84 -0
- package/src/account/serialization.ts +1 -1
- package/src/account/support.ts +1 -1
- package/src/bridge/generic-alpaca/accountBridge.ts +3 -2
- package/src/bridge/generic-alpaca/broadcast.ts +6 -3
- package/src/bridge/generic-alpaca/currencyBridge.ts +3 -3
- package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +2 -1
- package/src/bridge/generic-alpaca/getAccountShape.ts +36 -13
- package/src/bridge/generic-alpaca/getTransactionStatus.ts +16 -1
- package/src/bridge/generic-alpaca/postSync.test.ts +97 -0
- package/src/bridge/generic-alpaca/postSync.ts +42 -0
- package/src/bridge/generic-alpaca/prepareTransaction.ts +51 -10
- package/src/bridge/generic-alpaca/signOperation.ts +18 -2
- package/src/bridge/generic-alpaca/signer/Eth.ts +5 -1
- package/src/bridge/generic-alpaca/signer/index.ts +7 -0
- package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +43 -10
- package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +74 -0
- package/src/bridge/generic-alpaca/types.ts +4 -0
- package/src/bridge/generic-alpaca/utils.test.ts +4 -0
- package/src/bridge/generic-alpaca/utils.ts +15 -3
- package/src/bridge/impl.ts +16 -3
- package/src/bridge/react/BridgeSync.tsx +1 -1
- package/src/currencies/helpers.test.ts +10 -1
- package/src/currencies/helpers.ts +6 -0
- package/src/deposit/api.ts +2 -2
- package/src/domain/getTokensWithFunds.ts +18 -5
- package/src/domain/getTotalStakeableAssets.test.ts +267 -0
- package/src/domain/getTotalStakeableAssets.ts +47 -0
- package/src/e2e/data/deviceLabelsData.ts +1 -0
- package/src/e2e/data/regexes.ts +1 -0
- package/src/e2e/enum/Device.ts +1 -0
- package/src/e2e/families/cardano.ts +32 -14
- package/src/e2e/index.ts +20 -0
- package/src/e2e/speculos.ts +35 -4
- package/src/e2e/speculosAppVersion.ts +8 -2
- package/src/e2e/swap.ts +8 -7
- package/src/exchange/swap/api/v5/__tests__/fetchCurrencyAll.spec.ts +1 -1
- package/src/exchange/swap/api/v5/__tests__/fetchCurrencyFrom.spec.ts +1 -1
- package/src/exchange/swap/api/v5/__tests__/fetchCurrencyTo.spec.ts +1 -1
- package/src/exchange/swap/api/v5/fetchCurrencyAll.ts +1 -1
- package/src/exchange/swap/api/v5/fetchCurrencyFrom.ts +2 -2
- package/src/exchange/swap/api/v5/fetchCurrencyTo.ts +1 -1
- package/src/exchange/swap/api/v5/fetchRates.ts +1 -1
- package/src/exchange/swap/getIncompatibleCurrencyKeys.ts +4 -0
- package/src/exchange/swap/postSwapState.ts +10 -5
- package/src/exchange/swap/transactionStrategies.ts +30 -7
- package/src/exchange/swap/types.ts +3 -1
- package/src/families/bitcoin/bridge/api.ts +2 -2
- package/src/families/bitcoin/walletApiAdapter.test.ts +36 -0
- package/src/families/bitcoin/walletApiAdapter.ts +4 -0
- package/src/families/canton/config.ts +5 -4
- package/src/families/canton/react.test.ts +147 -0
- package/src/families/canton/react.ts +45 -1
- package/src/families/celo/setup.ts +12 -0
- package/src/families/cosmos/datasets/__snapshots__/cosmos.integration.test.ts.snap +73 -4
- package/src/families/cosmos/datasets/__snapshots__/cryptoOrg.integration.test.ts.snap +2 -2
- package/src/families/cosmos/datasets/__snapshots__/injective.integration.test.ts.snap +2 -2
- package/src/families/cosmos/datasets/__snapshots__/mantra.integration.test.ts.snap +2 -2
- package/src/families/cosmos/datasets/__snapshots__/osmosis.integration.test.ts.snap +2 -2
- package/src/families/cosmos/datasets/__snapshots__/persistence.integration.test.ts.snap +4 -4
- package/src/families/cosmos/datasets/__snapshots__/stargaze.integration.test.ts.snap +2 -2
- package/src/families/evm/bridge/mock.ts +14 -0
- package/src/families/evm/setup.ts +3 -22
- package/src/families/evm/walletApiAdapter.ts +33 -1
- package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +278 -17
- package/src/families/hedera/react.test.ts +272 -0
- package/src/families/hedera/react.ts +63 -0
- package/src/families/polkadot/__snapshots__/bridge.integration.test.ts.snap +6 -3653
- package/src/families/polkadot/config.ts +1 -1
- package/src/families/stacks/__snapshots__/bridge.integration.test.ts.snap +1537 -18
- package/src/families/stacks/__tests__/sync.integration.test.ts +2 -2
- package/src/families/stacks/constants.ts +1 -1
- package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +9 -9
- package/src/featureFlags/FeatureToggle.tsx +1 -1
- package/src/featureFlags/defaultFeatures.ts +22 -1
- package/src/featureFlags/firebaseFeatureFlags.ts +1 -1
- package/src/featureFlags/stakePrograms/index.ts +4 -4
- package/src/featureFlags/useHasOverriddenFeatureFlags.ts +1 -1
- package/src/generated/bridge/js.ts +0 -2
- package/src/helpers/cryptoIconSize.ts +25 -0
- package/src/helpers.ts +2 -0
- package/src/hooks/__tests__/useHtmlLinkSegments.test.ts +105 -0
- package/src/hooks/useHtmlLinkSegments.ts +158 -0
- package/src/hw/getAppAndVersion.ts +2 -1
- package/src/hw/getBitcoinLikeInfo.ts +1 -1
- package/src/hw/isFirmwareUpdateVersionSupported.test.ts +36 -32
- package/src/hw/isFirmwareUpdateVersionSupported.ts +23 -8
- package/src/load/speculos.ts +1 -0
- package/src/market/api/index.ts +8 -7
- package/src/market/utils/types.ts +6 -0
- package/src/mock/account.ts +1 -1
- package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +6 -0
- package/src/notifications/AnnouncementProvider/api/api.ts +2 -2
- package/src/notifications/ServiceStatusProvider/api/api.ts +2 -2
- package/src/operation.ts +10 -2
- package/src/platform/providers/RampCatalogProvider/api/index.ts +3 -3
- package/src/platform/providers/RampCatalogProvider/index.tsx +1 -1
- package/src/platform/providers/RemoteLiveAppProvider/index.tsx +1 -1
- package/src/wallet-api/Exchange/SwapError.test.ts +126 -0
- package/src/wallet-api/Exchange/SwapError.ts +159 -0
- package/src/wallet-api/Exchange/handleSwapErrors.test.ts +46 -0
- package/src/wallet-api/Exchange/handleSwapErrors.ts +161 -0
- package/src/wallet-api/Exchange/index.ts +26 -0
- package/src/wallet-api/Exchange/parser.test.ts +86 -0
- package/src/wallet-api/Exchange/parser.ts +119 -0
- package/src/wallet-api/Exchange/server.ts +289 -232
- package/src/wallet-api/Exchange/tracking.ts +56 -13
- package/src/wallet-api/LocalLiveAppProvider/index.tsx +1 -1
- package/src/wallet-api/logic.ts +5 -4
- package/src/wallet-api/react.ts +10 -5
- package/src/wallet-api/tracking.ts +30 -10
- package/src/wallet-api/useDappLogic.ts +32 -20
- package/src/wallet-api/utils/extractDappURLFromManifest.ts +3 -3
- package/src/wallet-api/utils/extractURLFromManifest.ts +1 -1
- package/src/walletSync/getEnvironmentParams.ts +6 -6
- package/lib/currencies/cryptoIcons.d.ts +0 -3
- package/lib/currencies/cryptoIcons.d.ts.map +0 -1
- package/lib/currencies/cryptoIcons.js +0 -24
- package/lib/currencies/cryptoIcons.js.map +0 -1
- package/lib/react.d.ts +0 -16
- package/lib/react.d.ts.map +0 -1
- package/lib/react.js +0 -64
- package/lib/react.js.map +0 -1
- package/lib/reactNative.d.ts +0 -16
- package/lib/reactNative.d.ts.map +0 -1
- package/lib/reactNative.js +0 -43
- package/lib/reactNative.js.map +0 -1
- package/lib-es/currencies/cryptoIcons.d.ts +0 -3
- package/lib-es/currencies/cryptoIcons.d.ts.map +0 -1
- package/lib-es/currencies/cryptoIcons.js +0 -20
- package/lib-es/currencies/cryptoIcons.js.map +0 -1
- package/lib-es/react.d.ts +0 -16
- package/lib-es/react.d.ts.map +0 -1
- package/lib-es/react.js +0 -33
- package/lib-es/react.js.map +0 -1
- package/lib-es/reactNative.d.ts +0 -16
- package/lib-es/reactNative.d.ts.map +0 -1
- package/lib-es/reactNative.js +0 -15
- package/lib-es/reactNative.js.map +0 -1
- package/react.js +0 -1
- package/reactNative.js +0 -1
- package/src/currencies/cryptoIcons.test.ts +0 -54
- package/src/currencies/cryptoIcons.ts +0 -21
- package/src/react.tsx +0 -43
- package/src/reactNative.ts +0 -23
- package/src/reactNativeSvg.d.ts +0 -19
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import { DeviceModelId } from "@ledgerhq/devices";
|
|
2
2
|
import { DeviceInfo } from "@ledgerhq/types-live";
|
|
3
3
|
import { satisfies, coerce } from "semver";
|
|
4
|
-
import { getEnv } from "@ledgerhq/live-env";
|
|
5
4
|
|
|
6
|
-
const
|
|
5
|
+
const usbUpdateSupportedVersions: { [key in DeviceModelId]?: string } = {
|
|
7
6
|
nanoS: ">=1.6.1",
|
|
8
7
|
nanoX: ">=1.3.0",
|
|
9
8
|
nanoSP: ">=1.0.0",
|
|
10
9
|
stax: ">=1.0.0",
|
|
10
|
+
europa: ">=0.0.0",
|
|
11
|
+
apex: ">=0.0.0",
|
|
11
12
|
};
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const bleUpdateSupportedVersions: { [key in DeviceModelId]?: string } = {
|
|
15
|
+
nanoX: ">=2.4.0",
|
|
16
|
+
stax: ">=0.0.0",
|
|
17
|
+
europa: ">=0.0.0",
|
|
18
|
+
apex: ">=0.0.0",
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export function isUsbUpdateSupported(deviceInfo: DeviceInfo, modelId: DeviceModelId): boolean {
|
|
22
|
+
return (
|
|
23
|
+
Boolean(usbUpdateSupportedVersions[modelId]) &&
|
|
24
|
+
satisfies(coerce(deviceInfo.version), usbUpdateSupportedVersions[modelId])
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function isBleUpdateSupported(deviceInfo: DeviceInfo, modelId: DeviceModelId): boolean {
|
|
29
|
+
return (
|
|
30
|
+
Boolean(bleUpdateSupportedVersions[modelId]) &&
|
|
31
|
+
satisfies(coerce(deviceInfo.version), bleUpdateSupportedVersions[modelId])
|
|
32
|
+
);
|
|
33
|
+
}
|
package/src/load/speculos.ts
CHANGED
package/src/market/api/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import network from "@ledgerhq/live-network
|
|
1
|
+
import network from "@ledgerhq/live-network";
|
|
2
2
|
import { getEnv } from "@ledgerhq/live-env";
|
|
3
3
|
import {
|
|
4
4
|
MarketCurrencyChartDataRequestParams,
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
SupportedCoins,
|
|
9
9
|
MarketCurrencyRequestParams,
|
|
10
10
|
MarketCoinDataChart,
|
|
11
|
+
MarketChartApiResponse,
|
|
11
12
|
Order,
|
|
12
13
|
} from "../utils/types";
|
|
13
14
|
import { rangeDataTable } from "../utils/rangeDataTable";
|
|
@@ -19,7 +20,7 @@ const ROOT_PATH = getEnv("MARKET_API_URL");
|
|
|
19
20
|
|
|
20
21
|
export async function getSupportedCoinsList(): Promise<SupportedCoins> {
|
|
21
22
|
const url = `${ROOT_PATH}/coins/list`;
|
|
22
|
-
const { data } = await network({ method: "GET", url });
|
|
23
|
+
const { data } = await network<SupportedCoins>({ method: "GET", url });
|
|
23
24
|
return data;
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -48,7 +49,7 @@ export async function fetchList({
|
|
|
48
49
|
},
|
|
49
50
|
});
|
|
50
51
|
|
|
51
|
-
const { data } = await network({
|
|
52
|
+
const { data } = await network<MarketItemResponse[]>({
|
|
52
53
|
method: "GET",
|
|
53
54
|
url,
|
|
54
55
|
});
|
|
@@ -60,7 +61,7 @@ export async function fetchList({
|
|
|
60
61
|
export async function supportedCounterCurrencies(): Promise<string[]> {
|
|
61
62
|
const url = `${ROOT_PATH}/simple/supported_vs_currencies`;
|
|
62
63
|
|
|
63
|
-
const { data } = await network({
|
|
64
|
+
const { data } = await network<string[]>({
|
|
64
65
|
method: "GET",
|
|
65
66
|
url,
|
|
66
67
|
});
|
|
@@ -84,7 +85,7 @@ export async function fetchCurrencyChartData({
|
|
|
84
85
|
},
|
|
85
86
|
});
|
|
86
87
|
|
|
87
|
-
const { data } = await network({
|
|
88
|
+
const { data } = await network<MarketChartApiResponse>({
|
|
88
89
|
method: "GET",
|
|
89
90
|
url,
|
|
90
91
|
});
|
|
@@ -106,7 +107,7 @@ export async function fetchCurrency({
|
|
|
106
107
|
},
|
|
107
108
|
});
|
|
108
109
|
|
|
109
|
-
const { data } = await network({ method: "GET", url });
|
|
110
|
+
const { data } = await network<MarketItemResponse[]>({ method: "GET", url });
|
|
110
111
|
|
|
111
112
|
return data[0];
|
|
112
113
|
}
|
|
@@ -132,7 +133,7 @@ export async function fetchMarketPerformers({
|
|
|
132
133
|
},
|
|
133
134
|
});
|
|
134
135
|
|
|
135
|
-
const { data } = await network({ method: "GET", url });
|
|
136
|
+
const { data } = await network<MarketItemResponse[]>({ method: "GET", url });
|
|
136
137
|
|
|
137
138
|
return data;
|
|
138
139
|
}
|
|
@@ -10,6 +10,12 @@ export type MarketCoin = {
|
|
|
10
10
|
export type ChartDataPoint = [number, number];
|
|
11
11
|
export type MarketCoinDataChart = Record<string, Array<ChartDataPoint>>;
|
|
12
12
|
|
|
13
|
+
export type MarketChartApiResponse = {
|
|
14
|
+
prices: ChartDataPoint[];
|
|
15
|
+
market_caps: ChartDataPoint[];
|
|
16
|
+
total_volumes: ChartDataPoint[];
|
|
17
|
+
};
|
|
18
|
+
|
|
13
19
|
export enum Order {
|
|
14
20
|
MarketCapDesc = "desc",
|
|
15
21
|
MarketCapAsc = "asc",
|
package/src/mock/account.ts
CHANGED
|
@@ -199,7 +199,7 @@ export function genAccount(id: number | string, opts: GenAccountOptions = {}): A
|
|
|
199
199
|
if (initAccount) {
|
|
200
200
|
initAccount(account);
|
|
201
201
|
}
|
|
202
|
-
} catch
|
|
202
|
+
} catch {
|
|
203
203
|
// to fix /src/__tests__/cross.ts, skip bridge error if there is no bridge in such currency
|
|
204
204
|
}
|
|
205
205
|
}
|
|
@@ -83,6 +83,8 @@ export function useCurrenciesUnderFeatureFlag() {
|
|
|
83
83
|
const monadTestnet = useFeature("currencyMonadTestnet");
|
|
84
84
|
const somnia = useFeature("currencySomnia");
|
|
85
85
|
const zeroGravity = useFeature("currencyZeroGravity");
|
|
86
|
+
const concordium = useFeature("currencyConcordium");
|
|
87
|
+
const concordiumTestnet = useFeature("currencyConcordiumTestnet");
|
|
86
88
|
|
|
87
89
|
const featureFlaggedCurrencies = useMemo(
|
|
88
90
|
(): Partial<Record<CryptoCurrencyId, Feature<unknown> | null>> => ({
|
|
@@ -162,6 +164,8 @@ export function useCurrenciesUnderFeatureFlag() {
|
|
|
162
164
|
monad_testnet: monadTestnet,
|
|
163
165
|
somnia,
|
|
164
166
|
zero_gravity: zeroGravity,
|
|
167
|
+
concordium,
|
|
168
|
+
concordium_testnet: concordiumTestnet,
|
|
165
169
|
}),
|
|
166
170
|
[
|
|
167
171
|
aptos,
|
|
@@ -240,6 +244,8 @@ export function useCurrenciesUnderFeatureFlag() {
|
|
|
240
244
|
monadTestnet,
|
|
241
245
|
somnia,
|
|
242
246
|
zeroGravity,
|
|
247
|
+
concordium,
|
|
248
|
+
concordiumTestnet,
|
|
243
249
|
],
|
|
244
250
|
);
|
|
245
251
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import network from "@ledgerhq/live-network
|
|
1
|
+
import network from "@ledgerhq/live-network";
|
|
2
2
|
import { getEnv } from "@ledgerhq/live-env";
|
|
3
3
|
import type { AnnouncementsApi, RawAnnouncement } from "../types";
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@ const announcementsVersion = () => getEnv("ANNOUNCEMENTS_API_VERSION");
|
|
|
10
10
|
|
|
11
11
|
async function fetchAnnouncements(): Promise<RawAnnouncement[]> {
|
|
12
12
|
const url = `${baseAnnouncementsUrl()}/v${announcementsVersion()}/data.json?t=${Date.now()}`;
|
|
13
|
-
const { data } = await network({
|
|
13
|
+
const { data } = await network<RawAnnouncement[]>({
|
|
14
14
|
method: "GET",
|
|
15
15
|
headers: {
|
|
16
16
|
Origin: "http://localhost:3000",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import network from "@ledgerhq/live-network
|
|
1
|
+
import network from "@ledgerhq/live-network";
|
|
2
2
|
import { getEnv } from "@ledgerhq/live-env";
|
|
3
3
|
import type { ServiceStatusApi, ServiceStatusSummary } from "../types";
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ const statusVersion = () => getEnv("STATUS_API_VERSION");
|
|
|
8
8
|
|
|
9
9
|
async function fetchStatusSummary(): Promise<ServiceStatusSummary> {
|
|
10
10
|
const url = `${baseStatusUrl()}/v${statusVersion()}/summary.json`;
|
|
11
|
-
const { data } = await network({
|
|
11
|
+
const { data } = await network<ServiceStatusSummary>({
|
|
12
12
|
method: "GET",
|
|
13
13
|
url,
|
|
14
14
|
});
|
package/src/operation.ts
CHANGED
|
@@ -5,8 +5,16 @@ import {
|
|
|
5
5
|
isStuckOperation as isStuckOperationEvm,
|
|
6
6
|
getStuckAccountAndOperation as getStuckAccountAndOperationEvm,
|
|
7
7
|
} from "@ledgerhq/coin-evm/operation";
|
|
8
|
+
import { getCurrencyConfiguration } from "./config";
|
|
9
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
10
|
+
import { EvmConfigInfo } from "@ledgerhq/coin-evm/config";
|
|
8
11
|
export * from "@ledgerhq/coin-framework/operation";
|
|
9
12
|
|
|
13
|
+
function hasGasTracker(currency: CryptoCurrency): boolean {
|
|
14
|
+
const config = getCurrencyConfiguration<EvmConfigInfo>(currency);
|
|
15
|
+
return !!config.gasTracker;
|
|
16
|
+
}
|
|
17
|
+
|
|
10
18
|
/**
|
|
11
19
|
* Return weather an operation is editable or not.
|
|
12
20
|
*/
|
|
@@ -18,7 +26,7 @@ export const isEditableOperation = ({
|
|
|
18
26
|
operation: Operation;
|
|
19
27
|
}): boolean => {
|
|
20
28
|
if (account.currency.family === "evm") {
|
|
21
|
-
return isEditableOperationEvm(account, operation);
|
|
29
|
+
return isEditableOperationEvm(account, operation, hasGasTracker);
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
return false;
|
|
@@ -58,7 +66,7 @@ export const getStuckAccountAndOperation = (
|
|
|
58
66
|
const mainAccount = getMainAccount(account, parentAccount);
|
|
59
67
|
|
|
60
68
|
if (mainAccount.currency.family === "evm") {
|
|
61
|
-
return getStuckAccountAndOperationEvm(account, parentAccount);
|
|
69
|
+
return getStuckAccountAndOperationEvm(account, parentAccount, hasGasTracker);
|
|
62
70
|
}
|
|
63
71
|
|
|
64
72
|
return undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import network from "@ledgerhq/live-network
|
|
1
|
+
import network from "@ledgerhq/live-network";
|
|
2
2
|
import { getEnv } from "@ledgerhq/live-env";
|
|
3
3
|
import type { RampCatalog } from "../types";
|
|
4
4
|
import mockData from "./mock.json";
|
|
@@ -10,14 +10,14 @@ const api = {
|
|
|
10
10
|
return mockData as RampCatalog;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
const { data } = await network({
|
|
13
|
+
const { data } = await network<RampCatalog>({
|
|
14
14
|
method: "GET",
|
|
15
15
|
headers: {
|
|
16
16
|
Origin: "http://localhost:3000",
|
|
17
17
|
},
|
|
18
18
|
url: `${getEnv("BUY_API_BASE")}/provider/currencies?currency=crypto`,
|
|
19
19
|
});
|
|
20
|
-
return data
|
|
20
|
+
return data;
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -42,7 +42,7 @@ export function useRampCatalogContext() {
|
|
|
42
42
|
export function RampCatalogProvider({
|
|
43
43
|
children,
|
|
44
44
|
updateFrequency,
|
|
45
|
-
}: RampCatalogProviderProps): JSX.Element {
|
|
45
|
+
}: RampCatalogProviderProps): React.JSX.Element {
|
|
46
46
|
const [state, setState] = useState<Loadable<RampCatalog>>(initialState);
|
|
47
47
|
|
|
48
48
|
const updateCatalog = useCallback(async () => {
|
|
@@ -93,7 +93,7 @@ export function RemoteLiveAppProvider({
|
|
|
93
93
|
children,
|
|
94
94
|
parameters,
|
|
95
95
|
updateFrequency,
|
|
96
|
-
}: LiveAppProviderProps): JSX.Element {
|
|
96
|
+
}: LiveAppProviderProps): React.JSX.Element {
|
|
97
97
|
const isMounted = useIsMounted();
|
|
98
98
|
const [state, setState] = useState<Loadable<LiveAppRegistry>>(initialState);
|
|
99
99
|
const [provider, setProvider] = useState<string>(initialProvider);
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* eslint-env jest */
|
|
2
|
+
import {
|
|
3
|
+
IgnoredSignatureStepError,
|
|
4
|
+
ListAccountError,
|
|
5
|
+
ListCurrencyError,
|
|
6
|
+
NonceStepError,
|
|
7
|
+
NotEnoughFunds,
|
|
8
|
+
PayloadStepError,
|
|
9
|
+
PayinExtraIdError,
|
|
10
|
+
SignatureStepError,
|
|
11
|
+
SwapError,
|
|
12
|
+
UnknownAccountError,
|
|
13
|
+
} from "./SwapError";
|
|
14
|
+
|
|
15
|
+
describe("SwapError", () => {
|
|
16
|
+
it("captures nested error metadata", () => {
|
|
17
|
+
const nested = new Error("payload failed");
|
|
18
|
+
Object.assign(nested, { code: "E500" });
|
|
19
|
+
|
|
20
|
+
const error = new SwapError("swap999", nested);
|
|
21
|
+
|
|
22
|
+
expect(error).toBeInstanceOf(SwapError);
|
|
23
|
+
expect(error.cause.swapCode).toBe("swap999");
|
|
24
|
+
expect(error.cause.message).toBe(String(nested));
|
|
25
|
+
expect(error.cause.code).toBe("E500");
|
|
26
|
+
expect(error.message).toBe("payload failed");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("defaults to swap000 when no code provided", () => {
|
|
30
|
+
const error = new SwapError();
|
|
31
|
+
|
|
32
|
+
expect(error.cause.swapCode).toBe("swap000");
|
|
33
|
+
expect(error.message).toBe("undefined");
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
type DerivedErrorCase = {
|
|
38
|
+
label: string;
|
|
39
|
+
create: (nested?: Error) => SwapError;
|
|
40
|
+
swapCode: string;
|
|
41
|
+
name: string;
|
|
42
|
+
propagatesMessage?: boolean;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const DERIVED_ERROR_CASES: DerivedErrorCase[] = [
|
|
46
|
+
{
|
|
47
|
+
label: "NonceStepError",
|
|
48
|
+
create: nested => new NonceStepError(nested),
|
|
49
|
+
swapCode: "swap001",
|
|
50
|
+
name: "NonceStepError",
|
|
51
|
+
propagatesMessage: true,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
label: "PayloadStepError",
|
|
55
|
+
create: nested => new PayloadStepError(nested),
|
|
56
|
+
swapCode: "swap002",
|
|
57
|
+
name: "PayloadStepError",
|
|
58
|
+
propagatesMessage: true,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: "SignatureStepError",
|
|
62
|
+
create: nested => new SignatureStepError(nested),
|
|
63
|
+
swapCode: "swap003",
|
|
64
|
+
name: "SignatureStepError",
|
|
65
|
+
propagatesMessage: true,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
label: "IgnoredSignatureStepError",
|
|
69
|
+
create: nested => new IgnoredSignatureStepError(nested),
|
|
70
|
+
swapCode: "swap003Ignored",
|
|
71
|
+
name: "SignatureStepError",
|
|
72
|
+
propagatesMessage: true,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: "NotEnoughFunds",
|
|
76
|
+
create: () => new NotEnoughFunds(),
|
|
77
|
+
swapCode: "swap004",
|
|
78
|
+
name: "NotEnoughFunds",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
label: "ListAccountError",
|
|
82
|
+
create: nested => new ListAccountError(nested),
|
|
83
|
+
swapCode: "swap005",
|
|
84
|
+
name: "ListAccountError",
|
|
85
|
+
propagatesMessage: true,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
label: "ListCurrencyError",
|
|
89
|
+
create: nested => new ListCurrencyError(nested),
|
|
90
|
+
swapCode: "swap006",
|
|
91
|
+
name: "ListCurrencyError",
|
|
92
|
+
propagatesMessage: true,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
label: "UnknownAccountError",
|
|
96
|
+
create: nested => new UnknownAccountError(nested),
|
|
97
|
+
swapCode: "swap007",
|
|
98
|
+
name: "UnknownAccountError",
|
|
99
|
+
propagatesMessage: true,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
label: "PayinExtraIdError",
|
|
103
|
+
create: nested => new PayinExtraIdError(nested),
|
|
104
|
+
swapCode: "swap010",
|
|
105
|
+
name: "PayinExtraIdError",
|
|
106
|
+
propagatesMessage: true,
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
|
|
110
|
+
describe.each(DERIVED_ERROR_CASES)(
|
|
111
|
+
"Derived $label",
|
|
112
|
+
({ create, swapCode, name, propagatesMessage }) => {
|
|
113
|
+
it("inherits SwapError defaults", () => {
|
|
114
|
+
const nested = new Error("step failure");
|
|
115
|
+
const error = create(propagatesMessage ? nested : undefined);
|
|
116
|
+
|
|
117
|
+
expect(error).toBeInstanceOf(SwapError);
|
|
118
|
+
expect(error.name).toBe(name);
|
|
119
|
+
expect(error.cause.swapCode).toBe(swapCode);
|
|
120
|
+
|
|
121
|
+
if (propagatesMessage) {
|
|
122
|
+
expect(error.message).toBe("step failure");
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
);
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified Swap Error System
|
|
3
|
+
* Base error class and specific error types for swap transaction flows
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Base error class for all swap-related errors
|
|
8
|
+
* Contains error code and nested error information
|
|
9
|
+
*/
|
|
10
|
+
export class SwapError extends Error {
|
|
11
|
+
cause: {
|
|
12
|
+
swapCode: string;
|
|
13
|
+
[key: string]: string | Error | unknown | undefined;
|
|
14
|
+
};
|
|
15
|
+
message: string;
|
|
16
|
+
|
|
17
|
+
constructor(code = "swap000", nestedError?: Error) {
|
|
18
|
+
super();
|
|
19
|
+
this.name = "SwapError";
|
|
20
|
+
|
|
21
|
+
// Preserve nested error information
|
|
22
|
+
this.cause = {
|
|
23
|
+
swapCode: code,
|
|
24
|
+
...(nestedError?.constructor !== Object && nestedError?.constructor !== Array
|
|
25
|
+
? { message: `${nestedError}` }
|
|
26
|
+
: {}),
|
|
27
|
+
...nestedError,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
this.message = nestedError?.message ? nestedError.message : `${nestedError}`;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Error during nonce/deviceTransactionId generation step
|
|
36
|
+
* Typically occurs when calling startSwap()
|
|
37
|
+
*/
|
|
38
|
+
export class NonceStepError extends SwapError {
|
|
39
|
+
constructor(nestedError?: Error) {
|
|
40
|
+
super("swap001", nestedError);
|
|
41
|
+
this.name = "NonceStepError";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Error during payload retrieval step
|
|
47
|
+
* Occurs when communicating with backend to get transaction payload
|
|
48
|
+
*/
|
|
49
|
+
export class PayloadStepError extends SwapError {
|
|
50
|
+
constructor(nestedError?: Error) {
|
|
51
|
+
super("swap002", nestedError);
|
|
52
|
+
this.name = "PayloadStepError";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Error during transaction signature step
|
|
58
|
+
* Occurs when user rejects or device fails during completeSwap()
|
|
59
|
+
*/
|
|
60
|
+
export class SignatureStepError extends SwapError {
|
|
61
|
+
constructor(nestedError?: Error) {
|
|
62
|
+
super("swap003", nestedError);
|
|
63
|
+
this.name = "SignatureStepError";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Special case: signature error that should be ignored/handled silently
|
|
69
|
+
* Used for expected user cancellations
|
|
70
|
+
*/
|
|
71
|
+
export class IgnoredSignatureStepError extends SwapError {
|
|
72
|
+
constructor(nestedError?: Error) {
|
|
73
|
+
super("swap003Ignored", nestedError);
|
|
74
|
+
this.name = "SignatureStepError";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Error when user doesn't have sufficient funds
|
|
80
|
+
* Thrown during balance validation
|
|
81
|
+
*/
|
|
82
|
+
export class NotEnoughFunds extends SwapError {
|
|
83
|
+
constructor() {
|
|
84
|
+
super("swap004");
|
|
85
|
+
this.name = "NotEnoughFunds";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Error when unable to retrieve account list
|
|
91
|
+
* Occurs during account lookup phase
|
|
92
|
+
*/
|
|
93
|
+
export class ListAccountError extends SwapError {
|
|
94
|
+
constructor(nestedError?: Error) {
|
|
95
|
+
super("swap005", nestedError);
|
|
96
|
+
this.name = "ListAccountError";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Error when unable to retrieve currency information
|
|
102
|
+
* Occurs during currency lookup phase
|
|
103
|
+
*/
|
|
104
|
+
export class ListCurrencyError extends SwapError {
|
|
105
|
+
constructor(nestedError?: Error) {
|
|
106
|
+
super("swap006", nestedError);
|
|
107
|
+
this.name = "ListCurrencyError";
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Error when specified account ID cannot be found
|
|
113
|
+
* Thrown when fromAccountId or toAccountId is invalid
|
|
114
|
+
*/
|
|
115
|
+
export class UnknownAccountError extends SwapError {
|
|
116
|
+
constructor(nestedError?: Error) {
|
|
117
|
+
super("swap007", nestedError);
|
|
118
|
+
this.name = "UnknownAccountError";
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Error when extra identifier is required but missing
|
|
124
|
+
* Some chains require payinExtraId (e.g., XLM memo, XRP tag)
|
|
125
|
+
*/
|
|
126
|
+
export class PayinExtraIdError extends SwapError {
|
|
127
|
+
constructor(nestedError?: Error) {
|
|
128
|
+
super("swap010", nestedError);
|
|
129
|
+
this.name = "PayinExtraIdError";
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* CompleteSwap/CompleteExchange step information
|
|
135
|
+
* Tracks which hardware wallet step failed
|
|
136
|
+
*/
|
|
137
|
+
export type CompleteExchangeStep =
|
|
138
|
+
| "INIT"
|
|
139
|
+
| "SET_PARTNER_KEY"
|
|
140
|
+
| "CHECK_PARTNER"
|
|
141
|
+
| "PROCESS_TRANSACTION"
|
|
142
|
+
| "CHECK_TRANSACTION_SIGNATURE"
|
|
143
|
+
| "CHECK_PAYOUT_ADDRESS"
|
|
144
|
+
| "CHECK_REFUND_ADDRESS"
|
|
145
|
+
| "SIGN_COIN_TRANSACTION";
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Error that occurs during completeSwap with step tracking
|
|
149
|
+
* Useful for debugging hardware wallet interactions
|
|
150
|
+
*/
|
|
151
|
+
export class CompleteExchangeError extends Error {
|
|
152
|
+
step: CompleteExchangeStep;
|
|
153
|
+
|
|
154
|
+
constructor(step: CompleteExchangeStep, message?: string) {
|
|
155
|
+
super(message);
|
|
156
|
+
this.name = "CompleteExchangeError";
|
|
157
|
+
this.step = step;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* eslint-env jest */
|
|
2
|
+
import { handleErrors, isHandledError } from "./handleSwapErrors";
|
|
3
|
+
import { IgnoredSignatureStepError, SignatureStepError } from "./SwapError";
|
|
4
|
+
|
|
5
|
+
describe("handleErrors", () => {
|
|
6
|
+
it("marks default ignored message errors as handled and rethrows", async () => {
|
|
7
|
+
const error = new Error("User refused");
|
|
8
|
+
|
|
9
|
+
expect(() => handleErrors(error)).toThrow(error);
|
|
10
|
+
expect(isHandledError(error)).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it("marks default ignored error names as handled and rethrows", async () => {
|
|
14
|
+
const nestedError = new Error("Device mismatch");
|
|
15
|
+
nestedError.name = "WrongDeviceForAccount";
|
|
16
|
+
const error = new SignatureStepError(nestedError);
|
|
17
|
+
|
|
18
|
+
expect(() => handleErrors(error)).toThrow(error);
|
|
19
|
+
expect(isHandledError(error)).toBe(true);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it("invokes onDisplayError for swap errors that should be surfaced", async () => {
|
|
23
|
+
const error = new SignatureStepError(new Error("Unexpected failure"));
|
|
24
|
+
const onDisplayError = jest.fn().mockResolvedValue(undefined);
|
|
25
|
+
|
|
26
|
+
await expect(handleErrors(error, { onDisplayError })).resolves.toBeUndefined();
|
|
27
|
+
expect(onDisplayError).toHaveBeenCalledWith(error);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("skips onDisplayError for swap003Ignored errors and marks them handled", async () => {
|
|
31
|
+
const error = new IgnoredSignatureStepError(new Error("User rejected"));
|
|
32
|
+
const onDisplayError = jest.fn();
|
|
33
|
+
|
|
34
|
+
expect(() => handleErrors(error, { onDisplayError })).toThrow(error);
|
|
35
|
+
expect(onDisplayError).not.toHaveBeenCalled();
|
|
36
|
+
expect(isHandledError(error)).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("respects custom ignored error names", async () => {
|
|
40
|
+
const error = new Error("Rate limited");
|
|
41
|
+
Object.assign(error, { cause: { name: "RateLimitedError" } });
|
|
42
|
+
|
|
43
|
+
expect(() => handleErrors(error, { ignoredErrorNames: ["RateLimitedError"] })).toThrow(error);
|
|
44
|
+
expect(isHandledError(error)).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
});
|