@ledgerhq/live-common 23.1.0 → 24.0.0-next.0
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__/mocks/account.js +3 -3
- package/lib/__tests__/mocks/account.js.map +1 -1
- package/lib/__tests__/test-helpers/bridge.d.ts +1 -4
- package/lib/__tests__/test-helpers/bridge.d.ts.map +1 -1
- package/lib/__tests__/test-helpers/bridge.js +1 -28
- package/lib/__tests__/test-helpers/bridge.js.map +1 -1
- package/lib/__tests__/test-helpers/setup.js +51 -0
- package/lib/__tests__/test-helpers/setup.js.map +1 -1
- package/lib/api/Ripple.d.ts.map +1 -1
- package/lib/api/Ripple.js +113 -68
- package/lib/api/Ripple.js.map +1 -1
- package/lib/apps/support.d.ts.map +1 -1
- package/lib/apps/support.js +6 -2
- package/lib/apps/support.js.map +1 -1
- package/lib/bot/index.d.ts.map +1 -1
- package/lib/bot/index.js +13 -19
- package/lib/bot/index.js.map +1 -1
- package/lib/bot/test.bot.d.ts +1 -1
- package/lib/bot/test.bot.d.ts.map +1 -1
- package/lib/bot/test.bot.js +1 -2
- package/lib/bot/test.bot.js.map +1 -1
- package/lib/countervalues/logic.integration.test.d.ts +2 -0
- package/lib/countervalues/logic.integration.test.d.ts.map +1 -0
- package/lib/countervalues/{logic.test.js → logic.integration.test.js} +1 -1
- package/lib/countervalues/logic.integration.test.js.map +1 -0
- package/lib/countervalues/react.d.ts +1 -21
- package/lib/countervalues/react.d.ts.map +1 -1
- package/lib/countervalues/react.js +1 -77
- package/lib/countervalues/react.js.map +1 -1
- package/lib/derivation.d.ts +1 -0
- package/lib/derivation.d.ts.map +1 -1
- package/lib/derivation.js +3 -2
- package/lib/derivation.js.map +1 -1
- package/lib/exchange/swap/getExchangeRates.test.js +1 -2
- package/lib/exchange/swap/getExchangeRates.test.js.map +1 -1
- package/lib/exchange/swap/hooks/usePollKYCStatus.test.js +4 -5
- package/lib/exchange/swap/hooks/usePollKYCStatus.test.js.map +1 -1
- package/lib/exchange/swap/hooks/useProviderRates.test.js +1 -2
- package/lib/exchange/swap/hooks/useProviderRates.test.js.map +1 -1
- package/lib/exchange/swap/hooks/useSwapProviders.test.js +1 -2
- package/lib/exchange/swap/hooks/useSwapProviders.test.js.map +1 -1
- package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.js +2 -3
- package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.js.map +1 -1
- package/lib/families/algorand/bridge.integration.test.d.ts +2 -0
- package/lib/families/algorand/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/algorand/{test-dataset.js → bridge.integration.test.js} +12 -11
- package/lib/families/algorand/bridge.integration.test.js.map +1 -0
- package/lib/families/bitcoin/bridge.integration.test.d.ts +2 -0
- package/lib/families/bitcoin/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/bitcoin/{test-dataset.js → bridge.integration.test.js} +17 -14
- package/lib/families/bitcoin/bridge.integration.test.js.map +1 -0
- package/lib/families/bitcoin/descriptor.d.ts.map +1 -1
- package/lib/families/bitcoin/descriptor.js +2 -1
- package/lib/families/bitcoin/descriptor.js.map +1 -1
- package/lib/families/bitcoin/satstack.d.ts.map +1 -1
- package/lib/families/bitcoin/satstack.js +5 -6
- package/lib/families/bitcoin/satstack.js.map +1 -1
- package/lib/families/bitcoin/satstack.test.js +4 -1
- package/lib/families/bitcoin/satstack.test.js.map +1 -1
- package/lib/families/bitcoin/specs.d.ts.map +1 -1
- package/lib/families/bitcoin/specs.js +1 -2
- package/lib/families/bitcoin/specs.js.map +1 -1
- package/lib/families/cardano/bridge.integration.test.d.ts +2 -0
- package/lib/families/cardano/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/cardano/{test-dataset.js → bridge.integration.test.js} +4 -2
- package/lib/families/cardano/bridge.integration.test.js.map +1 -0
- package/lib/families/celo/bridge.integration.test.d.ts +2 -0
- package/lib/families/celo/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/celo/bridge.integration.test.js +16 -0
- package/lib/families/celo/bridge.integration.test.js.map +1 -0
- package/lib/families/cosmos/bridge.integration.test.d.ts +2 -0
- package/lib/families/cosmos/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/cosmos/{test-dataset.js → bridge.integration.test.js} +5 -4
- package/lib/families/cosmos/bridge.integration.test.js.map +1 -0
- package/lib/families/cosmos/speculos-deviceActions.js +2 -2
- package/lib/families/crypto_org/bridge.integration.test.d.ts +2 -0
- package/lib/families/crypto_org/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/crypto_org/bridge.integration.test.js +16 -0
- package/lib/families/crypto_org/bridge.integration.test.js.map +1 -0
- package/lib/families/elrond/bridge.integration.test.d.ts +2 -0
- package/lib/families/elrond/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/elrond/{test-dataset.js → bridge.integration.test.js} +5 -5
- package/lib/families/elrond/bridge.integration.test.js.map +1 -0
- package/lib/families/ethereum/bridge.integration.test.d.ts +2 -0
- package/lib/families/ethereum/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/ethereum/{test-dataset.js → bridge.integration.test.js} +8 -24
- package/lib/families/ethereum/bridge.integration.test.js.map +1 -0
- package/lib/families/ethereum/datasets/ethereum1.d.ts +3 -0
- package/lib/families/ethereum/datasets/ethereum1.d.ts.map +1 -0
- package/lib/families/ethereum/datasets/ethereum1.js +22 -0
- package/lib/families/ethereum/datasets/ethereum1.js.map +1 -0
- package/lib/families/ethereum/modules/compound.resilience.integration.test.d.ts +2 -0
- package/lib/families/ethereum/modules/compound.resilience.integration.test.d.ts.map +1 -0
- package/lib/families/ethereum/modules/{compound.resilience.test.js → compound.resilience.integration.test.js} +3 -3
- package/lib/families/ethereum/modules/compound.resilience.integration.test.js.map +1 -0
- package/lib/families/ethereum/synchronisation.integration.test.d.ts +2 -0
- package/lib/families/ethereum/synchronisation.integration.test.d.ts.map +1 -0
- package/lib/families/ethereum/{synchronisation.test.js → synchronisation.integration.test.js} +4 -4
- package/lib/families/ethereum/synchronisation.integration.test.js.map +1 -0
- package/lib/families/filecoin/bridge.integration.test.d.ts +2 -0
- package/lib/families/filecoin/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/filecoin/{test-dataset.js → bridge.integration.test.js} +84 -3
- package/lib/families/filecoin/bridge.integration.test.js.map +1 -0
- package/lib/families/hedera/bridge.integration.test.d.ts +2 -0
- package/lib/families/hedera/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/hedera/{test-dataset.js → bridge.integration.test.js} +5 -3
- package/lib/families/hedera/bridge.integration.test.js.map +1 -0
- package/lib/families/polkadot/bridge.integration.test.d.ts +2 -0
- package/lib/families/polkadot/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/polkadot/{test-dataset.js → bridge.integration.test.js} +138 -4
- package/lib/families/polkadot/bridge.integration.test.js.map +1 -0
- package/lib/families/ripple/bridge.integration.test.d.ts +2 -0
- package/lib/families/ripple/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/ripple/{test-dataset.js → bridge.integration.test.js} +4 -2
- package/lib/families/ripple/bridge.integration.test.js.map +1 -0
- package/lib/families/solana/bridge.integration.test.d.ts +2 -0
- package/lib/families/solana/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/solana/{test-dataset.js → bridge.integration.test.js} +289 -73
- package/lib/families/solana/bridge.integration.test.js.map +1 -0
- package/lib/families/stellar/bridge.integration.test.d.ts +2 -0
- package/lib/families/stellar/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/stellar/{test-dataset.js → bridge.integration.test.js} +9 -8
- package/lib/families/stellar/bridge.integration.test.js.map +1 -0
- package/lib/families/stellar/js-estimateMaxSpendable.d.ts.map +1 -1
- package/lib/families/stellar/js-estimateMaxSpendable.js +2 -2
- package/lib/families/stellar/js-estimateMaxSpendable.js.map +1 -1
- package/lib/families/tezos/{test-dataset.d.ts → bridge.integration.test.d.ts} +2 -5
- package/lib/families/tezos/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/tezos/{test-dataset.js → bridge.integration.test.js} +73 -2
- package/lib/families/tezos/bridge.integration.test.js.map +1 -0
- package/lib/families/tezos/synchronisation.js +2 -2
- package/lib/families/tezos/synchronisation.js.map +1 -1
- package/lib/families/tron/bridge.integration.test.d.ts +2 -0
- package/lib/families/tron/bridge.integration.test.d.ts.map +1 -0
- package/lib/families/tron/{test-dataset.js → bridge.integration.test.js} +5 -4
- package/lib/families/tron/bridge.integration.test.js.map +1 -0
- package/lib/load/speculos.d.ts.map +1 -1
- package/lib/load/speculos.js +5 -2
- package/lib/load/speculos.js.map +1 -1
- package/lib/portfolio/v2/index.d.ts +6 -1
- package/lib/portfolio/v2/index.d.ts.map +1 -1
- package/lib/portfolio/v2/index.js +7 -3
- package/lib/portfolio/v2/index.js.map +1 -1
- package/lib/portfolio/v2/range.d.ts +7 -1
- package/lib/portfolio/v2/range.d.ts.map +1 -1
- package/lib/portfolio/v2/range.js +37 -18
- package/lib/portfolio/v2/range.js.map +1 -1
- package/lib/portfolio/v2/range.test.d.ts +2 -0
- package/lib/portfolio/v2/range.test.d.ts.map +1 -0
- package/lib/portfolio/v2/range.test.js +51 -0
- package/lib/portfolio/v2/range.test.js.map +1 -0
- package/package.json +11 -10
- package/src/__tests__/mocks/account.ts +3 -3
- package/src/__tests__/test-helpers/bridge.ts +2 -35
- package/src/__tests__/test-helpers/setup.ts +39 -0
- package/src/api/Ripple.ts +97 -52
- package/src/apps/support.ts +6 -2
- package/src/bot/index.ts +26 -24
- package/src/bot/test.bot.ts +2 -2
- package/src/countervalues/{logic.test.ts → logic.integration.test.ts} +0 -0
- package/src/countervalues/react.tsx +2 -131
- package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +15 -1
- package/src/derivation.ts +2 -1
- package/src/exchange/swap/getExchangeRates.test.ts +1 -2
- package/src/exchange/swap/hooks/usePollKYCStatus.test.ts +1 -3
- package/src/exchange/swap/hooks/useProviderRates.test.ts +1 -2
- package/src/exchange/swap/hooks/useSwapProviders.test.ts +1 -3
- package/src/exchange/swap/hooks/useUpdateMaxAmount.test.ts +2 -3
- package/src/families/algorand/{test-dataset.ts → bridge.integration.test.ts} +13 -10
- package/src/families/bitcoin/__snapshots__/bridge.integration.test.ts.snap +27607 -0
- package/src/families/bitcoin/{test-dataset.ts → bridge.integration.test.ts} +18 -13
- package/src/families/bitcoin/descriptor.ts +1 -0
- package/src/families/bitcoin/satstack.test.ts +4 -1
- package/src/families/bitcoin/satstack.ts +9 -5
- package/src/families/bitcoin/specs.ts +0 -1
- package/src/families/cardano/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
- package/src/families/cardano/{test-dataset.ts → bridge.integration.test.ts} +3 -1
- package/src/families/celo/bridge.integration.test.ts +14 -0
- package/src/families/cosmos/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
- package/src/families/cosmos/{test-dataset.ts → bridge.integration.test.ts} +17 -15
- package/src/families/cosmos/speculos-deviceActions.ts +2 -2
- package/src/families/crypto_org/__snapshots__/bridge.integration.test.ts.snap +2968 -0
- package/src/families/crypto_org/bridge.integration.test.ts +14 -0
- package/src/families/elrond/__snapshots__/bridge.integration.test.ts.snap +207 -0
- package/src/families/elrond/{test-dataset.ts → bridge.integration.test.ts} +6 -4
- package/src/families/ethereum/__snapshots__/bridge.integration.test.ts.snap +3263 -0
- package/src/families/ethereum/{test-dataset.ts → bridge.integration.test.ts} +6 -19
- package/src/families/ethereum/datasets/ethereum1.ts +20 -0
- package/src/families/ethereum/modules/{compound.resilience.test.ts → compound.resilience.integration.test.ts} +1 -1
- package/src/families/ethereum/{synchronisation.test.ts → synchronisation.integration.test.ts} +1 -1
- package/src/families/filecoin/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
- package/src/families/filecoin/{test-dataset.ts → bridge.integration.test.ts} +35 -3
- package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +5 -0
- package/src/families/hedera/{test-dataset.ts → bridge.integration.test.ts} +5 -2
- package/src/families/polkadot/{test-dataset.ts → bridge.integration.test.ts} +81 -5
- package/src/families/ripple/{test-dataset.ts → bridge.integration.test.ts} +5 -1
- package/src/families/solana/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
- package/src/families/solana/{test-dataset.ts → bridge.integration.test.ts} +170 -5
- package/src/families/stellar/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
- package/src/families/stellar/{test-dataset.ts → bridge.integration.test.ts} +5 -3
- package/src/families/stellar/js-estimateMaxSpendable.ts +3 -1
- package/src/families/tezos/{test-dataset.ts → bridge.integration.test.ts} +22 -1
- package/src/families/tezos/synchronisation.ts +1 -1
- package/src/families/tron/{test-dataset.ts → bridge.integration.test.ts} +6 -5
- package/src/load/speculos.ts +5 -2
- package/src/portfolio/v2/index.ts +7 -2
- package/src/portfolio/v2/range.test.ts +66 -0
- package/src/portfolio/v2/range.ts +22 -8
- package/lib/__tests__/portfolio.d.ts +0 -2
- package/lib/__tests__/portfolio.d.ts.map +0 -1
- package/lib/__tests__/portfolio.js +0 -297
- package/lib/__tests__/portfolio.js.map +0 -1
- package/lib/__tests__/test-helpers/libcore-setup.d.ts +0 -3
- package/lib/__tests__/test-helpers/libcore-setup.d.ts.map +0 -1
- package/lib/__tests__/test-helpers/libcore-setup.js +0 -68
- package/lib/__tests__/test-helpers/libcore-setup.js.map +0 -1
- package/lib/__tests__/test-helpers/libcore-setup.native.d.ts +0 -10
- package/lib/__tests__/test-helpers/libcore-setup.native.d.ts.map +0 -1
- package/lib/__tests__/test-helpers/libcore-setup.native.js +0 -16
- package/lib/__tests__/test-helpers/libcore-setup.native.js.map +0 -1
- package/lib/countervalues/logic.test.d.ts +0 -2
- package/lib/countervalues/logic.test.d.ts.map +0 -1
- package/lib/countervalues/logic.test.js.map +0 -1
- package/lib/families/algorand/test-dataset.d.ts +0 -5
- package/lib/families/algorand/test-dataset.d.ts.map +0 -1
- package/lib/families/algorand/test-dataset.js.map +0 -1
- package/lib/families/bitcoin/test-dataset.d.ts +0 -5
- package/lib/families/bitcoin/test-dataset.d.ts.map +0 -1
- package/lib/families/bitcoin/test-dataset.js.map +0 -1
- package/lib/families/cardano/bridge.test.d.ts +0 -2
- package/lib/families/cardano/bridge.test.d.ts.map +0 -1
- package/lib/families/cardano/bridge.test.js +0 -11
- package/lib/families/cardano/bridge.test.js.map +0 -1
- package/lib/families/cardano/test-dataset.d.ts +0 -5
- package/lib/families/cardano/test-dataset.d.ts.map +0 -1
- package/lib/families/cardano/test-dataset.js.map +0 -1
- package/lib/families/cosmos/bridge.test.d.ts +0 -2
- package/lib/families/cosmos/bridge.test.d.ts.map +0 -1
- package/lib/families/cosmos/bridge.test.js +0 -11
- package/lib/families/cosmos/bridge.test.js.map +0 -1
- package/lib/families/cosmos/test-dataset.d.ts +0 -5
- package/lib/families/cosmos/test-dataset.d.ts.map +0 -1
- package/lib/families/cosmos/test-dataset.js.map +0 -1
- package/lib/families/crypto_org/test-dataset.d.ts +0 -5
- package/lib/families/crypto_org/test-dataset.d.ts.map +0 -1
- package/lib/families/crypto_org/test-dataset.js +0 -12
- package/lib/families/crypto_org/test-dataset.js.map +0 -1
- package/lib/families/elrond/test-dataset.d.ts +0 -5
- package/lib/families/elrond/test-dataset.d.ts.map +0 -1
- package/lib/families/elrond/test-dataset.js.map +0 -1
- package/lib/families/ethereum/modules/compound.resilience.test.d.ts +0 -2
- package/lib/families/ethereum/modules/compound.resilience.test.d.ts.map +0 -1
- package/lib/families/ethereum/modules/compound.resilience.test.js.map +0 -1
- package/lib/families/ethereum/synchronisation.test.d.ts +0 -2
- package/lib/families/ethereum/synchronisation.test.d.ts.map +0 -1
- package/lib/families/ethereum/synchronisation.test.js.map +0 -1
- package/lib/families/ethereum/test-dataset.d.ts +0 -6
- package/lib/families/ethereum/test-dataset.d.ts.map +0 -1
- package/lib/families/ethereum/test-dataset.js.map +0 -1
- package/lib/families/filecoin/bridge.test.d.ts +0 -2
- package/lib/families/filecoin/bridge.test.d.ts.map +0 -1
- package/lib/families/filecoin/bridge.test.js +0 -92
- package/lib/families/filecoin/bridge.test.js.map +0 -1
- package/lib/families/filecoin/test-dataset.d.ts +0 -5
- package/lib/families/filecoin/test-dataset.d.ts.map +0 -1
- package/lib/families/filecoin/test-dataset.js.map +0 -1
- package/lib/families/hedera/test-dataset.d.ts +0 -5
- package/lib/families/hedera/test-dataset.d.ts.map +0 -1
- package/lib/families/hedera/test-dataset.js.map +0 -1
- package/lib/families/polkadot/bridge.test.d.ts +0 -2
- package/lib/families/polkadot/bridge.test.d.ts.map +0 -1
- package/lib/families/polkadot/bridge.test.js +0 -145
- package/lib/families/polkadot/bridge.test.js.map +0 -1
- package/lib/families/polkadot/test-dataset.d.ts +0 -5
- package/lib/families/polkadot/test-dataset.d.ts.map +0 -1
- package/lib/families/polkadot/test-dataset.js.map +0 -1
- package/lib/families/ripple/bridge.test.d.ts +0 -2
- package/lib/families/ripple/bridge.test.d.ts.map +0 -1
- package/lib/families/ripple/bridge.test.js +0 -11
- package/lib/families/ripple/bridge.test.js.map +0 -1
- package/lib/families/ripple/test-dataset.d.ts +0 -5
- package/lib/families/ripple/test-dataset.d.ts.map +0 -1
- package/lib/families/ripple/test-dataset.js.map +0 -1
- package/lib/families/solana/bridge.test.d.ts +0 -2
- package/lib/families/solana/bridge.test.d.ts.map +0 -1
- package/lib/families/solana/bridge.test.js +0 -11
- package/lib/families/solana/bridge.test.js.map +0 -1
- package/lib/families/solana/test-dataset.d.ts +0 -23
- package/lib/families/solana/test-dataset.d.ts.map +0 -1
- package/lib/families/solana/test-dataset.js.map +0 -1
- package/lib/families/solana/test-specifics.d.ts +0 -9
- package/lib/families/solana/test-specifics.d.ts.map +0 -1
- package/lib/families/solana/test-specifics.js +0 -237
- package/lib/families/solana/test-specifics.js.map +0 -1
- package/lib/families/stellar/bridge.test.d.ts +0 -2
- package/lib/families/stellar/bridge.test.d.ts.map +0 -1
- package/lib/families/stellar/bridge.test.js +0 -11
- package/lib/families/stellar/bridge.test.js.map +0 -1
- package/lib/families/stellar/test-dataset.d.ts +0 -7
- package/lib/families/stellar/test-dataset.d.ts.map +0 -1
- package/lib/families/stellar/test-dataset.js.map +0 -1
- package/lib/families/tezos/bridge.test.d.ts +0 -2
- package/lib/families/tezos/bridge.test.d.ts.map +0 -1
- package/lib/families/tezos/bridge.test.js +0 -81
- package/lib/families/tezos/bridge.test.js.map +0 -1
- package/lib/families/tezos/test-dataset.d.ts.map +0 -1
- package/lib/families/tezos/test-dataset.js.map +0 -1
- package/lib/families/tron/test-dataset.d.ts +0 -5
- package/lib/families/tron/test-dataset.d.ts.map +0 -1
- package/lib/families/tron/test-dataset.js.map +0 -1
- package/lib/generated/test-dataset.d.ts +0 -19
- package/lib/generated/test-dataset.d.ts.map +0 -1
- package/lib/generated/test-dataset.js +0 -38
- package/lib/generated/test-dataset.js.map +0 -1
- package/lib/portfolio/index.d.ts +0 -30
- package/lib/portfolio/index.d.ts.map +0 -1
- package/lib/portfolio/index.js +0 -399
- package/lib/portfolio/index.js.map +0 -1
- package/lib/portfolio/range.d.ts +0 -12
- package/lib/portfolio/range.d.ts.map +0 -1
- package/lib/portfolio/range.js +0 -73
- package/lib/portfolio/range.js.map +0 -1
- package/src/__tests__/__snapshots__/portfolio.ts.snap +0 -2770
- package/src/__tests__/portfolio.ts +0 -360
- package/src/__tests__/test-helpers/libcore-setup.native.ts +0 -19
- package/src/__tests__/test-helpers/libcore-setup.ts +0 -51
- package/src/families/bitcoin/bridge.test.ts.bak +0 -6
- package/src/families/cardano/bridge.test.ts +0 -6
- package/src/families/cosmos/bridge.test.ts +0 -6
- package/src/families/crypto_org/test-dataset.ts +0 -13
- package/src/families/ethereum/bridge.test.ts.bak +0 -8
- package/src/families/filecoin/bridge.test.ts +0 -39
- package/src/families/polkadot/bridge.test.ts +0 -81
- package/src/families/ripple/bridge.test.ts +0 -6
- package/src/families/solana/bridge.test.ts +0 -6
- package/src/families/solana/test-specifics.ts +0 -170
- package/src/families/stellar/bridge.test.ts +0 -6
- package/src/families/tezos/bridge.test.ts +0 -24
- package/src/generated/test-dataset.ts +0 -48
- package/src/portfolio/index.ts +0 -505
- package/src/portfolio/range.ts +0 -71
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import { startOfWeek, startOfDay, startOfHour } from "../range";
|
|
2
1
|
import type { PortfolioRangeConfig, PortfolioRange } from "./types";
|
|
2
|
+
export declare const hourIncrement: number;
|
|
3
|
+
export declare const dayIncrement: number;
|
|
4
|
+
export declare const weekIncrement: number;
|
|
5
|
+
export declare function startOfHour(t: Date): Date;
|
|
6
|
+
export declare function startOfMonth(t: Date): Date;
|
|
7
|
+
export declare function startOfDay(t: Date): Date;
|
|
8
|
+
export declare function startOfWeek(t: Date): Date;
|
|
3
9
|
export declare function getPortfolioRangeConfig(r: PortfolioRange): PortfolioRangeConfig;
|
|
4
10
|
export declare const granularities: {
|
|
5
11
|
WEEK: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpE,eAAO,MAAM,aAAa,QAAiB,CAAC;AAC5C,eAAO,MAAM,YAAY,QAAqB,CAAC;AAC/C,eAAO,MAAM,aAAa,QAAmB,CAAC;AAE9C,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAE1C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,cAAc,GAChB,oBAAoB,CAEtB;AACD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAgBzB,CAAC;AAiCF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AACD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC"}
|
|
@@ -1,57 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
exports.__esModule = true;
|
|
3
|
-
exports.getRanges = exports.getDates = exports.granularities = exports.getPortfolioRangeConfig = void 0;
|
|
4
|
-
|
|
3
|
+
exports.getRanges = exports.getDates = exports.granularities = exports.getPortfolioRangeConfig = exports.startOfWeek = exports.startOfDay = exports.startOfMonth = exports.startOfHour = exports.weekIncrement = exports.dayIncrement = exports.hourIncrement = void 0;
|
|
4
|
+
exports.hourIncrement = 60 * 60 * 1000;
|
|
5
|
+
exports.dayIncrement = 24 * exports.hourIncrement;
|
|
6
|
+
exports.weekIncrement = 7 * exports.dayIncrement;
|
|
7
|
+
function startOfHour(t) {
|
|
8
|
+
return new Date(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours());
|
|
9
|
+
}
|
|
10
|
+
exports.startOfHour = startOfHour;
|
|
11
|
+
function startOfMonth(t) {
|
|
12
|
+
return new Date(t.getFullYear(), t.getMonth(), 1);
|
|
13
|
+
}
|
|
14
|
+
exports.startOfMonth = startOfMonth;
|
|
15
|
+
function startOfDay(t) {
|
|
16
|
+
return new Date(t.getFullYear(), t.getMonth(), t.getDate());
|
|
17
|
+
}
|
|
18
|
+
exports.startOfDay = startOfDay;
|
|
19
|
+
function startOfWeek(t) {
|
|
20
|
+
var d = startOfDay(t);
|
|
21
|
+
return new Date(d.getTime() - d.getDay() * exports.dayIncrement);
|
|
22
|
+
}
|
|
23
|
+
exports.startOfWeek = startOfWeek;
|
|
5
24
|
function getPortfolioRangeConfig(r) {
|
|
6
25
|
return ranges[r];
|
|
7
26
|
}
|
|
8
27
|
exports.getPortfolioRangeConfig = getPortfolioRangeConfig;
|
|
9
28
|
exports.granularities = {
|
|
10
29
|
WEEK: {
|
|
11
|
-
increment:
|
|
12
|
-
startOf:
|
|
30
|
+
increment: exports.weekIncrement,
|
|
31
|
+
startOf: startOfWeek,
|
|
13
32
|
maxDatapoints: 1000
|
|
14
33
|
},
|
|
15
34
|
DAY: {
|
|
16
|
-
increment:
|
|
17
|
-
startOf:
|
|
35
|
+
increment: exports.dayIncrement,
|
|
36
|
+
startOf: startOfDay,
|
|
18
37
|
maxDatapoints: 400
|
|
19
38
|
},
|
|
20
39
|
HOUR: {
|
|
21
|
-
increment:
|
|
22
|
-
startOf:
|
|
40
|
+
increment: exports.hourIncrement,
|
|
41
|
+
startOf: startOfHour,
|
|
23
42
|
maxDatapoints: 8 * 24
|
|
24
43
|
}
|
|
25
44
|
};
|
|
26
45
|
// TODO Protfolio: this would require to introduce Account#olderOperationDate
|
|
27
46
|
var ranges = {
|
|
28
47
|
all: {
|
|
29
|
-
increment:
|
|
30
|
-
startOf:
|
|
48
|
+
increment: exports.weekIncrement,
|
|
49
|
+
startOf: startOfWeek,
|
|
31
50
|
granularityId: "WEEK"
|
|
32
51
|
},
|
|
33
52
|
year: {
|
|
34
53
|
count: 52,
|
|
35
|
-
increment:
|
|
36
|
-
startOf:
|
|
54
|
+
increment: exports.weekIncrement,
|
|
55
|
+
startOf: startOfWeek,
|
|
37
56
|
granularityId: "WEEK"
|
|
38
57
|
},
|
|
39
58
|
month: {
|
|
40
59
|
count: 30,
|
|
41
|
-
increment:
|
|
42
|
-
startOf:
|
|
60
|
+
increment: exports.dayIncrement,
|
|
61
|
+
startOf: startOfDay,
|
|
43
62
|
granularityId: "DAY"
|
|
44
63
|
},
|
|
45
64
|
week: {
|
|
46
65
|
count: 7 * 24,
|
|
47
|
-
increment:
|
|
48
|
-
startOf:
|
|
66
|
+
increment: exports.hourIncrement,
|
|
67
|
+
startOf: startOfHour,
|
|
49
68
|
granularityId: "HOUR"
|
|
50
69
|
},
|
|
51
70
|
day: {
|
|
52
71
|
count: 24,
|
|
53
|
-
increment:
|
|
54
|
-
startOf:
|
|
72
|
+
increment: exports.hourIncrement,
|
|
73
|
+
startOf: startOfHour,
|
|
55
74
|
granularityId: "HOUR"
|
|
56
75
|
}
|
|
57
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.test.d.ts","sourceRoot":"","sources":["../../../src/portfolio/v2/range.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var range_1 = require("./range");
|
|
4
|
+
describe("startOfHour", function () {
|
|
5
|
+
test("basic test", function () {
|
|
6
|
+
expect((0, range_1.startOfHour)(new Date(1655827384305)).toISOString()).toBe("2022-06-21T16:00:00.000Z");
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
describe("startOfDay", function () {
|
|
10
|
+
test("basic test", function () {
|
|
11
|
+
expect((0, range_1.startOfDay)(new Date(1655827384305)).toISOString()).toBe("2022-06-21T04:00:00.000Z");
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
describe("startOfMonth", function () {
|
|
15
|
+
test("basic test", function () {
|
|
16
|
+
expect((0, range_1.startOfMonth)(new Date(1655827384305)).toISOString()).toBe("2022-06-01T04:00:00.000Z");
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe("startOfWeek", function () {
|
|
20
|
+
test("basic test", function () {
|
|
21
|
+
expect((0, range_1.startOfWeek)(new Date(1655827384305)).toISOString()).toBe("2022-06-19T04:00:00.000Z");
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe("getPortfolioRangeConfig", function () {
|
|
25
|
+
test("returns a value for day", function () {
|
|
26
|
+
expect((0, range_1.getPortfolioRangeConfig)("day")).toBeDefined();
|
|
27
|
+
});
|
|
28
|
+
test("returns a value for week", function () {
|
|
29
|
+
expect((0, range_1.getPortfolioRangeConfig)("week")).toBeDefined();
|
|
30
|
+
});
|
|
31
|
+
test("returns a value for month", function () {
|
|
32
|
+
expect((0, range_1.getPortfolioRangeConfig)("month")).toBeDefined();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe("getDates", function () {
|
|
36
|
+
test("day returns an array of asked size", function () {
|
|
37
|
+
expect((0, range_1.getDates)("day", 100).length).toEqual(100);
|
|
38
|
+
});
|
|
39
|
+
test("week returns an array of asked size", function () {
|
|
40
|
+
expect((0, range_1.getDates)("week", 100).length).toEqual(100);
|
|
41
|
+
});
|
|
42
|
+
test("month returns an array of asked size", function () {
|
|
43
|
+
expect((0, range_1.getDates)("month", 100).length).toEqual(100);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("getRanges", function () {
|
|
47
|
+
test("returns a non empty array", function () {
|
|
48
|
+
expect((0, range_1.getRanges)().length).toBeGreaterThan(0);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=range.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.test.js","sourceRoot":"","sources":["../../../src/portfolio/v2/range.test.ts"],"names":[],"mappings":";;AAAA,iCAQiB;AAEjB,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,mBAAW,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC7D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,kBAAU,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC5D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,cAAc,EAAE;IACvB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,oBAAY,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC9D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,mBAAW,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC7D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,yBAAyB,EAAE;IAClC,IAAI,CAAC,yBAAyB,EAAE;QAC9B,MAAM,CAAC,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,0BAA0B,EAAE;QAC/B,MAAM,CAAC,IAAA,+BAAuB,EAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,2BAA2B,EAAE;QAChC,MAAM,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,UAAU,EAAE;IACnB,IAAI,CAAC,oCAAoC,EAAE;QACzC,MAAM,CAAC,IAAA,gBAAQ,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qCAAqC,EAAE;QAC1C,MAAM,CAAC,IAAA,gBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,sCAAsC,EAAE;QAC3C,MAAM,CAAC,IAAA,gBAAQ,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE;IACpB,IAAI,CAAC,2BAA2B,EAAE;QAChC,MAAM,CAAC,IAAA,iBAAS,GAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/LedgerHQ/ledger-live-common"
|
|
10
10
|
},
|
|
11
|
-
"version": "
|
|
11
|
+
"version": "24.0.0-next.0",
|
|
12
12
|
"main": "lib/index.js",
|
|
13
13
|
"types": "lib/index.d.ts",
|
|
14
14
|
"license": "Apache-2.0",
|
|
@@ -56,13 +56,13 @@
|
|
|
56
56
|
"@ethereumjs/tx": "^3.5.0",
|
|
57
57
|
"@hashgraph/sdk": "^2.10.1",
|
|
58
58
|
"@ledgerhq/compressjs": "1.3.2",
|
|
59
|
-
"@ledgerhq/cryptoassets": "^6.
|
|
59
|
+
"@ledgerhq/cryptoassets": "^6.29.0-next.0",
|
|
60
60
|
"@ledgerhq/devices": "^6.27.1",
|
|
61
61
|
"@ledgerhq/errors": "^6.10.0",
|
|
62
62
|
"@ledgerhq/hw-app-algorand": "^6.27.1",
|
|
63
63
|
"@ledgerhq/hw-app-btc": "^6.27.1",
|
|
64
64
|
"@ledgerhq/hw-app-cosmos": "^6.27.1",
|
|
65
|
-
"@ledgerhq/hw-app-eth": "^6.29.0",
|
|
65
|
+
"@ledgerhq/hw-app-eth": "^6.29.1-next.0",
|
|
66
66
|
"@ledgerhq/hw-app-polkadot": "^6.27.1",
|
|
67
67
|
"@ledgerhq/hw-app-solana": "^6.27.1",
|
|
68
68
|
"@ledgerhq/hw-app-str": "^6.27.1",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@solana/spl-token": "^0.2.0",
|
|
84
84
|
"@solana/web3.js": "1.41.3",
|
|
85
85
|
"@stricahq/bip32ed25519": "^1.0.3",
|
|
86
|
-
"@stricahq/typhonjs": "^1.2.
|
|
86
|
+
"@stricahq/typhonjs": "^1.2.4",
|
|
87
87
|
"@taquito/ledger-signer": "stablelib",
|
|
88
88
|
"@taquito/taquito": "stablelib",
|
|
89
89
|
"@taquito/utils": "stablelib",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"semver": "^7.3.5",
|
|
147
147
|
"sha.js": "^2.4.11",
|
|
148
148
|
"source-map-support": "^0.5.21",
|
|
149
|
-
"stellar-sdk": "^10.1.
|
|
149
|
+
"stellar-sdk": "^10.1.1",
|
|
150
150
|
"superstruct": "0.14.2",
|
|
151
151
|
"tiny-secp256k1": "^1.1.6",
|
|
152
152
|
"triple-beam": "^1.3.0",
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
"eslint-plugin-typescript": "^0.14.0",
|
|
186
186
|
"fs": "^0.0.1-security",
|
|
187
187
|
"glob": "^7.2.0",
|
|
188
|
-
"jest": "^
|
|
188
|
+
"jest": "^28.1.1",
|
|
189
189
|
"jest-file-snapshot": "^0.5.0",
|
|
190
190
|
"prettier": "2.3.2",
|
|
191
191
|
"react": "^17.0.2",
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
"react-native-svg": "^12.1.1",
|
|
195
195
|
"react-test-renderer": "^17.0.2",
|
|
196
196
|
"timemachine": "^0.3.2",
|
|
197
|
-
"ts-jest": "^
|
|
197
|
+
"ts-jest": "^28.0.5",
|
|
198
198
|
"ts-node": "^10.4.0",
|
|
199
199
|
"typescript": "^4.5.5",
|
|
200
200
|
"typescript-eslint-parser": "^22.0.0",
|
|
@@ -209,9 +209,10 @@
|
|
|
209
209
|
"lint:fix": "pnpm lint --fix",
|
|
210
210
|
"jest": "cross-env TZ=America/New_York jest",
|
|
211
211
|
"typecheck": "tsc --noEmit -p src/tsconfig.json",
|
|
212
|
-
"test": "pnpm ci-test-common",
|
|
213
212
|
"ci-lint": "pnpm lint",
|
|
214
|
-
"
|
|
215
|
-
"ci-test-
|
|
213
|
+
"test": "pnpm ci-test-unit",
|
|
214
|
+
"ci-test-unit": "env-cmd -f .ci.unit.env pnpm jest --ci --updateSnapshot && git diff --exit-code src",
|
|
215
|
+
"ci-test-integration": "env-cmd -f .ci.integration.env pnpm jest --ci --updateSnapshot",
|
|
216
|
+
"ci-test-bot": "env-cmd -f .ci.bot.env pnpm jest --ci"
|
|
216
217
|
}
|
|
217
218
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../test-helpers/staticTime";
|
|
2
2
|
import { genAccount } from "../../mock/account";
|
|
3
|
-
import { getBalanceHistory } from "../../portfolio";
|
|
3
|
+
import { getBalanceHistory } from "../../portfolio/v2";
|
|
4
4
|
import { getEnv, setEnv } from "../../env";
|
|
5
5
|
import { findCryptoCurrencyById } from "../../currencies";
|
|
6
6
|
import { canBeMigrated } from "../../account";
|
|
@@ -108,8 +108,8 @@ test("allow specifying number of operations", () => {
|
|
|
108
108
|
test("mock generators don't generate negative balances", () => {
|
|
109
109
|
for (let i = 0; i < 100; i++) {
|
|
110
110
|
const account = genAccount("negative?" + i);
|
|
111
|
-
const history = getBalanceHistory(account, "year");
|
|
112
|
-
const invalidDataPoints = history.filter((h) => h.value
|
|
111
|
+
const history = getBalanceHistory(account, "year", 300);
|
|
112
|
+
const invalidDataPoints = history.filter((h) => h.value < 0);
|
|
113
113
|
expect(invalidDataPoints).toMatchObject([]);
|
|
114
114
|
}
|
|
115
115
|
});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import invariant from "invariant";
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
|
-
import { Observable, defer, from } from "rxjs";
|
|
4
3
|
import { reduce, filter, map } from "rxjs/operators";
|
|
5
4
|
import flatMap from "lodash/flatMap";
|
|
6
5
|
import omit from "lodash/omit";
|
|
@@ -32,7 +31,6 @@ import {
|
|
|
32
31
|
toTransactionRaw,
|
|
33
32
|
toTransactionStatusRaw,
|
|
34
33
|
} from "../../transaction";
|
|
35
|
-
import { getBalanceHistoryJS, getRanges } from "../../portfolio";
|
|
36
34
|
import { getAccountBridge, getCurrencyBridge } from "../../bridge";
|
|
37
35
|
import { mockDeviceWithAPDUs, releaseMockDevice } from "./mockDevice";
|
|
38
36
|
import { implicitMigration } from "../../migrations/accounts";
|
|
@@ -69,10 +67,7 @@ export function syncAccount<T extends Transaction>(
|
|
|
69
67
|
.toPromise();
|
|
70
68
|
}
|
|
71
69
|
|
|
72
|
-
export function testBridge<T extends Transaction>(
|
|
73
|
-
family: string,
|
|
74
|
-
data: DatasetTest<T>
|
|
75
|
-
) {
|
|
70
|
+
export function testBridge<T extends Transaction>(data: DatasetTest<T>): void {
|
|
76
71
|
// covers all bridges through many different accounts
|
|
77
72
|
// to test the common shared properties of bridges.
|
|
78
73
|
const accountsRelated: Array<{
|
|
@@ -120,7 +115,7 @@ export function testBridge<T extends Transaction>(
|
|
|
120
115
|
);
|
|
121
116
|
});
|
|
122
117
|
const accountsFoundInScanAccountsMap = {};
|
|
123
|
-
|
|
118
|
+
|
|
124
119
|
currenciesRelated.map(({ currencyData, currency }) => {
|
|
125
120
|
const bridge = getCurrencyBridge(currency);
|
|
126
121
|
|
|
@@ -212,16 +207,6 @@ export function testBridge<T extends Transaction>(
|
|
|
212
207
|
describe("scanAccounts", () => {
|
|
213
208
|
scanAccounts.forEach((sa) => {
|
|
214
209
|
// we start running the scan accounts in parallel!
|
|
215
|
-
preloadObservables.push(
|
|
216
|
-
defer(() =>
|
|
217
|
-
from(
|
|
218
|
-
scanAccountsCached(sa.apdus).then(
|
|
219
|
-
() => null,
|
|
220
|
-
() => {}
|
|
221
|
-
)
|
|
222
|
-
)
|
|
223
|
-
)
|
|
224
|
-
);
|
|
225
210
|
test(sa.name, async () => {
|
|
226
211
|
const accounts = await scanAccountsCached(sa.apdus);
|
|
227
212
|
accounts.forEach((a) => {
|
|
@@ -514,21 +499,6 @@ export function testBridge<T extends Transaction>(
|
|
|
514
499
|
});
|
|
515
500
|
});
|
|
516
501
|
});
|
|
517
|
-
makeTest(
|
|
518
|
-
"account balanceHistory (when exists) matches getBalanceHistoryJS",
|
|
519
|
-
async () => {
|
|
520
|
-
const account = await getSynced();
|
|
521
|
-
getRanges().forEach((range) => {
|
|
522
|
-
const balanceHistory =
|
|
523
|
-
account.balanceHistory && account.balanceHistory[range];
|
|
524
|
-
if (!balanceHistory) return;
|
|
525
|
-
const history = getBalanceHistoryJS(account, range);
|
|
526
|
-
expect(balanceHistory.map((b) => b.value)).toEqual(
|
|
527
|
-
history.map((b) => b.value)
|
|
528
|
-
);
|
|
529
|
-
});
|
|
530
|
-
}
|
|
531
|
-
);
|
|
532
502
|
describe("createTransaction", () => {
|
|
533
503
|
makeTest(
|
|
534
504
|
"empty transaction is an object with empty recipient and zero amount",
|
|
@@ -785,7 +755,4 @@ export function testBridge<T extends Transaction>(
|
|
|
785
755
|
});
|
|
786
756
|
});
|
|
787
757
|
});
|
|
788
|
-
return {
|
|
789
|
-
preloadObservables,
|
|
790
|
-
};
|
|
791
758
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import winston from "winston";
|
|
2
|
+
import { listen } from "@ledgerhq/logs";
|
|
1
3
|
import BigNumber from "bignumber.js";
|
|
2
4
|
import { setSupportedCurrencies } from "../../currencies";
|
|
3
5
|
import { setPlatformVersion } from "../../platform/version";
|
|
6
|
+
import { EnvName, setEnvUnsafe } from "../../env";
|
|
4
7
|
|
|
5
8
|
jest.setTimeout(360000);
|
|
6
9
|
|
|
@@ -62,3 +65,39 @@ setSupportedCurrencies([
|
|
|
62
65
|
"cardano",
|
|
63
66
|
"cardano_testnet",
|
|
64
67
|
]);
|
|
68
|
+
|
|
69
|
+
for (const k in process.env) setEnvUnsafe(k as EnvName, process.env[k]);
|
|
70
|
+
|
|
71
|
+
const { VERBOSE, VERBOSE_FILE } = process.env;
|
|
72
|
+
const logger = winston.createLogger({
|
|
73
|
+
level: "debug",
|
|
74
|
+
transports: [],
|
|
75
|
+
});
|
|
76
|
+
const { format } = winston;
|
|
77
|
+
const { combine, timestamp, json } = format;
|
|
78
|
+
const winstonFormat = combine(timestamp(), json());
|
|
79
|
+
|
|
80
|
+
if (VERBOSE_FILE) {
|
|
81
|
+
logger.add(
|
|
82
|
+
new winston.transports.File({
|
|
83
|
+
format: winstonFormat,
|
|
84
|
+
filename: VERBOSE_FILE,
|
|
85
|
+
level: "debug",
|
|
86
|
+
})
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
logger.add(
|
|
91
|
+
new winston.transports.Console({
|
|
92
|
+
format: winstonFormat,
|
|
93
|
+
silent: !VERBOSE,
|
|
94
|
+
})
|
|
95
|
+
);
|
|
96
|
+
// eslint-disable-next-line no-unused-vars
|
|
97
|
+
listen(({ type, message, ...rest }) => {
|
|
98
|
+
logger.log("debug", {
|
|
99
|
+
message: type + (message ? ": " + message : ""),
|
|
100
|
+
// $FlowFixMe
|
|
101
|
+
...rest,
|
|
102
|
+
});
|
|
103
|
+
});
|
package/src/api/Ripple.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { BigNumber } from "bignumber.js";
|
|
|
2
2
|
import { getEnv } from "../env";
|
|
3
3
|
import network from "../network";
|
|
4
4
|
import { parseCurrencyUnit, getCryptoCurrencyById } from "../currencies";
|
|
5
|
+
import { retry } from "../promise";
|
|
6
|
+
import { NEW_ACCOUNT_ERROR_MESSAGE } from "../families/ripple/bridge/js";
|
|
5
7
|
|
|
6
8
|
const defaultEndpoint = () => getEnv("API_RIPPLE_RPC");
|
|
7
9
|
|
|
@@ -47,74 +49,117 @@ export const getAccountInfo = async (
|
|
|
47
49
|
recipient: string,
|
|
48
50
|
current?: boolean
|
|
49
51
|
): Promise<AccountInfo> => {
|
|
50
|
-
const res =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
52
|
+
const res = async () => {
|
|
53
|
+
const res = await network({
|
|
54
|
+
method: "POST",
|
|
55
|
+
url: `${defaultEndpoint()}`,
|
|
56
|
+
data: {
|
|
57
|
+
method: "account_info",
|
|
58
|
+
params: [
|
|
59
|
+
{
|
|
60
|
+
account: recipient,
|
|
61
|
+
ledger_index: current ? "current" : "validated",
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
if (
|
|
67
|
+
res.data.result.status !== "success" &&
|
|
68
|
+
res.data.result.error !== NEW_ACCOUNT_ERROR_MESSAGE
|
|
69
|
+
) {
|
|
70
|
+
throw new Error(`couldn't fetch account info ${recipient}`);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return res.data.result;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
return retry(() => res(), {
|
|
77
|
+
maxRetry: getEnv("GET_CALLS_RETRY"),
|
|
62
78
|
});
|
|
63
|
-
return res.data.result;
|
|
64
79
|
};
|
|
65
80
|
|
|
66
81
|
export const getServerInfo = async (
|
|
67
82
|
endpointConfig?: string | null | undefined
|
|
68
83
|
): Promise<any> => {
|
|
69
|
-
const res =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
const res = async () => {
|
|
85
|
+
const res = await network({
|
|
86
|
+
method: "POST",
|
|
87
|
+
url: endpointConfig ?? `${defaultEndpoint()}`,
|
|
88
|
+
data: {
|
|
89
|
+
method: "server_info",
|
|
90
|
+
params: [
|
|
91
|
+
{
|
|
92
|
+
ledger_index: "validated",
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
});
|
|
81
97
|
|
|
82
|
-
|
|
98
|
+
if (res.data.result.status !== "success") {
|
|
99
|
+
throw new Error(`couldn't fetch server info`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return res.data.result;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
return retry(() => res(), {
|
|
106
|
+
maxRetry: getEnv("GET_CALLS_RETRY"),
|
|
107
|
+
});
|
|
83
108
|
};
|
|
84
109
|
|
|
85
110
|
export const getTransactions = async (
|
|
86
111
|
address: string,
|
|
87
112
|
options: any | undefined
|
|
88
113
|
): Promise<any> => {
|
|
89
|
-
const res =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
const res = async () => {
|
|
115
|
+
const res = await network({
|
|
116
|
+
method: "POST",
|
|
117
|
+
url: `${defaultEndpoint()}`,
|
|
118
|
+
data: {
|
|
119
|
+
method: "account_tx",
|
|
120
|
+
params: [
|
|
121
|
+
{
|
|
122
|
+
account: address,
|
|
123
|
+
ledger_index: "validated",
|
|
124
|
+
...options,
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
return res.data.result.transactions;
|
|
130
|
+
|
|
131
|
+
if (res.data.result.status !== "success") {
|
|
132
|
+
throw new Error(`couldn't getTransactions for ${address}`);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
return retry(() => res(), {
|
|
137
|
+
maxRetry: getEnv("GET_CALLS_RETRY"),
|
|
102
138
|
});
|
|
103
|
-
return res.data.result.transactions;
|
|
104
139
|
};
|
|
105
140
|
|
|
106
141
|
export default async function getLedgerIndex(): Promise<number> {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
142
|
+
const res = async () => {
|
|
143
|
+
const ledgerResponse = await network({
|
|
144
|
+
method: "POST",
|
|
145
|
+
url: `${defaultEndpoint()}`,
|
|
146
|
+
data: {
|
|
147
|
+
method: "ledger",
|
|
148
|
+
params: [
|
|
149
|
+
{
|
|
150
|
+
ledger_index: "validated",
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
if (ledgerResponse.data.result.status !== "success") {
|
|
157
|
+
throw new Error(`couldn't fetch getLedgerIndex`);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return ledgerResponse.data.result.ledger_index;
|
|
161
|
+
};
|
|
162
|
+
return retry(() => res(), {
|
|
163
|
+
maxRetry: getEnv("GET_CALLS_RETRY"),
|
|
118
164
|
});
|
|
119
|
-
return ledgerResponse.data.result.ledger_index;
|
|
120
165
|
}
|
package/src/apps/support.ts
CHANGED
|
@@ -21,7 +21,9 @@ export function shouldUpgrade(
|
|
|
21
21
|
appName === "Bitcoin"
|
|
22
22
|
) {
|
|
23
23
|
// https://donjon.ledger.com/lsb/010/
|
|
24
|
-
return !semver.satisfies(
|
|
24
|
+
return !semver.satisfies(appVersion || "", ">= 1.4.0", {
|
|
25
|
+
includePrerelease: true, // this will allow pre-release tags that would otherwise return false. E.g. 1.0.0-dev
|
|
26
|
+
});
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
return false;
|
|
@@ -43,7 +45,9 @@ export function mustUpgrade(
|
|
|
43
45
|
const range = appVersionsRequired[appName];
|
|
44
46
|
|
|
45
47
|
if (range) {
|
|
46
|
-
return !semver.satisfies(appVersion, range
|
|
48
|
+
return !semver.satisfies(appVersion || "", range, {
|
|
49
|
+
includePrerelease: true, // this will allow pre-release tags that would otherwise return false. E.g. 1.0.0-dev
|
|
50
|
+
});
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
return false;
|