@ledgerhq/live-common 34.54.0-nightly.20251209144712 → 34.54.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/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 +0 -3
- package/lib/__tests__/test-helpers/environment.js.map +1 -1
- package/lib/account/index.d.ts +0 -1
- package/lib/account/index.d.ts.map +1 -1
- package/lib/account/index.js +1 -4
- package/lib/account/index.js.map +1 -1
- 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 +1 -2
- 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 +1 -2
- 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 +7 -17
- 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 +1 -16
- package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.js +4 -45
- 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 +2 -18
- package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib/bridge/generic-alpaca/signer/Eth.d.ts +0 -2
- package/lib/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signer/Eth.js +1 -8
- 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 +0 -7
- package/lib/bridge/generic-alpaca/signer/index.js.map +1 -1
- package/lib/bridge/generic-alpaca/types.d.ts +0 -4
- 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 +3 -12
- package/lib/bridge/generic-alpaca/utils.js.map +1 -1
- package/lib/bridge/impl.d.ts.map +1 -1
- package/lib/bridge/impl.js +3 -14
- package/lib/bridge/impl.js.map +1 -1
- package/lib/currencies/cryptoIcons.d.ts +3 -0
- package/lib/currencies/cryptoIcons.d.ts.map +1 -0
- package/lib/currencies/cryptoIcons.js +24 -0
- package/lib/currencies/cryptoIcons.js.map +1 -0
- package/lib/currencies/helpers.d.ts +0 -1
- package/lib/currencies/helpers.d.ts.map +1 -1
- package/lib/currencies/helpers.js +1 -7
- package/lib/currencies/helpers.js.map +1 -1
- package/lib/domain/getTokensWithFunds.d.ts +1 -7
- package/lib/domain/getTokensWithFunds.d.ts.map +1 -1
- package/lib/domain/getTokensWithFunds.js +4 -15
- package/lib/domain/getTokensWithFunds.js.map +1 -1
- package/lib/e2e/data/deviceLabelsData.d.ts.map +1 -1
- package/lib/e2e/data/deviceLabelsData.js +0 -1
- package/lib/e2e/data/deviceLabelsData.js.map +1 -1
- package/lib/e2e/enum/Device.d.ts +0 -1
- package/lib/e2e/enum/Device.d.ts.map +1 -1
- package/lib/e2e/enum/Device.js +0 -1
- 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 +14 -29
- package/lib/e2e/families/cardano.js.map +1 -1
- package/lib/e2e/index.d.ts +3 -32
- package/lib/e2e/index.d.ts.map +1 -1
- package/lib/e2e/index.js +1 -21
- package/lib/e2e/index.js.map +1 -1
- package/lib/e2e/speculos.d.ts.map +1 -1
- package/lib/e2e/speculos.js +4 -31
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/e2e/speculosAppVersion.d.ts.map +1 -1
- package/lib/e2e/speculosAppVersion.js +2 -6
- package/lib/e2e/speculosAppVersion.js.map +1 -1
- package/lib/e2e/speculosCI.d.ts.map +1 -1
- package/lib/e2e/speculosCI.js +1 -6
- package/lib/e2e/speculosCI.js.map +1 -1
- package/lib/e2e/swap.d.ts.map +1 -1
- package/lib/e2e/swap.js +6 -7
- 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/fetchCurrencyFrom.js +1 -1
- package/lib/exchange/swap/api/v5/fetchCurrencyFrom.js.map +1 -1
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.d.ts.map +1 -1
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.js +0 -4
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
- package/lib/families/bitcoin/walletApiAdapter.d.ts.map +1 -1
- package/lib/families/bitcoin/walletApiAdapter.js +0 -3
- 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 +0 -2
- package/lib/families/canton/react.d.ts.map +1 -1
- package/lib/families/canton/react.js +1 -40
- 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 +0 -11
- package/lib/families/celo/setup.js.map +1 -1
- package/lib/families/evm/bridge/mock.d.ts +0 -1
- package/lib/families/evm/bridge/mock.d.ts.map +1 -1
- package/lib/families/evm/bridge/mock.js +0 -12
- package/lib/families/evm/bridge/mock.js.map +1 -1
- package/lib/families/evm/setup.d.ts +4 -1
- package/lib/families/evm/setup.d.ts.map +1 -1
- package/lib/families/evm/setup.js +8 -1
- package/lib/families/evm/setup.js.map +1 -1
- package/lib/families/evm/walletApiAdapter.d.ts +0 -7
- package/lib/families/evm/walletApiAdapter.d.ts.map +1 -1
- package/lib/families/evm/walletApiAdapter.js +2 -36
- package/lib/families/evm/walletApiAdapter.js.map +1 -1
- 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/defaultFeatures.d.ts +0 -2
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +1 -21
- 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 +1 -0
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +32 -30
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/generated/bridge/mock.d.ts +0 -1
- package/lib/generated/bridge/mock.d.ts.map +1 -1
- package/lib/helpers.d.ts +0 -1
- package/lib/helpers.d.ts.map +1 -1
- package/lib/helpers.js +0 -15
- package/lib/helpers.js.map +1 -1
- package/lib/hw/connectAppEventMapper.d.ts.map +1 -1
- package/lib/hw/connectAppEventMapper.js +21 -2
- package/lib/hw/connectAppEventMapper.js.map +1 -1
- package/lib/hw/getBitcoinLikeInfo.js +1 -1
- package/lib/hw/getBitcoinLikeInfo.js.map +1 -1
- package/lib/load/speculos.d.ts.map +1 -1
- package/lib/load/speculos.js +0 -1
- package/lib/load/speculos.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 +0 -6
- package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
- package/lib/operation.d.ts.map +1 -1
- package/lib/operation.js +2 -7
- package/lib/operation.js.map +1 -1
- package/lib/postOnboarding/reducer.d.ts +0 -2
- package/lib/postOnboarding/reducer.d.ts.map +1 -1
- package/lib/react.d.ts +16 -0
- package/lib/react.d.ts.map +1 -0
- package/lib/react.js +64 -0
- package/lib/react.js.map +1 -0
- package/lib/reactNative.d.ts +16 -0
- package/lib/reactNative.d.ts.map +1 -0
- package/lib/reactNative.js +43 -0
- package/lib/reactNative.js.map +1 -0
- package/lib/wallet-api/constants.d.ts +1 -1
- package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
- package/lib/wallet-api/useDappLogic.js +20 -31
- 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 +0 -3
- package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
- package/lib-es/account/index.d.ts +0 -1
- package/lib-es/account/index.d.ts.map +1 -1
- package/lib-es/account/index.js +0 -1
- package/lib-es/account/index.js.map +1 -1
- 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 +1 -2
- 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 +1 -2
- 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 +7 -17
- 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 +1 -16
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js +4 -45
- 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 +2 -18
- package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts +0 -2
- package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/Eth.js +0 -4
- 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 +0 -7
- package/lib-es/bridge/generic-alpaca/signer/index.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/types.d.ts +0 -4
- 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 +3 -12
- 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 +3 -14
- package/lib-es/bridge/impl.js.map +1 -1
- package/lib-es/currencies/cryptoIcons.d.ts +3 -0
- package/lib-es/currencies/cryptoIcons.d.ts.map +1 -0
- package/lib-es/currencies/cryptoIcons.js +20 -0
- package/lib-es/currencies/cryptoIcons.js.map +1 -0
- package/lib-es/currencies/helpers.d.ts +0 -1
- package/lib-es/currencies/helpers.d.ts.map +1 -1
- package/lib-es/currencies/helpers.js +0 -5
- package/lib-es/currencies/helpers.js.map +1 -1
- package/lib-es/domain/getTokensWithFunds.d.ts +1 -7
- package/lib-es/domain/getTokensWithFunds.d.ts.map +1 -1
- package/lib-es/domain/getTokensWithFunds.js +3 -13
- package/lib-es/domain/getTokensWithFunds.js.map +1 -1
- package/lib-es/e2e/data/deviceLabelsData.d.ts.map +1 -1
- package/lib-es/e2e/data/deviceLabelsData.js +0 -1
- package/lib-es/e2e/data/deviceLabelsData.js.map +1 -1
- package/lib-es/e2e/enum/Device.d.ts +0 -1
- package/lib-es/e2e/enum/Device.d.ts.map +1 -1
- package/lib-es/e2e/enum/Device.js +0 -1
- 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 +14 -29
- package/lib-es/e2e/families/cardano.js.map +1 -1
- package/lib-es/e2e/index.d.ts +3 -32
- package/lib-es/e2e/index.d.ts.map +1 -1
- package/lib-es/e2e/index.js +0 -16
- 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 +4 -31
- 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 +2 -6
- package/lib-es/e2e/speculosAppVersion.js.map +1 -1
- package/lib-es/e2e/speculosCI.d.ts.map +1 -1
- package/lib-es/e2e/speculosCI.js +1 -6
- package/lib-es/e2e/speculosCI.js.map +1 -1
- package/lib-es/e2e/swap.d.ts.map +1 -1
- package/lib-es/e2e/swap.js +6 -7
- 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/fetchCurrencyFrom.js +1 -1
- package/lib-es/exchange/swap/api/v5/fetchCurrencyFrom.js.map +1 -1
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.d.ts.map +1 -1
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js +0 -4
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
- package/lib-es/families/bitcoin/walletApiAdapter.d.ts.map +1 -1
- package/lib-es/families/bitcoin/walletApiAdapter.js +0 -3
- 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 +0 -2
- package/lib-es/families/canton/react.d.ts.map +1 -1
- package/lib-es/families/canton/react.js +1 -38
- 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 +0 -11
- package/lib-es/families/celo/setup.js.map +1 -1
- package/lib-es/families/evm/bridge/mock.d.ts +0 -1
- package/lib-es/families/evm/bridge/mock.d.ts.map +1 -1
- package/lib-es/families/evm/bridge/mock.js +0 -12
- package/lib-es/families/evm/bridge/mock.js.map +1 -1
- package/lib-es/families/evm/setup.d.ts +4 -1
- package/lib-es/families/evm/setup.d.ts.map +1 -1
- package/lib-es/families/evm/setup.js +8 -2
- package/lib-es/families/evm/setup.js.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.d.ts +0 -7
- package/lib-es/families/evm/walletApiAdapter.d.ts.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.js +1 -30
- package/lib-es/families/evm/walletApiAdapter.js.map +1 -1
- 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/defaultFeatures.d.ts +0 -2
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +1 -21
- 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 +1 -0
- package/lib-es/generated/bridge/js.d.ts.map +1 -1
- package/lib-es/generated/bridge/js.js +2 -0
- package/lib-es/generated/bridge/js.js.map +1 -1
- package/lib-es/generated/bridge/mock.d.ts +0 -1
- package/lib-es/generated/bridge/mock.d.ts.map +1 -1
- package/lib-es/helpers.d.ts +0 -1
- package/lib-es/helpers.d.ts.map +1 -1
- package/lib-es/helpers.js +0 -1
- package/lib-es/helpers.js.map +1 -1
- package/lib-es/hw/connectAppEventMapper.d.ts.map +1 -1
- package/lib-es/hw/connectAppEventMapper.js +23 -4
- package/lib-es/hw/connectAppEventMapper.js.map +1 -1
- package/lib-es/hw/getBitcoinLikeInfo.js +1 -1
- package/lib-es/hw/getBitcoinLikeInfo.js.map +1 -1
- package/lib-es/load/speculos.d.ts.map +1 -1
- package/lib-es/load/speculos.js +0 -1
- package/lib-es/load/speculos.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 +0 -6
- package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
- package/lib-es/operation.d.ts.map +1 -1
- package/lib-es/operation.js +2 -7
- package/lib-es/operation.js.map +1 -1
- package/lib-es/postOnboarding/reducer.d.ts +0 -2
- package/lib-es/postOnboarding/reducer.d.ts.map +1 -1
- package/lib-es/react.d.ts +16 -0
- package/lib-es/react.d.ts.map +1 -0
- package/lib-es/react.js +33 -0
- package/lib-es/react.js.map +1 -0
- package/lib-es/reactNative.d.ts +16 -0
- package/lib-es/reactNative.d.ts.map +1 -0
- package/lib-es/reactNative.js +15 -0
- package/lib-es/reactNative.js.map +1 -0
- package/lib-es/wallet-api/constants.d.ts +1 -1
- package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
- package/lib-es/wallet-api/useDappLogic.js +20 -31
- 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 +90 -82
- package/react.js +1 -0
- package/reactNative.js +1 -0
- package/src/__tests__/test-helpers/bridge.ts +1 -1
- package/src/__tests__/test-helpers/environment.ts +0 -3
- package/src/account/index.ts +0 -6
- package/src/account/serialization.ts +1 -1
- package/src/account/support.ts +1 -1
- package/src/bridge/generic-alpaca/accountBridge.ts +2 -3
- package/src/bridge/generic-alpaca/broadcast.ts +3 -6
- package/src/bridge/generic-alpaca/currencyBridge.ts +3 -3
- package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +1 -2
- package/src/bridge/generic-alpaca/getAccountShape.ts +12 -26
- package/src/bridge/generic-alpaca/getTransactionStatus.ts +1 -16
- package/src/bridge/generic-alpaca/prepareTransaction.ts +10 -51
- package/src/bridge/generic-alpaca/signOperation.ts +2 -18
- package/src/bridge/generic-alpaca/signer/Eth.ts +1 -5
- package/src/bridge/generic-alpaca/signer/index.ts +0 -7
- package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +2 -2
- package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +0 -74
- package/src/bridge/generic-alpaca/types.ts +0 -4
- package/src/bridge/generic-alpaca/utils.test.ts +0 -4
- package/src/bridge/generic-alpaca/utils.ts +3 -15
- package/src/bridge/impl.ts +3 -16
- package/src/currencies/cryptoIcons.test.ts +54 -0
- package/src/currencies/cryptoIcons.ts +21 -0
- package/src/currencies/helpers.test.ts +1 -10
- package/src/currencies/helpers.ts +0 -6
- package/src/domain/getTokensWithFunds.ts +5 -18
- package/src/e2e/data/deviceLabelsData.ts +0 -1
- package/src/e2e/enum/Device.ts +0 -1
- package/src/e2e/families/cardano.ts +14 -32
- package/src/e2e/index.ts +0 -20
- package/src/e2e/speculos.ts +4 -35
- package/src/e2e/speculosAppVersion.ts +2 -8
- package/src/e2e/speculosCI.ts +1 -6
- package/src/e2e/swap.ts +7 -8
- package/src/exchange/swap/api/v5/fetchCurrencyFrom.ts +1 -1
- package/src/exchange/swap/getIncompatibleCurrencyKeys.ts +0 -4
- package/src/families/bitcoin/walletApiAdapter.test.ts +0 -36
- package/src/families/bitcoin/walletApiAdapter.ts +0 -4
- package/src/families/canton/config.ts +4 -5
- package/src/families/canton/react.ts +1 -45
- package/src/families/celo/setup.ts +0 -12
- package/src/families/cosmos/datasets/__snapshots__/cosmos.integration.test.ts.snap +4 -73
- 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 +0 -14
- package/src/families/evm/setup.ts +22 -3
- package/src/families/evm/walletApiAdapter.ts +1 -33
- package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +17 -278
- package/src/families/polkadot/__snapshots__/bridge.integration.test.ts.snap +3653 -6
- package/src/families/polkadot/config.ts +1 -1
- package/src/families/stacks/__snapshots__/bridge.integration.test.ts.snap +17 -1536
- 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/defaultFeatures.ts +1 -21
- 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 +2 -0
- package/src/helpers.ts +0 -2
- package/src/hw/connectAppEventMapper.ts +28 -4
- package/src/hw/getBitcoinLikeInfo.ts +1 -1
- package/src/load/speculos.ts +0 -1
- package/src/mock/account.ts +1 -1
- package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +0 -6
- package/src/operation.ts +2 -10
- package/src/react.tsx +43 -0
- package/src/reactNative.ts +23 -0
- package/src/reactNativeSvg.d.ts +19 -0
- package/src/wallet-api/useDappLogic.ts +20 -32
- 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/account/recentAddresses.d.ts +0 -10
- package/lib/account/recentAddresses.d.ts.map +0 -1
- package/lib/account/recentAddresses.js +0 -60
- package/lib/account/recentAddresses.js.map +0 -1
- package/lib/bridge/generic-alpaca/postSync.d.ts +0 -16
- package/lib/bridge/generic-alpaca/postSync.d.ts.map +0 -1
- package/lib/bridge/generic-alpaca/postSync.js +0 -44
- package/lib/bridge/generic-alpaca/postSync.js.map +0 -1
- package/lib/domain/getTotalStakeableAssets.d.ts +0 -10
- package/lib/domain/getTotalStakeableAssets.d.ts.map +0 -1
- package/lib/domain/getTotalStakeableAssets.js +0 -35
- package/lib/domain/getTotalStakeableAssets.js.map +0 -1
- package/lib/e2e/data/regexes.d.ts +0 -2
- package/lib/e2e/data/regexes.d.ts.map +0 -1
- package/lib/e2e/data/regexes.js +0 -5
- package/lib/e2e/data/regexes.js.map +0 -1
- package/lib/families/hedera/react.d.ts +0 -6
- package/lib/families/hedera/react.d.ts.map +0 -1
- package/lib/families/hedera/react.js +0 -50
- package/lib/families/hedera/react.js.map +0 -1
- package/lib/helpers/cryptoIconSize.d.ts +0 -3
- package/lib/helpers/cryptoIconSize.d.ts.map +0 -1
- package/lib/helpers/cryptoIconSize.js +0 -40
- package/lib/helpers/cryptoIconSize.js.map +0 -1
- package/lib/hooks/useHtmlLinkSegments.d.ts +0 -19
- package/lib/hooks/useHtmlLinkSegments.d.ts.map +0 -1
- package/lib/hooks/useHtmlLinkSegments.js +0 -128
- package/lib/hooks/useHtmlLinkSegments.js.map +0 -1
- package/lib-es/account/recentAddresses.d.ts +0 -10
- package/lib-es/account/recentAddresses.d.ts.map +0 -1
- package/lib-es/account/recentAddresses.js +0 -55
- package/lib-es/account/recentAddresses.js.map +0 -1
- package/lib-es/bridge/generic-alpaca/postSync.d.ts +0 -16
- package/lib-es/bridge/generic-alpaca/postSync.d.ts.map +0 -1
- package/lib-es/bridge/generic-alpaca/postSync.js +0 -37
- package/lib-es/bridge/generic-alpaca/postSync.js.map +0 -1
- package/lib-es/domain/getTotalStakeableAssets.d.ts +0 -10
- package/lib-es/domain/getTotalStakeableAssets.d.ts.map +0 -1
- package/lib-es/domain/getTotalStakeableAssets.js +0 -31
- package/lib-es/domain/getTotalStakeableAssets.js.map +0 -1
- package/lib-es/e2e/data/regexes.d.ts +0 -2
- package/lib-es/e2e/data/regexes.d.ts.map +0 -1
- package/lib-es/e2e/data/regexes.js +0 -2
- package/lib-es/e2e/data/regexes.js.map +0 -1
- package/lib-es/families/hedera/react.d.ts +0 -6
- package/lib-es/families/hedera/react.d.ts.map +0 -1
- package/lib-es/families/hedera/react.js +0 -41
- package/lib-es/families/hedera/react.js.map +0 -1
- package/lib-es/helpers/cryptoIconSize.d.ts +0 -3
- package/lib-es/helpers/cryptoIconSize.d.ts.map +0 -1
- package/lib-es/helpers/cryptoIconSize.js +0 -35
- package/lib-es/helpers/cryptoIconSize.js.map +0 -1
- package/lib-es/hooks/useHtmlLinkSegments.d.ts +0 -19
- package/lib-es/hooks/useHtmlLinkSegments.d.ts.map +0 -1
- package/lib-es/hooks/useHtmlLinkSegments.js +0 -121
- package/lib-es/hooks/useHtmlLinkSegments.js.map +0 -1
- package/src/account/recentAddresses.test.ts +0 -104
- package/src/account/recentAddresses.ts +0 -84
- package/src/bridge/generic-alpaca/postSync.test.ts +0 -97
- package/src/bridge/generic-alpaca/postSync.ts +0 -42
- package/src/domain/getTotalStakeableAssets.test.ts +0 -267
- package/src/domain/getTotalStakeableAssets.ts +0 -47
- package/src/e2e/data/regexes.ts +0 -1
- package/src/families/canton/react.test.ts +0 -147
- package/src/families/hedera/react.test.ts +0 -272
- package/src/families/hedera/react.ts +0 -63
- package/src/helpers/cryptoIconSize.ts +0 -25
- package/src/hooks/__tests__/useHtmlLinkSegments.test.ts +0 -105
- package/src/hooks/useHtmlLinkSegments.ts +0 -158
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import BigNumber from "bignumber.js";
|
|
2
|
-
/**
|
|
3
|
-
* After each sync or scan, remove operations from the pending pools if necessary
|
|
4
|
-
* Operations stay pending if and only if
|
|
5
|
-
* - they are confirmed, i.e. their hash appear in the operation list
|
|
6
|
-
* - they are not outdated, i.e. their sequence number is at least greater than the
|
|
7
|
-
* sequence number of the latest transaction
|
|
8
|
-
* NOTE Compared to the default behaviour
|
|
9
|
-
* - pending operations of token accounts are cleaned up, so we don't see both pending and completed
|
|
10
|
-
* sub operations in the operation details drawer
|
|
11
|
-
* - pending operations are cleaned if their hash already belong to the completed operations, preventing
|
|
12
|
-
* undesired replacement (ex: optimistic operation for self token sending on EVM is incomplete, since
|
|
13
|
-
* it only contains the OUT sub operation)
|
|
14
|
-
*/
|
|
15
|
-
export function postSync(initial, synced) {
|
|
16
|
-
const lastOperation = synced.operations.find(op => ["OUT", "FEES"].includes(op.type));
|
|
17
|
-
const latestSequence = lastOperation?.transactionSequenceNumber || new BigNumber(-1);
|
|
18
|
-
function isPending(account, op) {
|
|
19
|
-
return (
|
|
20
|
-
// Operation is not confirmed
|
|
21
|
-
!account.operations.some(o => o.hash === op.hash) &&
|
|
22
|
-
// Operation is not outdated
|
|
23
|
-
op.transactionSequenceNumber !== undefined &&
|
|
24
|
-
op.transactionSequenceNumber.gt(latestSequence));
|
|
25
|
-
}
|
|
26
|
-
const pendingOperations = initial.pendingOperations.length
|
|
27
|
-
? initial.pendingOperations.filter(op => isPending(synced, op))
|
|
28
|
-
: [];
|
|
29
|
-
const subAccounts = synced.subAccounts?.length
|
|
30
|
-
? synced.subAccounts.map(subAccount => ({
|
|
31
|
-
...subAccount,
|
|
32
|
-
pendingOperations: subAccount.pendingOperations.filter(op => isPending(subAccount, op)),
|
|
33
|
-
}))
|
|
34
|
-
: [];
|
|
35
|
-
return { ...synced, pendingOperations, subAccounts };
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=postSync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postSync.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/postSync.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,MAAe;IACxD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,MAAM,cAAc,GAAG,aAAa,EAAE,yBAAyB,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,SAAS,SAAS,CAAC,OAAoB,EAAE,EAAa;QACpD,OAAO;QACL,6BAA6B;QAC7B,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC;YACjD,4BAA4B;YAC5B,EAAE,CAAC,yBAAyB,KAAK,SAAS;YAC1C,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC,cAAc,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM;QACxD,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM;QAC5C,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,GAAG,UAAU;YACb,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SACxF,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Account } from "@ledgerhq/types-live";
|
|
2
|
-
export declare function getTotalStakeableAssets(accounts: Account[] | null | undefined, stakingCurrenciesEnabled: string[], partnerStakingCurrenciesEnabled: string[]): {
|
|
3
|
-
combinedIds: Set<string>;
|
|
4
|
-
stakeableAssets: {
|
|
5
|
-
ticker: string;
|
|
6
|
-
networkName: string;
|
|
7
|
-
id: string;
|
|
8
|
-
}[];
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=getTotalStakeableAssets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTotalStakeableAssets.d.ts","sourceRoot":"","sources":["../../src/domain/getTotalStakeableAssets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,EACtC,wBAAwB,EAAE,MAAM,EAAE,EAClC,+BAA+B,EAAE,MAAM,EAAE,GACxC;IACD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE,CAoCA"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { getTokensWithFundsMap } from "./getTokensWithFunds";
|
|
2
|
-
export function getTotalStakeableAssets(accounts, stakingCurrenciesEnabled, partnerStakingCurrenciesEnabled) {
|
|
3
|
-
if (!accounts)
|
|
4
|
-
return { combinedIds: new Set(), stakeableAssets: [] };
|
|
5
|
-
const accountsWithFundsCurrencies = accounts
|
|
6
|
-
.filter(account => account?.balance.isGreaterThan(0))
|
|
7
|
-
.map(account => account?.currency);
|
|
8
|
-
const allStakingCurrenciesEnabled = new Set([
|
|
9
|
-
...stakingCurrenciesEnabled,
|
|
10
|
-
...partnerStakingCurrenciesEnabled,
|
|
11
|
-
]);
|
|
12
|
-
const tokenWithFundsMap = getTokensWithFundsMap(accounts);
|
|
13
|
-
const filteredAccountCurrencyIds = [...accountsWithFundsCurrencies].filter(currency => allStakingCurrenciesEnabled.has(currency.id));
|
|
14
|
-
const filteredTokenWithFunds = [...tokenWithFundsMap.values()].filter(token => allStakingCurrenciesEnabled.has(token.id));
|
|
15
|
-
const combined = new Map();
|
|
16
|
-
for (const currency of filteredAccountCurrencyIds) {
|
|
17
|
-
combined.set(currency.id, {
|
|
18
|
-
ticker: currency.ticker,
|
|
19
|
-
networkName: currency.name,
|
|
20
|
-
id: currency.id,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
for (const token of filteredTokenWithFunds) {
|
|
24
|
-
combined.set(token.id, token);
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
combinedIds: new Set(Array.from(combined.values(), details => details.id)),
|
|
28
|
-
stakeableAssets: Array.from(combined.values()),
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=getTotalStakeableAssets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTotalStakeableAssets.js","sourceRoot":"","sources":["../../src/domain/getTotalStakeableAssets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,UAAU,uBAAuB,CACrC,QAAsC,EACtC,wBAAkC,EAClC,+BAAyC;IAKzC,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,GAAG,EAAU,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IAE9E,MAAM,2BAA2B,GAAG,QAAQ;SACzC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACpD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAErC,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;QAC1C,GAAG,wBAAwB;QAC3B,GAAG,+BAA+B;KACnC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,0BAA0B,GAAG,CAAC,GAAG,2BAA2B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACpF,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC7C,CAAC;IACF,MAAM,sBAAsB,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5E,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1C,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+D,CAAC;IACxF,KAAK,MAAM,QAAQ,IAAI,0BAA0B,EAAE;QACjD,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE;YACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,EAAE,EAAE,QAAQ,CAAC,EAAE;SAChB,CAAC,CAAC;KACJ;IACD,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE;QAC1C,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KAC/B;IAED,OAAO;QACL,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1E,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regexes.d.ts","sourceRoot":"","sources":["../../../src/e2e/data/regexes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regexes.js","sourceRoot":"","sources":["../../../src/e2e/data/regexes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
2
|
-
import type { HederaAccount, HederaPreloadData, HederaValidator, HederaDelegation, HederaEnrichedDelegation } from "./types";
|
|
3
|
-
export declare function useHederaPreloadData(currency: CryptoCurrency): HederaPreloadData | undefined | null;
|
|
4
|
-
export declare function useHederaValidators(currency: CryptoCurrency, search?: string): HederaValidator[];
|
|
5
|
-
export declare function useHederaEnrichedDelegation(account: HederaAccount, delegation: HederaDelegation): HederaEnrichedDelegation;
|
|
6
|
-
//# sourceMappingURL=react.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/families/hedera/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAQnE,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,GACvB,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAEtC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAchG;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,gBAAgB,GAC3B,wBAAwB,CAoB1B"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import BigNumber from "bignumber.js";
|
|
2
|
-
import { useMemo } from "react";
|
|
3
|
-
import { getCurrentHederaPreloadData, getHederaPreloadData, } from "@ledgerhq/coin-hedera/preload-data";
|
|
4
|
-
import { getDelegationStatus, filterValidatorBySearchTerm } from "./utils";
|
|
5
|
-
import { useObservable } from "../../observable";
|
|
6
|
-
export function useHederaPreloadData(currency) {
|
|
7
|
-
return useObservable(getHederaPreloadData(currency), getCurrentHederaPreloadData(currency));
|
|
8
|
-
}
|
|
9
|
-
export function useHederaValidators(currency, search) {
|
|
10
|
-
const data = useHederaPreloadData(currency);
|
|
11
|
-
return useMemo(() => {
|
|
12
|
-
const validators = data?.validators ?? [];
|
|
13
|
-
if (validators.length === 0 || !search || search === "") {
|
|
14
|
-
return validators;
|
|
15
|
-
}
|
|
16
|
-
return validators.filter(validator => {
|
|
17
|
-
return filterValidatorBySearchTerm(validator, search);
|
|
18
|
-
});
|
|
19
|
-
}, [data, search]);
|
|
20
|
-
}
|
|
21
|
-
export function useHederaEnrichedDelegation(account, delegation) {
|
|
22
|
-
const validators = useHederaValidators(account.currency);
|
|
23
|
-
const validatorByNodeId = new Map(validators.map(v => [v.nodeId, v]));
|
|
24
|
-
const validator = validatorByNodeId.get(delegation.nodeId) ?? null;
|
|
25
|
-
return {
|
|
26
|
-
...delegation,
|
|
27
|
-
status: getDelegationStatus(validator),
|
|
28
|
-
validator: {
|
|
29
|
-
name: validator?.name ?? "",
|
|
30
|
-
address: validator?.address ?? "",
|
|
31
|
-
addressChecksum: validator?.addressChecksum ?? null,
|
|
32
|
-
nodeId: delegation.nodeId,
|
|
33
|
-
minStake: validator?.minStake ?? new BigNumber(0),
|
|
34
|
-
maxStake: validator?.maxStake ?? new BigNumber(0),
|
|
35
|
-
activeStake: validator?.activeStake ?? new BigNumber(0),
|
|
36
|
-
activeStakePercentage: validator?.activeStakePercentage ?? new BigNumber(0),
|
|
37
|
-
overstaked: validator?.overstaked ?? false,
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=react.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/families/hedera/react.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,MAAM,UAAU,oBAAoB,CAClC,QAAwB;IAExB,OAAO,aAAa,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAwB,EAAE,MAAe;IAC3E,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QAE1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,EAAE;YACvD,OAAO,UAAU,CAAC;SACnB;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YACnC,OAAO,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAsB,EACtB,UAA4B;IAE5B,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAEnE,OAAO;QACL,GAAG,UAAU;QACb,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC;QACtC,SAAS,EAAE;YACT,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;YAC3B,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE;YACjC,eAAe,EAAE,SAAS,EAAE,eAAe,IAAI,IAAI;YACnD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;YACjD,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;YACjD,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;YACvD,qBAAqB,EAAE,SAAS,EAAE,qBAAqB,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;YAC3E,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,KAAK;SAC3C;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const getValidCryptoIconSizeNative: (size: number) => 16 | 20 | 24 | 32 | 40 | 48 | 56;
|
|
2
|
-
export declare const getValidCryptoIconSize: (size: number) => "16px" | "20px" | "24px" | "32px" | "40px" | "48px" | "56px";
|
|
3
|
-
//# sourceMappingURL=cryptoIconSize.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoIconSize.d.ts","sourceRoot":"","sources":["../../src/helpers/cryptoIconSize.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,SAAU,MAAM,KAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAQzF,CAAC;AAIF,eAAO,MAAM,sBAAsB,SAC3B,MAAM,KACX,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAQxD,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// Utility to map any size to valid crypto-icons sizes
|
|
2
|
-
// For React Native (returns numbers)
|
|
3
|
-
export const getValidCryptoIconSizeNative = (size) => {
|
|
4
|
-
if (size <= 16)
|
|
5
|
-
return 16;
|
|
6
|
-
if (size <= 20)
|
|
7
|
-
return 20;
|
|
8
|
-
if (size <= 24)
|
|
9
|
-
return 24;
|
|
10
|
-
if (size <= 32)
|
|
11
|
-
return 32;
|
|
12
|
-
if (size <= 40)
|
|
13
|
-
return 40;
|
|
14
|
-
if (size <= 48)
|
|
15
|
-
return 48;
|
|
16
|
-
return 56;
|
|
17
|
-
};
|
|
18
|
-
// Utility to map any size to valid crypto-icons sizes
|
|
19
|
-
// For React/Web (returns strings with "px")
|
|
20
|
-
export const getValidCryptoIconSize = (size) => {
|
|
21
|
-
if (size <= 16)
|
|
22
|
-
return "16px";
|
|
23
|
-
if (size <= 20)
|
|
24
|
-
return "20px";
|
|
25
|
-
if (size <= 24)
|
|
26
|
-
return "24px";
|
|
27
|
-
if (size <= 32)
|
|
28
|
-
return "32px";
|
|
29
|
-
if (size <= 40)
|
|
30
|
-
return "40px";
|
|
31
|
-
if (size <= 48)
|
|
32
|
-
return "48px";
|
|
33
|
-
return "56px";
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=cryptoIconSize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoIconSize.js","sourceRoot":"","sources":["../../src/helpers/cryptoIconSize.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,qCAAqC;AACrC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAAoC,EAAE;IAC7F,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,sDAAsD;AACtD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAY,EACkD,EAAE;IAChE,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export type HtmlLinkSegment = {
|
|
2
|
-
type: "text";
|
|
3
|
-
content: string;
|
|
4
|
-
} | {
|
|
5
|
-
type: "link";
|
|
6
|
-
label: string;
|
|
7
|
-
href: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const splitHtmlLinkSegments: (input: string) => HtmlLinkSegment[];
|
|
10
|
-
export declare const validateLedgerUrl: (href: string) => {
|
|
11
|
-
isHttp: boolean;
|
|
12
|
-
isAllowedLedgerDomain: boolean;
|
|
13
|
-
};
|
|
14
|
-
export declare const buildHtmlDisplaySegments: (input: string) => HtmlLinkSegment[];
|
|
15
|
-
export declare const useHtmlLinkSegments: (html?: string | null) => {
|
|
16
|
-
segments: HtmlLinkSegment[];
|
|
17
|
-
hasLinks: boolean;
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=useHtmlLinkSegments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useHtmlLinkSegments.d.ts","sourceRoot":"","sources":["../../src/hooks/useHtmlLinkSegments.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAMN,eAAO,MAAM,qBAAqB,UAAW,MAAM,KAAG,eAAe,EAqEpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,SACtB,MAAM,KACX;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAyBnD,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAAW,MAAM,KAAG,eAAe,EAiBvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM,GAAG,IAAI,KACnB;IACD,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CAiBnB,CAAC"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
const ANCHOR_OPEN_REGEX = /<a\b[^>]*>/gi;
|
|
3
|
-
const HREF_ATTR_REGEX = /href\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s'">]+))/i;
|
|
4
|
-
const CLOSING_ANCHOR = "</a>";
|
|
5
|
-
export const splitHtmlLinkSegments = (input) => {
|
|
6
|
-
const segments = [];
|
|
7
|
-
if (!input) {
|
|
8
|
-
return segments;
|
|
9
|
-
}
|
|
10
|
-
const lowerInput = input.toLowerCase();
|
|
11
|
-
let cursor = 0;
|
|
12
|
-
ANCHOR_OPEN_REGEX.lastIndex = 0;
|
|
13
|
-
const extractHrefValue = (tag) => {
|
|
14
|
-
const match = HREF_ATTR_REGEX.exec(tag);
|
|
15
|
-
if (!match)
|
|
16
|
-
return null;
|
|
17
|
-
return match[1] ?? match[2] ?? match[3] ?? null;
|
|
18
|
-
};
|
|
19
|
-
let match;
|
|
20
|
-
while ((match = ANCHOR_OPEN_REGEX.exec(input)) !== null) {
|
|
21
|
-
const startIndex = match.index;
|
|
22
|
-
const tag = match[0];
|
|
23
|
-
const contentStartIndex = startIndex + tag.length;
|
|
24
|
-
const closingIndex = lowerInput.indexOf(CLOSING_ANCHOR, contentStartIndex);
|
|
25
|
-
if (closingIndex === -1) {
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
if (startIndex > cursor) {
|
|
29
|
-
const textBefore = input.slice(cursor, startIndex);
|
|
30
|
-
if (textBefore) {
|
|
31
|
-
segments.push({
|
|
32
|
-
type: "text",
|
|
33
|
-
content: textBefore,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const href = extractHrefValue(tag);
|
|
38
|
-
if (href) {
|
|
39
|
-
const label = input.slice(contentStartIndex, closingIndex);
|
|
40
|
-
segments.push({
|
|
41
|
-
type: "link",
|
|
42
|
-
href,
|
|
43
|
-
label,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
const fallbackText = input.slice(startIndex, closingIndex + CLOSING_ANCHOR.length);
|
|
48
|
-
segments.push({
|
|
49
|
-
type: "text",
|
|
50
|
-
content: fallbackText,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
cursor = closingIndex + CLOSING_ANCHOR.length;
|
|
54
|
-
ANCHOR_OPEN_REGEX.lastIndex = cursor;
|
|
55
|
-
}
|
|
56
|
-
if (cursor < input.length) {
|
|
57
|
-
const textAfter = input.slice(cursor);
|
|
58
|
-
if (textAfter) {
|
|
59
|
-
segments.push({
|
|
60
|
-
type: "text",
|
|
61
|
-
content: textAfter,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return segments;
|
|
66
|
-
};
|
|
67
|
-
export const validateLedgerUrl = (href) => {
|
|
68
|
-
try {
|
|
69
|
-
const url = new URL(href);
|
|
70
|
-
const isHttp = url.protocol === "http:" || url.protocol === "https:";
|
|
71
|
-
if (!isHttp) {
|
|
72
|
-
return {
|
|
73
|
-
isHttp: false,
|
|
74
|
-
isAllowedLedgerDomain: false,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
const hostname = url.hostname.toLowerCase();
|
|
78
|
-
const isAllowedLedgerDomain = hostname === "ledger.com" || hostname.endsWith(".ledger.com");
|
|
79
|
-
return {
|
|
80
|
-
isHttp,
|
|
81
|
-
isAllowedLedgerDomain,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
return {
|
|
86
|
-
isHttp: false,
|
|
87
|
-
isAllowedLedgerDomain: false,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
export const buildHtmlDisplaySegments = (input) => {
|
|
92
|
-
return splitHtmlLinkSegments(input).map(segment => {
|
|
93
|
-
if (segment.type === "link") {
|
|
94
|
-
const { isHttp, isAllowedLedgerDomain } = validateLedgerUrl(segment.href);
|
|
95
|
-
if (isHttp && isAllowedLedgerDomain) {
|
|
96
|
-
return segment;
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
type: "text",
|
|
100
|
-
content: segment.label,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
return segment;
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
export const useHtmlLinkSegments = (html) => {
|
|
107
|
-
return useMemo(() => {
|
|
108
|
-
if (!html) {
|
|
109
|
-
return {
|
|
110
|
-
segments: [],
|
|
111
|
-
hasLinks: false,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
const segments = buildHtmlDisplaySegments(html);
|
|
115
|
-
return {
|
|
116
|
-
segments,
|
|
117
|
-
hasLinks: segments.some(segment => segment.type === "link"),
|
|
118
|
-
};
|
|
119
|
-
}, [html]);
|
|
120
|
-
};
|
|
121
|
-
//# sourceMappingURL=useHtmlLinkSegments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useHtmlLinkSegments.js","sourceRoot":"","sources":["../../src/hooks/useHtmlLinkSegments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { RecentAddressesStore, setupRecentAddressesStore, getRecentAddressesStore } from ".";
|
|
2
|
-
import { RECENT_ADDRESSES_COUNT_LIMIT } from "./recentAddresses";
|
|
3
|
-
|
|
4
|
-
describe("RecentAddressesStore", () => {
|
|
5
|
-
const onAddAddressCompleteMock = jest.fn();
|
|
6
|
-
let store: RecentAddressesStore;
|
|
7
|
-
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
onAddAddressCompleteMock.mockClear();
|
|
10
|
-
setupRecentAddressesStore({}, onAddAddressCompleteMock);
|
|
11
|
-
store = getRecentAddressesStore();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it("should add one address and return this only address", async () => {
|
|
15
|
-
const newAddress = "0x66c4371aE8FFeD2ec1c2EBbbcCfb7E494181E1E3";
|
|
16
|
-
await store.addAddress("ethereum", newAddress);
|
|
17
|
-
const addresses = store.getAddresses("ethereum");
|
|
18
|
-
expect(addresses).toEqual([newAddress]);
|
|
19
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(1);
|
|
20
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress] });
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it("should add a second address and return addresses sorted by insertion", async () => {
|
|
24
|
-
const newAddress = "0x66c4371aE8FFeD2ec1c2EBbbcCfb7E494181E1E3";
|
|
25
|
-
await store.addAddress("ethereum", newAddress);
|
|
26
|
-
let addresses = store.getAddresses("ethereum");
|
|
27
|
-
expect(addresses).toEqual([newAddress]);
|
|
28
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(1);
|
|
29
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress] });
|
|
30
|
-
|
|
31
|
-
const newAddress2 = "0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1";
|
|
32
|
-
await store.addAddress("ethereum", newAddress2);
|
|
33
|
-
addresses = store.getAddresses("ethereum");
|
|
34
|
-
expect(addresses).toEqual([newAddress2, newAddress]);
|
|
35
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(2);
|
|
36
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress2, newAddress] });
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it("should replace at first place when an address is already saved", async () => {
|
|
40
|
-
const newAddress = "0x66c4371aE8FFeD2ec1c2EBbbcCfb7E494181E1E3";
|
|
41
|
-
await store.addAddress("ethereum", newAddress);
|
|
42
|
-
let addresses = store.getAddresses("ethereum");
|
|
43
|
-
expect(addresses).toEqual([newAddress]);
|
|
44
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(1);
|
|
45
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress] });
|
|
46
|
-
|
|
47
|
-
const newAddress2 = "0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1";
|
|
48
|
-
await store.addAddress("ethereum", newAddress2);
|
|
49
|
-
addresses = store.getAddresses("ethereum");
|
|
50
|
-
expect(addresses).toEqual([newAddress2, newAddress]);
|
|
51
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(2);
|
|
52
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress2, newAddress] });
|
|
53
|
-
|
|
54
|
-
await store.addAddress("ethereum", newAddress);
|
|
55
|
-
addresses = store.getAddresses("ethereum");
|
|
56
|
-
expect(addresses).toEqual([newAddress, newAddress2]);
|
|
57
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(3);
|
|
58
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress, newAddress2] });
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it("should replace at first place and remove last element when addresses exceed count limit", async () => {
|
|
62
|
-
let expectedAddresses: string[] = [];
|
|
63
|
-
for (let index = 0; index < RECENT_ADDRESSES_COUNT_LIMIT; index++) {
|
|
64
|
-
await store.addAddress("ethereum", `0x66c4371aE8FFeD2ec1c2EBbbcCfb7E494181E1E3${index}`);
|
|
65
|
-
expectedAddresses.unshift(`0x66c4371aE8FFeD2ec1c2EBbbcCfb7E494181E1E3${index}`);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
let addresses = store.getAddresses("ethereum");
|
|
69
|
-
expect(addresses).toEqual(expectedAddresses);
|
|
70
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(RECENT_ADDRESSES_COUNT_LIMIT);
|
|
71
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: expectedAddresses });
|
|
72
|
-
|
|
73
|
-
const newAddress2 = "0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1";
|
|
74
|
-
expectedAddresses.splice(expectedAddresses.length - 1, 1);
|
|
75
|
-
expectedAddresses = [newAddress2, ...expectedAddresses];
|
|
76
|
-
|
|
77
|
-
await store.addAddress("ethereum", newAddress2);
|
|
78
|
-
addresses = store.getAddresses("ethereum");
|
|
79
|
-
expect(addresses).toEqual(expectedAddresses);
|
|
80
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(RECENT_ADDRESSES_COUNT_LIMIT + 1);
|
|
81
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: expectedAddresses });
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it("should add an address of a different currency", async () => {
|
|
85
|
-
const newAddress = "0x66c4371aE8FFeD2ec1c2EBbbcCfb7E494181E1E3";
|
|
86
|
-
await store.addAddress("ethereum", newAddress);
|
|
87
|
-
|
|
88
|
-
let addresses = store.getAddresses("ethereum");
|
|
89
|
-
expect(addresses).toEqual([newAddress]);
|
|
90
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(1);
|
|
91
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({ ethereum: [newAddress] });
|
|
92
|
-
|
|
93
|
-
const newAddress2 = "bc1pxlmrudqyq8qd8pfsc4mpmlaw56x6vtcr9m8nvp8kj3gckefc4kmqhkg4l7";
|
|
94
|
-
await store.addAddress("bitcoin", newAddress2);
|
|
95
|
-
|
|
96
|
-
addresses = store.getAddresses("bitcoin");
|
|
97
|
-
expect(addresses).toEqual([newAddress2]);
|
|
98
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledTimes(2);
|
|
99
|
-
expect(onAddAddressCompleteMock).toHaveBeenCalledWith({
|
|
100
|
-
ethereum: [newAddress],
|
|
101
|
-
bitcoin: [newAddress2],
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
});
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
export const RECENT_ADDRESSES_COUNT_LIMIT = 12;
|
|
2
|
-
|
|
3
|
-
export type RecentAddressesCache = Record<string, string[]>;
|
|
4
|
-
|
|
5
|
-
export interface RecentAddressesStore {
|
|
6
|
-
addAddress(currency: string, address: string): void;
|
|
7
|
-
syncAddresses(cache: RecentAddressesCache): void;
|
|
8
|
-
getAddresses(currency: string): string[];
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
type CallbackMode = "triggerCallback" | "skipCallback";
|
|
12
|
-
|
|
13
|
-
let recentAddressesStore: RecentAddressesStore | null = null;
|
|
14
|
-
|
|
15
|
-
export function getRecentAddressesStore(): RecentAddressesStore {
|
|
16
|
-
if (recentAddressesStore === null) {
|
|
17
|
-
throw new Error(
|
|
18
|
-
"Recent addresses store instance is null, please call function setupRecentAddressesStore in application initialization",
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
return recentAddressesStore;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function setupRecentAddressesStore(
|
|
25
|
-
addressesByCurrency: RecentAddressesCache,
|
|
26
|
-
onAddAddressComplete: (addressesByCurrency: RecentAddressesCache) => void,
|
|
27
|
-
): void {
|
|
28
|
-
recentAddressesStore = new RecentAddressesStoreImpl(addressesByCurrency, onAddAddressComplete);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
class RecentAddressesStoreImpl implements RecentAddressesStore {
|
|
32
|
-
private addressesByCurrency: RecentAddressesCache = {};
|
|
33
|
-
private readonly onAddAddressComplete: (addressesByCurrency: Record<string, string[]>) => void;
|
|
34
|
-
|
|
35
|
-
constructor(
|
|
36
|
-
addressesByCurrency: RecentAddressesCache,
|
|
37
|
-
onAddAddressComplete: (addressesByCurrency: RecentAddressesCache) => void,
|
|
38
|
-
) {
|
|
39
|
-
this.addressesByCurrency = { ...addressesByCurrency };
|
|
40
|
-
this.onAddAddressComplete = onAddAddressComplete;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
addAddress(currency: string, address: string): void {
|
|
44
|
-
this.addAddressToCache(currency, address, "triggerCallback");
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
syncAddresses(cache: RecentAddressesCache): void {
|
|
48
|
-
const previousAddresses = { ...this.addressesByCurrency };
|
|
49
|
-
this.addressesByCurrency = { ...cache };
|
|
50
|
-
for (const currency in previousAddresses) {
|
|
51
|
-
for (const address of previousAddresses[currency]) {
|
|
52
|
-
this.addAddressToCache(currency, address, "skipCallback");
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
this.onAddAddressComplete(this.addressesByCurrency);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
getAddresses(currency: string): string[] {
|
|
60
|
-
const addresses = this.addressesByCurrency[currency];
|
|
61
|
-
return addresses ?? [];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
private addAddressToCache(currency: string, address: string, callbackMode: CallbackMode): void {
|
|
65
|
-
if (!this.addressesByCurrency[currency]) {
|
|
66
|
-
this.addressesByCurrency[currency] = [];
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const addresses = this.addressesByCurrency[currency];
|
|
70
|
-
const addressIndex = addresses.indexOf(address);
|
|
71
|
-
if (addressIndex !== -1) {
|
|
72
|
-
addresses.splice(addressIndex, 1);
|
|
73
|
-
} else if (addresses.length >= RECENT_ADDRESSES_COUNT_LIMIT) {
|
|
74
|
-
addresses.pop();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
addresses.unshift(address);
|
|
78
|
-
this.addressesByCurrency[currency] = [...addresses];
|
|
79
|
-
|
|
80
|
-
if (callbackMode === "triggerCallback") {
|
|
81
|
-
this.onAddAddressComplete(this.addressesByCurrency);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|