@ledgerhq/live-common 21.20.0 → 21.21.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.js +4 -0
- package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js +12 -0
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js.map +1 -1
- package/lib/__tests__/test-helpers/setup.js +1 -0
- package/lib/__tests__/test-helpers/setup.js.map +1 -1
- package/lib/account/pending.d.ts +1 -1
- package/lib/api/Ledger.d.ts.map +1 -1
- package/lib/api/Ledger.js +12 -2
- package/lib/api/Ledger.js.map +1 -1
- package/lib/api/explorerConfig/index.d.ts.map +1 -1
- package/lib/api/explorerConfig/index.js +5 -1
- package/lib/api/explorerConfig/index.js.map +1 -1
- package/lib/data/icons/react/cro.d.ts +8 -0
- package/lib/data/icons/react/cro.d.ts.map +1 -0
- package/lib/data/icons/react/cro.js +33 -0
- package/lib/data/icons/react/cro.js.map +1 -0
- package/lib/data/icons/react/index.d.ts +2 -0
- package/lib/data/icons/react/index.d.ts.map +1 -1
- package/lib/data/icons/react/index.js +12 -8
- package/lib/data/icons/react/index.js.map +1 -1
- package/lib/data/icons/react/sol.d.ts +8 -0
- package/lib/data/icons/react/sol.d.ts.map +1 -0
- package/lib/data/icons/react/sol.js +30 -0
- package/lib/data/icons/react/sol.js.map +1 -0
- package/lib/data/icons/reactNative/cro.d.ts +8 -0
- package/lib/data/icons/reactNative/cro.d.ts.map +1 -0
- package/lib/data/icons/reactNative/cro.js +34 -0
- package/lib/data/icons/reactNative/cro.js.map +1 -0
- package/lib/data/icons/reactNative/index.d.ts +2 -0
- package/lib/data/icons/reactNative/index.d.ts.map +1 -1
- package/lib/data/icons/reactNative/index.js +12 -8
- package/lib/data/icons/reactNative/index.js.map +1 -1
- package/lib/data/icons/reactNative/sol.d.ts +8 -0
- package/lib/data/icons/reactNative/sol.d.ts.map +1 -0
- package/lib/data/icons/reactNative/sol.js +31 -0
- package/lib/data/icons/reactNative/sol.js.map +1 -0
- package/lib/derivation.d.ts +7 -0
- package/lib/derivation.d.ts.map +1 -1
- package/lib/derivation.js +16 -1
- package/lib/derivation.js.map +1 -1
- package/lib/errors.d.ts +1 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +1 -0
- package/lib/errors.js.map +1 -1
- package/lib/families/bitcoin/exchange.d.ts +1 -1
- package/lib/families/bitcoin/getAccountNetworkInfo.d.ts.map +1 -1
- package/lib/families/bitcoin/getAccountNetworkInfo.js +3 -2
- package/lib/families/bitcoin/getAccountNetworkInfo.js.map +1 -1
- package/lib/families/bitcoin/js-signOperation.d.ts.map +1 -1
- package/lib/families/bitcoin/js-signOperation.js +7 -2
- package/lib/families/bitcoin/js-signOperation.js.map +1 -1
- package/lib/families/bitcoin/js-synchronisation.d.ts +2 -2
- package/lib/families/bitcoin/specs.d.ts +1 -0
- package/lib/families/bitcoin/specs.d.ts.map +1 -1
- package/lib/families/bitcoin/specs.js +14 -1
- package/lib/families/bitcoin/specs.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +8 -1
- package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts +16 -0
- package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts.map +1 -0
- package/lib/families/bitcoin/wallet-btc/crypto/decred.js +248 -0
- package/lib/families/bitcoin/wallet-btc/crypto/decred.js.map +1 -0
- package/lib/families/bitcoin/wallet-btc/crypto/factory.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/factory.js +5 -0
- package/lib/families/bitcoin/wallet-btc/crypto/factory.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/index.d.ts +1 -0
- package/lib/families/bitcoin/wallet-btc/crypto/index.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/index.js +3 -1
- package/lib/families/bitcoin/wallet-btc/crypto/index.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js +13 -3
- package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/zec.js +8 -1
- package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/zen.js +8 -1
- package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/utils.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/utils.js +6 -1
- package/lib/families/bitcoin/wallet-btc/utils.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/wallet.d.ts +2 -0
- package/lib/families/bitcoin/wallet-btc/wallet.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/wallet.js +15 -7
- package/lib/families/bitcoin/wallet-btc/wallet.js.map +1 -1
- package/lib/families/crypto_org/js-synchronisation.d.ts +2 -2
- package/lib/families/elrond/js-synchronisation.d.ts +2 -2
- package/lib/families/ethereum/synchronisation.d.ts.map +1 -1
- package/lib/families/ethereum/synchronisation.js +2 -2
- package/lib/families/ethereum/synchronisation.js.map +1 -1
- package/lib/families/polkadot/api/sidecar.js +4 -2
- package/lib/families/polkadot/api/sidecar.js.map +1 -1
- package/lib/families/polkadot/js-synchronisation.d.ts +2 -2
- package/lib/families/solana/api/cached.d.ts +5 -0
- package/lib/families/solana/api/cached.d.ts.map +1 -0
- package/lib/families/solana/api/cached.js +80 -0
- package/lib/families/solana/api/cached.js.map +1 -0
- package/lib/families/solana/api/chain/account/index.d.ts +2 -0
- package/lib/families/solana/api/chain/account/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/account/index.js +14 -0
- package/lib/families/solana/api/chain/account/index.js.map +1 -0
- package/lib/families/solana/api/chain/account/parser.d.ts +5 -0
- package/lib/families/solana/api/chain/account/parser.d.ts.map +1 -0
- package/lib/families/solana/api/chain/account/parser.js +33 -0
- package/lib/families/solana/api/chain/account/parser.js.map +1 -0
- package/lib/families/solana/api/chain/account/stake.d.ts +237 -0
- package/lib/families/solana/api/chain/account/stake.d.ts.map +1 -0
- package/lib/families/solana/api/chain/account/stake.js +43 -0
- package/lib/families/solana/api/chain/account/stake.js.map +1 -0
- package/lib/families/solana/api/chain/account/token.d.ts +116 -0
- package/lib/families/solana/api/chain/account/token.d.ts.map +1 -0
- package/lib/families/solana/api/chain/account/token.js +42 -0
- package/lib/families/solana/api/chain/account/token.js.map +1 -0
- package/lib/families/solana/api/chain/index.d.ts +22 -0
- package/lib/families/solana/api/chain/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/index.js +54 -0
- package/lib/families/solana/api/chain/index.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/index.d.ts +15 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/index.js +21 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/index.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/types.d.ts +30 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/types.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/types.js +19 -0
- package/lib/families/solana/api/chain/instruction/associated-token-account/types.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/memo/index.d.ts +15 -0
- package/lib/families/solana/api/chain/instruction/memo/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/memo/index.js +14 -0
- package/lib/families/solana/api/chain/instruction/memo/index.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/memo/types.d.ts +21 -0
- package/lib/families/solana/api/chain/instruction/memo/types.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/memo/types.js +16 -0
- package/lib/families/solana/api/chain/instruction/memo/types.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/stake/index.d.ts +15 -0
- package/lib/families/solana/api/chain/instruction/stake/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/stake/index.js +20 -0
- package/lib/families/solana/api/chain/instruction/stake/index.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/stake/types.d.ts +215 -0
- package/lib/families/solana/api/chain/instruction/stake/types.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/stake/types.js +80 -0
- package/lib/families/solana/api/chain/instruction/stake/types.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/token/index.d.ts +15 -0
- package/lib/families/solana/api/chain/instruction/token/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/token/index.js +20 -0
- package/lib/families/solana/api/chain/instruction/token/index.js.map +1 -0
- package/lib/families/solana/api/chain/instruction/token/types.d.ts +497 -0
- package/lib/families/solana/api/chain/instruction/token/types.d.ts.map +1 -0
- package/lib/families/solana/api/chain/instruction/token/types.js +205 -0
- package/lib/families/solana/api/chain/instruction/token/types.js.map +1 -0
- package/lib/families/solana/api/chain/program/constants.d.ts +11 -0
- package/lib/families/solana/api/chain/program/constants.d.ts.map +1 -0
- package/lib/families/solana/api/chain/program/constants.js +14 -0
- package/lib/families/solana/api/chain/program/constants.js.map +1 -0
- package/lib/families/solana/api/chain/program/index.d.ts +2 -0
- package/lib/families/solana/api/chain/program/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/program/index.js +14 -0
- package/lib/families/solana/api/chain/program/index.js.map +1 -0
- package/lib/families/solana/api/chain/program/parser.d.ts +30 -0
- package/lib/families/solana/api/chain/program/parser.d.ts.map +1 -0
- package/lib/families/solana/api/chain/program/parser.js +70 -0
- package/lib/families/solana/api/chain/program/parser.js.map +1 -0
- package/lib/families/solana/api/chain/validators/bignum.d.ts +3 -0
- package/lib/families/solana/api/chain/validators/bignum.d.ts.map +1 -0
- package/lib/families/solana/api/chain/validators/bignum.js +11 -0
- package/lib/families/solana/api/chain/validators/bignum.js.map +1 -0
- package/lib/families/solana/api/chain/validators/index.d.ts +10 -0
- package/lib/families/solana/api/chain/validators/index.d.ts.map +1 -0
- package/lib/families/solana/api/chain/validators/index.js +10 -0
- package/lib/families/solana/api/chain/validators/index.js.map +1 -0
- package/lib/families/solana/api/chain/validators/pubkey.d.ts +3 -0
- package/lib/families/solana/api/chain/validators/pubkey.d.ts.map +1 -0
- package/lib/families/solana/api/chain/validators/pubkey.js +7 -0
- package/lib/families/solana/api/chain/validators/pubkey.js.map +1 -0
- package/lib/families/solana/api/chain/web3.d.ts +29 -0
- package/lib/families/solana/api/chain/web3.d.ts.map +1 -0
- package/lib/families/solana/api/chain/web3.js +287 -0
- package/lib/families/solana/api/chain/web3.js.map +1 -0
- package/lib/families/solana/api/index.d.ts +5 -0
- package/lib/families/solana/api/index.d.ts.map +1 -0
- package/lib/families/solana/api/index.js +21 -0
- package/lib/families/solana/api/index.js.map +1 -0
- package/lib/families/solana/api/logged.d.ts +3 -0
- package/lib/families/solana/api/logged.d.ts.map +1 -0
- package/lib/families/solana/api/logged.js +53 -0
- package/lib/families/solana/api/logged.js.map +1 -0
- package/lib/families/solana/api/queued.d.ts +3 -0
- package/lib/families/solana/api/queued.d.ts.map +1 -0
- package/lib/families/solana/api/queued.js +31 -0
- package/lib/families/solana/api/queued.js.map +1 -0
- package/lib/families/solana/bridge/bridge.d.ts +12 -0
- package/lib/families/solana/bridge/bridge.d.ts.map +1 -0
- package/lib/families/solana/bridge/bridge.js +218 -0
- package/lib/families/solana/bridge/bridge.js.map +1 -0
- package/lib/families/solana/bridge/js.d.ts +6 -0
- package/lib/families/solana/bridge/js.d.ts.map +1 -0
- package/lib/families/solana/bridge/js.js +15 -0
- package/lib/families/solana/bridge/js.js.map +1 -0
- package/lib/families/solana/bridge/mock-data.d.ts +186 -0
- package/lib/families/solana/bridge/mock-data.d.ts.map +1 -0
- package/lib/families/solana/bridge/mock-data.js +23 -0
- package/lib/families/solana/bridge/mock-data.js.map +1 -0
- package/lib/families/solana/bridge/mock.d.ts +6 -0
- package/lib/families/solana/bridge/mock.d.ts.map +1 -0
- package/lib/families/solana/bridge/mock.js +75 -0
- package/lib/families/solana/bridge/mock.js.map +1 -0
- package/lib/families/solana/cli-transaction.d.ts +14 -0
- package/lib/families/solana/cli-transaction.d.ts.map +1 -0
- package/lib/families/solana/cli-transaction.js +137 -0
- package/lib/families/solana/cli-transaction.js.map +1 -0
- package/lib/families/solana/datasets/solana.scanAccounts.1.d.ts +6 -0
- package/lib/families/solana/datasets/solana.scanAccounts.1.d.ts.map +1 -0
- package/lib/families/solana/datasets/solana.scanAccounts.1.js +7 -0
- package/lib/families/solana/datasets/solana.scanAccounts.1.js.map +1 -0
- package/lib/families/solana/deviceTransactionConfig.d.ts +10 -0
- package/lib/families/solana/deviceTransactionConfig.d.ts.map +1 -0
- package/lib/families/solana/deviceTransactionConfig.js +121 -0
- package/lib/families/solana/deviceTransactionConfig.js.map +1 -0
- package/lib/families/solana/errors.d.ts +25 -0
- package/lib/families/solana/errors.d.ts.map +1 -0
- package/lib/families/solana/errors.js +13 -0
- package/lib/families/solana/errors.js.map +1 -0
- package/lib/families/solana/hw-getAddress.d.ts +4 -0
- package/lib/families/solana/hw-getAddress.d.ts.map +1 -0
- package/lib/families/solana/hw-getAddress.js +66 -0
- package/lib/families/solana/hw-getAddress.js.map +1 -0
- package/lib/families/solana/js-broadcast.d.ts +7 -0
- package/lib/families/solana/js-broadcast.d.ts.map +1 -0
- package/lib/families/solana/js-broadcast.js +59 -0
- package/lib/families/solana/js-broadcast.js.map +1 -0
- package/lib/families/solana/js-buildTransaction.d.ts +6 -0
- package/lib/families/solana/js-buildTransaction.d.ts.map +1 -0
- package/lib/families/solana/js-buildTransaction.js +123 -0
- package/lib/families/solana/js-buildTransaction.js.map +1 -0
- package/lib/families/solana/js-createTransaction.d.ts +6 -0
- package/lib/families/solana/js-createTransaction.d.ts.map +1 -0
- package/lib/families/solana/js-createTransaction.js +35 -0
- package/lib/families/solana/js-createTransaction.js.map +1 -0
- package/lib/families/solana/js-estimateMaxSpendable.d.ts +7 -0
- package/lib/families/solana/js-estimateMaxSpendable.d.ts.map +1 -0
- package/lib/families/solana/js-estimateMaxSpendable.js +72 -0
- package/lib/families/solana/js-estimateMaxSpendable.js.map +1 -0
- package/lib/families/solana/js-getTransactionStatus.d.ts +5 -0
- package/lib/families/solana/js-getTransactionStatus.d.ts.map +1 -0
- package/lib/families/solana/js-getTransactionStatus.js +106 -0
- package/lib/families/solana/js-getTransactionStatus.js.map +1 -0
- package/lib/families/solana/js-prepareTransaction.d.ts +6 -0
- package/lib/families/solana/js-prepareTransaction.d.ts.map +1 -0
- package/lib/families/solana/js-prepareTransaction.js +380 -0
- package/lib/families/solana/js-prepareTransaction.js.map +1 -0
- package/lib/families/solana/js-signOperation.d.ts +10 -0
- package/lib/families/solana/js-signOperation.d.ts.map +1 -0
- package/lib/families/solana/js-signOperation.js +193 -0
- package/lib/families/solana/js-signOperation.js.map +1 -0
- package/lib/families/solana/js-synchronization.d.ts +5 -0
- package/lib/families/solana/js-synchronization.d.ts.map +1 -0
- package/lib/families/solana/js-synchronization.js +464 -0
- package/lib/families/solana/js-synchronization.js.map +1 -0
- package/lib/families/solana/logic.d.ts +15 -0
- package/lib/families/solana/logic.d.ts.map +1 -0
- package/lib/families/solana/logic.js +49 -0
- package/lib/families/solana/logic.js.map +1 -0
- package/lib/families/solana/specs.d.ts +7 -0
- package/lib/families/solana/specs.d.ts.map +1 -0
- package/lib/families/solana/specs.js +100 -0
- package/lib/families/solana/specs.js.map +1 -0
- package/lib/families/solana/speculos-deviceActions.d.ts +8 -0
- package/lib/families/solana/speculos-deviceActions.d.ts.map +1 -0
- package/lib/families/solana/speculos-deviceActions.js +60 -0
- package/lib/families/solana/speculos-deviceActions.js.map +1 -0
- package/lib/families/solana/test-dataset.d.ts +5 -0
- package/lib/families/solana/test-dataset.d.ts.map +1 -0
- package/lib/families/solana/test-dataset.js +396 -0
- package/lib/families/solana/test-dataset.js.map +1 -0
- package/lib/families/solana/transaction.d.ts +12 -0
- package/lib/families/solana/transaction.d.ts.map +1 -0
- package/lib/families/solana/transaction.js +109 -0
- package/lib/families/solana/transaction.js.map +1 -0
- package/lib/families/solana/types.d.ts +84 -0
- package/lib/families/solana/types.d.ts.map +1 -0
- package/lib/families/solana/types.js +6 -0
- package/lib/families/solana/types.js.map +1 -0
- package/lib/families/solana/utils.d.ts +10 -0
- package/lib/families/solana/utils.d.ts.map +1 -0
- package/lib/families/solana/utils.js +194 -0
- package/lib/families/solana/utils.js.map +1 -0
- package/lib/families/stellar/js-synchronization.d.ts +2 -2
- package/lib/generated/bridge/js.d.ts +4 -0
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +8 -6
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/generated/bridge/mock.d.ts +4 -0
- package/lib/generated/bridge/mock.d.ts.map +1 -1
- package/lib/generated/bridge/mock.js +6 -4
- package/lib/generated/bridge/mock.js.map +1 -1
- package/lib/generated/cli-transaction.d.ts +9 -0
- package/lib/generated/cli-transaction.d.ts.map +1 -1
- package/lib/generated/cli-transaction.js +8 -6
- package/lib/generated/cli-transaction.js.map +1 -1
- package/lib/generated/deviceTransactionConfig.d.ts +2 -0
- package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
- package/lib/generated/deviceTransactionConfig.js +8 -6
- package/lib/generated/deviceTransactionConfig.js.map +1 -1
- package/lib/generated/exchange.d.ts +1 -1
- package/lib/generated/hw-getAddress.d.ts +1 -0
- package/lib/generated/hw-getAddress.d.ts.map +1 -1
- package/lib/generated/hw-getAddress.js +8 -6
- package/lib/generated/hw-getAddress.js.map +1 -1
- package/lib/generated/specs.d.ts +4 -0
- package/lib/generated/specs.d.ts.map +1 -1
- package/lib/generated/specs.js +8 -6
- package/lib/generated/specs.js.map +1 -1
- package/lib/generated/speculos-deviceActions.d.ts +3 -0
- package/lib/generated/speculos-deviceActions.d.ts.map +1 -1
- package/lib/generated/speculos-deviceActions.js +8 -6
- package/lib/generated/speculos-deviceActions.js.map +1 -1
- package/lib/generated/test-dataset.d.ts +1 -0
- package/lib/generated/test-dataset.d.ts.map +1 -1
- package/lib/generated/test-dataset.js +8 -6
- package/lib/generated/test-dataset.js.map +1 -1
- package/lib/generated/transaction.d.ts +5 -0
- package/lib/generated/transaction.d.ts.map +1 -1
- package/lib/generated/transaction.js +8 -6
- package/lib/generated/transaction.js.map +1 -1
- package/lib/generated/types.d.ts +12 -6
- package/lib/generated/types.d.ts.map +1 -1
- package/lib/generated/types.js +5 -3
- package/lib/generated/types.js.map +1 -1
- package/lib/nft/helpers.js +1 -1
- package/lib/nft/helpers.js.map +1 -1
- package/package.json +8 -4
- package/src/__tests__/__snapshots__/all.libcore.ts.snap +113 -0
- package/src/__tests__/families/bitcoin/wallet-btc/utils.test.ts +4 -0
- package/src/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.ts +12 -0
- package/src/__tests__/test-helpers/setup.ts +1 -0
- package/src/api/Ledger.ts +11 -1
- package/src/api/explorerConfig/index.ts +1 -3
- package/src/data/icons/react/cro.tsx +12 -0
- package/src/data/icons/react/index.tsx +2 -0
- package/src/data/icons/react/sol.tsx +12 -0
- package/src/data/icons/reactNative/cro.tsx +13 -0
- package/src/data/icons/reactNative/index.tsx +2 -0
- package/src/data/icons/reactNative/sol.tsx +13 -0
- package/src/data/icons/svg/CRO.svg +6 -0
- package/src/data/icons/svg/SOL.svg +3 -0
- package/src/derivation.ts +13 -0
- package/src/errors.ts +1 -0
- package/src/families/bitcoin/getAccountNetworkInfo.ts +5 -2
- package/src/families/bitcoin/js-signOperation.ts +4 -7
- package/src/families/bitcoin/specs.ts +16 -0
- package/src/families/bitcoin/wallet-btc/crypto/base.ts +1 -1
- package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +8 -1
- package/src/families/bitcoin/wallet-btc/crypto/decred.ts +251 -0
- package/src/families/bitcoin/wallet-btc/crypto/factory.ts +5 -0
- package/src/families/bitcoin/wallet-btc/crypto/index.ts +1 -0
- package/src/families/bitcoin/wallet-btc/crypto/litecoin.ts +13 -3
- package/src/families/bitcoin/wallet-btc/crypto/types.ts +1 -0
- package/src/families/bitcoin/wallet-btc/crypto/zec.ts +8 -1
- package/src/families/bitcoin/wallet-btc/crypto/zen.ts +8 -1
- package/src/families/bitcoin/wallet-btc/utils.ts +6 -1
- package/src/families/bitcoin/wallet-btc/wallet.ts +18 -5
- package/src/families/ethereum/synchronisation.ts +5 -2
- package/src/families/polkadot/api/sidecar.ts +2 -2
- package/src/families/solana/api/cached.ts +89 -0
- package/src/families/solana/api/chain/account/index.ts +1 -0
- package/src/families/solana/api/chain/account/parser.ts +35 -0
- package/src/families/solana/api/chain/account/stake.ts +50 -0
- package/src/families/solana/api/chain/account/token.ts +63 -0
- package/src/families/solana/api/chain/index.ts +115 -0
- package/src/families/solana/api/chain/instruction/associated-token-account/index.ts +37 -0
- package/src/families/solana/api/chain/instruction/associated-token-account/types.ts +23 -0
- package/src/families/solana/api/chain/instruction/memo/index.ts +24 -0
- package/src/families/solana/api/chain/instruction/memo/types.ts +18 -0
- package/src/families/solana/api/chain/instruction/stake/index.ts +29 -0
- package/src/families/solana/api/chain/instruction/stake/types.ts +95 -0
- package/src/families/solana/api/chain/instruction/token/index.ts +30 -0
- package/src/families/solana/api/chain/instruction/token/types.ts +237 -0
- package/src/families/solana/api/chain/program/constants.ts +10 -0
- package/src/families/solana/api/chain/program/index.ts +1 -0
- package/src/families/solana/api/chain/program/parser.ts +122 -0
- package/src/families/solana/api/chain/validators/bignum.ts +11 -0
- package/src/families/solana/api/chain/validators/index.ts +9 -0
- package/src/families/solana/api/chain/validators/pubkey.ts +8 -0
- package/src/families/solana/api/chain/web3.ts +258 -0
- package/src/families/solana/api/index.ts +4 -0
- package/src/families/solana/api/logged.ts +50 -0
- package/src/families/solana/api/queued.ts +23 -0
- package/src/families/solana/bridge/bridge.ts +169 -0
- package/src/families/solana/bridge/js.ts +28 -0
- package/src/families/solana/bridge/mock-data.ts +22 -0
- package/src/families/solana/bridge/mock.ts +80 -0
- package/src/families/solana/cli-transaction.ts +175 -0
- package/src/families/solana/datasets/solana.scanAccounts.1.ts +9 -0
- package/src/families/solana/deviceTransactionConfig.ts +160 -0
- package/src/families/solana/errors.ts +32 -0
- package/src/families/solana/hw-getAddress.ts +20 -0
- package/src/families/solana/js-broadcast.ts +20 -0
- package/src/families/solana/js-buildTransaction.ts +75 -0
- package/src/families/solana/js-createTransaction.ts +27 -0
- package/src/families/solana/js-estimateMaxSpendable.ts +29 -0
- package/src/families/solana/js-getTransactionStatus.ts +78 -0
- package/src/families/solana/js-prepareTransaction.ts +423 -0
- package/src/families/solana/js-signOperation.ts +230 -0
- package/src/families/solana/js-synchronization.ts +544 -0
- package/src/families/solana/logic.ts +52 -0
- package/src/families/solana/specs.ts +100 -0
- package/src/families/solana/speculos-deviceActions.ts +59 -0
- package/src/families/solana/test-dataset.ts +572 -0
- package/src/families/solana/transaction.ts +146 -0
- package/src/families/solana/types.ts +110 -0
- package/src/families/solana/utils.ts +80 -0
- package/src/generated/bridge/js.ts +3 -0
- package/src/generated/bridge/mock.ts +3 -0
- package/src/generated/cli-transaction.ts +3 -0
- package/src/generated/deviceTransactionConfig.ts +3 -0
- package/src/generated/hw-getAddress.ts +3 -0
- package/src/generated/specs.ts +3 -0
- package/src/generated/speculos-deviceActions.ts +3 -0
- package/src/generated/test-dataset.ts +3 -0
- package/src/generated/transaction.ts +3 -0
- package/src/generated/types.ts +14 -0
- package/src/nft/helpers.ts +1 -1
|
@@ -61943,6 +61943,119 @@ Array [
|
|
|
61943
61943
|
]
|
|
61944
61944
|
`;
|
|
61945
61945
|
|
|
61946
|
+
exports[`solana currency bridge scanAccounts solana seed 1 1`] = `
|
|
61947
|
+
Array [
|
|
61948
|
+
Object {
|
|
61949
|
+
"balance": "83389840",
|
|
61950
|
+
"currencyId": "solana",
|
|
61951
|
+
"derivationMode": "solanaMain",
|
|
61952
|
+
"freshAddress": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
|
|
61953
|
+
"freshAddressPath": "44'/501'",
|
|
61954
|
+
"freshAddresses": Array [
|
|
61955
|
+
Object {
|
|
61956
|
+
"address": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
|
|
61957
|
+
"derivationPath": "44'/501'",
|
|
61958
|
+
},
|
|
61959
|
+
],
|
|
61960
|
+
"id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
|
|
61961
|
+
"index": 0,
|
|
61962
|
+
"name": "Solana 1",
|
|
61963
|
+
"nfts": undefined,
|
|
61964
|
+
"operationsCount": 2,
|
|
61965
|
+
"pendingOperations": Array [],
|
|
61966
|
+
"seedIdentifier": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
|
|
61967
|
+
"spendableBalance": "83389840",
|
|
61968
|
+
"starred": false,
|
|
61969
|
+
"swapHistory": Array [],
|
|
61970
|
+
"syncHash": undefined,
|
|
61971
|
+
"unitMagnitude": 9,
|
|
61972
|
+
"used": true,
|
|
61973
|
+
},
|
|
61974
|
+
Object {
|
|
61975
|
+
"balance": "0",
|
|
61976
|
+
"currencyId": "solana",
|
|
61977
|
+
"derivationMode": "solanaSub",
|
|
61978
|
+
"freshAddress": "6rEgdtB3sgjKJnRE172YEr9z6qUyr4nFW28vJokuD36A",
|
|
61979
|
+
"freshAddressPath": "44'/501'/0'",
|
|
61980
|
+
"freshAddresses": Array [
|
|
61981
|
+
Object {
|
|
61982
|
+
"address": "6rEgdtB3sgjKJnRE172YEr9z6qUyr4nFW28vJokuD36A",
|
|
61983
|
+
"derivationPath": "44'/501'/0'",
|
|
61984
|
+
},
|
|
61985
|
+
],
|
|
61986
|
+
"id": "js:2:solana:6rEgdtB3sgjKJnRE172YEr9z6qUyr4nFW28vJokuD36A:solanaSub",
|
|
61987
|
+
"index": 0,
|
|
61988
|
+
"name": "Solana 1",
|
|
61989
|
+
"nfts": undefined,
|
|
61990
|
+
"operationsCount": 0,
|
|
61991
|
+
"pendingOperations": Array [],
|
|
61992
|
+
"seedIdentifier": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
|
|
61993
|
+
"spendableBalance": "0",
|
|
61994
|
+
"starred": false,
|
|
61995
|
+
"swapHistory": Array [],
|
|
61996
|
+
"syncHash": undefined,
|
|
61997
|
+
"unitMagnitude": 9,
|
|
61998
|
+
"used": false,
|
|
61999
|
+
},
|
|
62000
|
+
]
|
|
62001
|
+
`;
|
|
62002
|
+
|
|
62003
|
+
exports[`solana currency bridge scanAccounts solana seed 1 2`] = `
|
|
62004
|
+
Array [
|
|
62005
|
+
Array [
|
|
62006
|
+
Object {
|
|
62007
|
+
"accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
|
|
62008
|
+
"blockHash": "4NSL4VrfWd2eUccMD95dLQsdy5UGz8yhokpfH1et1R2c",
|
|
62009
|
+
"blockHeight": 108520722,
|
|
62010
|
+
"contract": undefined,
|
|
62011
|
+
"extra": Object {
|
|
62012
|
+
"memo": undefined,
|
|
62013
|
+
},
|
|
62014
|
+
"fee": "0",
|
|
62015
|
+
"hasFailed": false,
|
|
62016
|
+
"hash": "25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna",
|
|
62017
|
+
"id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna-IN",
|
|
62018
|
+
"operator": undefined,
|
|
62019
|
+
"recipients": Array [
|
|
62020
|
+
"AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
|
|
62021
|
+
],
|
|
62022
|
+
"senders": Array [
|
|
62023
|
+
"7CZgkK494jMdoY8xpXY3ViLjpDGMbNikCzMtAT5cAjKk",
|
|
62024
|
+
],
|
|
62025
|
+
"standard": undefined,
|
|
62026
|
+
"tokenId": undefined,
|
|
62027
|
+
"type": "IN",
|
|
62028
|
+
"value": "93394840",
|
|
62029
|
+
},
|
|
62030
|
+
Object {
|
|
62031
|
+
"accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
|
|
62032
|
+
"blockHash": "9tPbgLaETEenufCt5SzXMuWijgFJj549W9j5cJLbaogn",
|
|
62033
|
+
"blockHeight": 108521109,
|
|
62034
|
+
"contract": undefined,
|
|
62035
|
+
"extra": Object {
|
|
62036
|
+
"memo": undefined,
|
|
62037
|
+
},
|
|
62038
|
+
"fee": "5000",
|
|
62039
|
+
"hasFailed": false,
|
|
62040
|
+
"hash": "A29zPnK1jPr2tGziTnaAvSnadYR2kLCv9sPywj9FJsaEFjtpwmUonspN3WJgz4u6XWmjtVpoFsDrygEnvW51cgk",
|
|
62041
|
+
"id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-A29zPnK1jPr2tGziTnaAvSnadYR2kLCv9sPywj9FJsaEFjtpwmUonspN3WJgz4u6XWmjtVpoFsDrygEnvW51cgk-OUT",
|
|
62042
|
+
"operator": undefined,
|
|
62043
|
+
"recipients": Array [
|
|
62044
|
+
"8RtwWeqdFz4EFuZU3MAadfYMWSdRMamjFrfq6BXkHuNN",
|
|
62045
|
+
],
|
|
62046
|
+
"senders": Array [
|
|
62047
|
+
"AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
|
|
62048
|
+
],
|
|
62049
|
+
"standard": undefined,
|
|
62050
|
+
"tokenId": undefined,
|
|
62051
|
+
"type": "OUT",
|
|
62052
|
+
"value": "10005000",
|
|
62053
|
+
},
|
|
62054
|
+
],
|
|
62055
|
+
Array [],
|
|
62056
|
+
]
|
|
62057
|
+
`;
|
|
62058
|
+
|
|
61946
62059
|
exports[`stellar currency bridge scanAccounts stellar seed 1 1`] = `
|
|
61947
62060
|
Array [
|
|
61948
62061
|
Object {
|
|
@@ -177,6 +177,8 @@ describe("Unit tests for various utils functions", () => {
|
|
|
177
177
|
validateAddrs(["ETx91CT52eBFYWbe4Yht5BpZNigWg2EkqJ"], "viacoin", true);
|
|
178
178
|
validateAddrs(["7i1KkJHUjfw2MrbtXK5DQkhz7zd36st9GR"], "stakenet", true);
|
|
179
179
|
validateAddrs(["S6NMcEfYbavHrP3Uo1wbEUvKhAbKeMuga8"], "stealthcoin", true);
|
|
180
|
+
validateAddrs(["Dso59DoPRkfATcZgHGgfh9mpku7taw9srAv"], "decred", true);
|
|
181
|
+
validateAddrs(["Dcck4QrFF5wuLzQpwxb5evhSRD7ZTsJZwuh"], "decred", true);
|
|
180
182
|
|
|
181
183
|
validateAddrs(
|
|
182
184
|
["bitcoincash:qzl0x0982hy9xrh99wdnejx4eecdn02jv58as5p599"],
|
|
@@ -210,6 +212,8 @@ describe("Unit tests for various utils functions", () => {
|
|
|
210
212
|
validateAddrs(["ETx91CT52eBFYWbe4Yht5BpZNigWg2Ekqq"], "viacoin", false);
|
|
211
213
|
validateAddrs(["7i1KkJHUjfw2MrbtXK5DQkhz7zd36st9GG"], "stakenet", false);
|
|
212
214
|
validateAddrs(["S6NMcEfYbavHrP3Uo1wbEUvKhAbKeMugaa"], "stealthcoin", false);
|
|
215
|
+
validateAddrs(["Dso59DoPRkfATcZgHGgff9mpku7taw9srAv"], "decred", false);
|
|
216
|
+
validateAddrs(["Dcck4QrFF5wuLQzpwxb5evhSRD7ZTsJZwuh"], "decred", false);
|
|
213
217
|
});
|
|
214
218
|
});
|
|
215
219
|
|
|
@@ -217,6 +217,15 @@ describe("xpub integration sync", () => {
|
|
|
217
217
|
coin: "xst",
|
|
218
218
|
explorerVersion: "v2",
|
|
219
219
|
},
|
|
220
|
+
{
|
|
221
|
+
xpub: "dpubZFUiMExUREbqJQVJkfXSs4wjUb1jwVkoofnPK8Mt95j3PanCyq9Mc4aFnWtRZkhci9ZYPVLZybVLMMkS6g1nKBTN4899KJwGeVBvyumvcjW",
|
|
222
|
+
derivationMode: DerivationModes.LEGACY,
|
|
223
|
+
addresses: 6,
|
|
224
|
+
balance: 0,
|
|
225
|
+
network: coininfo.decred.main.toBitcoinJS(),
|
|
226
|
+
coin: "dcr",
|
|
227
|
+
explorerVersion: "v3",
|
|
228
|
+
},
|
|
220
229
|
];
|
|
221
230
|
|
|
222
231
|
walletDatasets.forEach((dataset) =>
|
|
@@ -284,6 +293,9 @@ describe("xpub integration sync", () => {
|
|
|
284
293
|
case "zen": // zencash
|
|
285
294
|
crypto = new currency.Zen({ network: dataset.network });
|
|
286
295
|
break;
|
|
296
|
+
case "dcr": // decred
|
|
297
|
+
crypto = new currency.Decred({ network: dataset.network });
|
|
298
|
+
break;
|
|
287
299
|
default:
|
|
288
300
|
throw new Error("Should not be reachable");
|
|
289
301
|
}
|
package/src/api/Ledger.ts
CHANGED
|
@@ -25,7 +25,17 @@ export const findCurrencyExplorer = (
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
if (config.experimental && getEnv("EXPERIMENTAL_EXPLORERS")) {
|
|
28
|
-
const
|
|
28
|
+
const base = config.experimental.base;
|
|
29
|
+
let version = config.experimental.version;
|
|
30
|
+
const CURRENCIES_JS = getEnv("EXPERIMENTAL_CURRENCIES_JS_BRIDGE");
|
|
31
|
+
let useJS = false;
|
|
32
|
+
if (CURRENCIES_JS) {
|
|
33
|
+
useJS = CURRENCIES_JS.split(",").includes(currency.id);
|
|
34
|
+
}
|
|
35
|
+
//V2 explorer for doge and bitcoin cash when libcore is used
|
|
36
|
+
if ((currency.id === "bitcoin_cash" || currency.id === "doge") && !useJS) {
|
|
37
|
+
version = "v2";
|
|
38
|
+
}
|
|
29
39
|
return {
|
|
30
40
|
endpoint: getEnv(base),
|
|
31
41
|
id,
|
|
@@ -12,17 +12,15 @@ const initialExplorerConfig: FullConfig = {
|
|
|
12
12
|
},
|
|
13
13
|
},
|
|
14
14
|
bitcoin_cash: {
|
|
15
|
-
id: "
|
|
15
|
+
id: "bch",
|
|
16
16
|
stable: {
|
|
17
17
|
base: "EXPLORER",
|
|
18
18
|
version: "v2",
|
|
19
19
|
},
|
|
20
|
-
/*
|
|
21
20
|
experimental: {
|
|
22
21
|
base: "EXPLORER",
|
|
23
22
|
version: "v3",
|
|
24
23
|
},
|
|
25
|
-
*/
|
|
26
24
|
},
|
|
27
25
|
bitcoin_gold: {
|
|
28
26
|
id: "btg",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
interface Props {
|
|
4
|
+
size: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
function cro({size, color = "currentColor"}: Props) {
|
|
9
|
+
return <svg width={size} height={size} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.9999 2L3.5 7.01119V16.9888L11.9999 22L20.4997 16.9888V7.01119L11.9999 2ZM17.9894 15.5123L11.9999 19.0022L6.01032 15.5123V8.4877L11.9999 4.95302L17.9894 8.4877V15.5123Z" fill={color} /><path d="M11.9999 4.95302V2L3.5 7.01119V16.9888L11.9999 22V19.0022L6.01032 15.5123V8.4877L11.9999 4.95302Z" fill={color} /><path d="M11.9999 19.0022L12.0001 21.9553L20.5 16.9441L20.4997 7.01119L11.9999 2V4.95302L17.9897 8.44295V15.4676L11.9999 19.0022Z" fill={color} /><path d="M16.0081 14.3039L12.0004 16.6305L8.03671 14.3039V9.65061L12.0004 7.32399L16.0081 9.65061V14.3039Z" fill={color} /></svg>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default cro;
|
|
@@ -95,6 +95,7 @@ export { default as colx } from "./colx";
|
|
|
95
95
|
export { default as comp } from "./comp";
|
|
96
96
|
export { default as coqui } from "./coqui";
|
|
97
97
|
export { default as cred } from "./cred";
|
|
98
|
+
export { default as cro } from "./cro";
|
|
98
99
|
export { default as crpt } from "./crpt";
|
|
99
100
|
export { default as crw } from "./crw";
|
|
100
101
|
export { default as cs } from "./cs";
|
|
@@ -347,6 +348,7 @@ export { default as sngls } from "./sngls";
|
|
|
347
348
|
export { default as snm } from "./snm";
|
|
348
349
|
export { default as snt } from "./snt";
|
|
349
350
|
export { default as soc } from "./soc";
|
|
351
|
+
export { default as sol } from "./sol";
|
|
350
352
|
export { default as spank } from "./spank";
|
|
351
353
|
export { default as sphtx } from "./sphtx";
|
|
352
354
|
export { default as srn } from "./srn";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
interface Props {
|
|
4
|
+
size: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
function sol({size, color = "currentColor"}: Props) {
|
|
9
|
+
return <svg width={size} height={size} viewBox="0 0 24 24" fill="none"><path d="M9.925 18.687a.59.59 0 01.415-.17h14.366a.29.29 0 01.207.497l-2.838 2.815a.59.59 0 01-.415.171H7.294a.291.291 0 01-.207-.498l2.838-2.815zm0-10.517A.59.59 0 0110.34 8h14.366c.261 0 .392.314.207.498l-2.838 2.815a.59.59 0 01-.415.17H7.294a.291.291 0 01-.207-.497L9.925 8.17zm12.15 5.225a.59.59 0 00-.415-.17H7.294a.291.291 0 00-.207.498l2.838 2.815c.11.109.26.17.415.17h14.366a.291.291 0 00.207-.498l-2.838-2.815z" fill={color} fillRule="nonzero" /></svg>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default sol;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Svg, { Path } from "react-native-svg";
|
|
4
|
+
interface Props {
|
|
5
|
+
size: number;
|
|
6
|
+
color: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
function cro({ size, color }: Props) {
|
|
10
|
+
return <Svg width={size} height={size} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><Path d="M11.9999 2L3.5 7.01119V16.9888L11.9999 22L20.4997 16.9888V7.01119L11.9999 2ZM17.9894 15.5123L11.9999 19.0022L6.01032 15.5123V8.4877L11.9999 4.95302L17.9894 8.4877V15.5123Z" fill={color} /><Path d="M11.9999 4.95302V2L3.5 7.01119V16.9888L11.9999 22V19.0022L6.01032 15.5123V8.4877L11.9999 4.95302Z" fill={color} /><Path d="M11.9999 19.0022L12.0001 21.9553L20.5 16.9441L20.4997 7.01119L11.9999 2V4.95302L17.9897 8.44295V15.4676L11.9999 19.0022Z" fill={color} /><Path d="M16.0081 14.3039L12.0004 16.6305L8.03671 14.3039V9.65061L12.0004 7.32399L16.0081 9.65061V14.3039Z" fill={color} /></Svg>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default cro;
|
|
@@ -95,6 +95,7 @@ export { default as colx } from "./colx";
|
|
|
95
95
|
export { default as comp } from "./comp";
|
|
96
96
|
export { default as coqui } from "./coqui";
|
|
97
97
|
export { default as cred } from "./cred";
|
|
98
|
+
export { default as cro } from "./cro";
|
|
98
99
|
export { default as crpt } from "./crpt";
|
|
99
100
|
export { default as crw } from "./crw";
|
|
100
101
|
export { default as cs } from "./cs";
|
|
@@ -347,6 +348,7 @@ export { default as sngls } from "./sngls";
|
|
|
347
348
|
export { default as snm } from "./snm";
|
|
348
349
|
export { default as snt } from "./snt";
|
|
349
350
|
export { default as soc } from "./soc";
|
|
351
|
+
export { default as sol } from "./sol";
|
|
350
352
|
export { default as spank } from "./spank";
|
|
351
353
|
export { default as sphtx } from "./sphtx";
|
|
352
354
|
export { default as srn } from "./srn";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Svg, { Path } from "react-native-svg";
|
|
4
|
+
interface Props {
|
|
5
|
+
size: number;
|
|
6
|
+
color: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
function sol({ size, color }: Props) {
|
|
10
|
+
return <Svg width={size} height={size} viewBox="0 0 24 24" fill="none"><Path d="M9.925 18.687a.59.59 0 01.415-.17h14.366a.29.29 0 01.207.497l-2.838 2.815a.59.59 0 01-.415.171H7.294a.291.291 0 01-.207-.498l2.838-2.815zm0-10.517A.59.59 0 0110.34 8h14.366c.261 0 .392.314.207.498l-2.838 2.815a.59.59 0 01-.415.17H7.294a.291.291 0 01-.207-.497L9.925 8.17zm12.15 5.225a.59.59 0 00-.415-.17H7.294a.291.291 0 00-.207.498l2.838 2.815c.11.109.26.17.415.17h14.366a.291.291 0 00.207-.498l-2.838-2.815z" fill={color} fillRule="nonzero" /></Svg>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default sol;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M11.9999 2L3.5 7.01119V16.9888L11.9999 22L20.4997 16.9888V7.01119L11.9999 2ZM17.9894 15.5123L11.9999 19.0022L6.01032 15.5123V8.4877L11.9999 4.95302L17.9894 8.4877V15.5123Z" fill="#002D74"/>
|
|
3
|
+
<path d="M11.9999 4.95302V2L3.5 7.01119V16.9888L11.9999 22V19.0022L6.01032 15.5123V8.4877L11.9999 4.95302Z" fill="#002D74"/>
|
|
4
|
+
<path d="M11.9999 19.0022L12.0001 21.9553L20.5 16.9441L20.4997 7.01119L11.9999 2V4.95302L17.9897 8.44295V15.4676L11.9999 19.0022Z" fill="#002D74"/>
|
|
5
|
+
<path d="M16.0081 14.3039L12.0004 16.6305L8.03671 14.3039V9.65061L12.0004 7.32399L16.0081 9.65061V14.3039Z" fill="#002D74"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
2
|
+
<path d="M9.925 18.687a.59.59 0 01.415-.17h14.366a.29.29 0 01.207.497l-2.838 2.815a.59.59 0 01-.415.171H7.294a.291.291 0 01-.207-.498l2.838-2.815zm0-10.517A.59.59 0 0110.34 8h14.366c.261 0 .392.314.207.498l-2.838 2.815a.59.59 0 01-.415.17H7.294a.291.291 0 01-.207-.497L9.925 8.17zm12.15 5.225a.59.59 0 00-.415-.17H7.294a.291.291 0 00-.207.498l2.838 2.815c.11.109.26.17.415.17h14.366a.291.291 0 00.207-.498l-2.838-2.815z" fill="#FFF" fill-rule="nonzero"/>
|
|
3
|
+
</svg>
|
package/src/derivation.ts
CHANGED
|
@@ -221,6 +221,13 @@ const modes = Object.freeze({
|
|
|
221
221
|
filecoin: {
|
|
222
222
|
overridesDerivation: "44'/461'/0'/0/<account>",
|
|
223
223
|
},
|
|
224
|
+
solanaMain: {
|
|
225
|
+
isNonIterable: true,
|
|
226
|
+
overridesDerivation: "44'/501'",
|
|
227
|
+
},
|
|
228
|
+
solanaSub: {
|
|
229
|
+
overridesDerivation: "44'/501'/<account>'",
|
|
230
|
+
},
|
|
224
231
|
});
|
|
225
232
|
modes as Record<DerivationMode, ModeSpec>; // eslint-disable-line
|
|
226
233
|
|
|
@@ -416,10 +423,12 @@ const disableBIP44 = {
|
|
|
416
423
|
// current workaround, device app does not seem to support bip44
|
|
417
424
|
stellar: true,
|
|
418
425
|
polkadot: true,
|
|
426
|
+
solana: true,
|
|
419
427
|
};
|
|
420
428
|
const seedIdentifierPath = {
|
|
421
429
|
neo: ({ purpose, coinType }) => `${purpose}'/${coinType}'/0'/0/0`,
|
|
422
430
|
filecoin: ({ purpose, coinType }) => `${purpose}'/${coinType}'/0'/0/0`,
|
|
431
|
+
solana: ({ purpose, coinType }) => `${purpose}'/${coinType}'`,
|
|
423
432
|
_: ({ purpose, coinType }) => `${purpose}'/${coinType}'/0'`,
|
|
424
433
|
};
|
|
425
434
|
export const getSeedIdentifierDerivation = (
|
|
@@ -483,6 +492,10 @@ export const getDerivationModesForCurrency = (
|
|
|
483
492
|
all.push("");
|
|
484
493
|
}
|
|
485
494
|
|
|
495
|
+
if (currency.family === "solana") {
|
|
496
|
+
all.push("solanaMain", "solanaSub");
|
|
497
|
+
}
|
|
498
|
+
|
|
486
499
|
if (!getEnv("SCAN_FOR_INVALID_PATHS")) {
|
|
487
500
|
return all.filter((a) => !isInvalidDerivationMode(a));
|
|
488
501
|
}
|
package/src/errors.ts
CHANGED
|
@@ -45,8 +45,11 @@ export async function getAccountNetworkInfo(
|
|
|
45
45
|
if (feesPerByte.length !== 3) {
|
|
46
46
|
throw new Error("cardinality of feesPerByte should be exactly 3");
|
|
47
47
|
}
|
|
48
|
-
// Fix fees if suggested fee is too low
|
|
49
|
-
if (
|
|
48
|
+
// Fix fees if suggested fee is too low, this is only for viacoin because the viacoin fees backend endpoint is broken
|
|
49
|
+
if (
|
|
50
|
+
account.currency.id === "viacoin" &&
|
|
51
|
+
feesPerByte[2].toNumber() < Math.ceil(relayFee * 100000)
|
|
52
|
+
) {
|
|
50
53
|
feesPerByte[2] = new BigNumber(Math.ceil(relayFee * 100000)).plus(1);
|
|
51
54
|
feesPerByte[1] = feesPerByte[2].plus(1);
|
|
52
55
|
feesPerByte[0] = feesPerByte[1].plus(1);
|
|
@@ -73,14 +73,10 @@ const signOperation = ({
|
|
|
73
73
|
|
|
74
74
|
const segwit = isSegwitDerivationMode(account.derivationMode);
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
// cf. https://github.com/LedgerHQ/lib-ledger-core/blob/fc9d762b83fc2b269d072b662065747a64ab2816/core/src/wallet/bitcoin/transaction_builders/BitcoinLikeUtxoPicker.cpp#L150-L154
|
|
78
|
-
/*
|
|
79
|
-
const hasTimestamp = networkParams.usesTimestampedTransaction;
|
|
76
|
+
const hasTimestamp = currency.id === "peercoin";
|
|
80
77
|
const initialTimestamp = hasTimestamp
|
|
81
|
-
?
|
|
78
|
+
? Math.floor(Date.now() / 1000)
|
|
82
79
|
: undefined;
|
|
83
|
-
*/
|
|
84
80
|
|
|
85
81
|
const perCoin = perCoinLogic[currency.id];
|
|
86
82
|
let additionals = [currency.id];
|
|
@@ -114,7 +110,8 @@ const signOperation = ({
|
|
|
114
110
|
lockTime,
|
|
115
111
|
sigHashType,
|
|
116
112
|
segwit,
|
|
117
|
-
|
|
113
|
+
hasTimestamp,
|
|
114
|
+
initialTimestamp,
|
|
118
115
|
additionals,
|
|
119
116
|
expiryHeight,
|
|
120
117
|
hasExtraData,
|
|
@@ -496,6 +496,21 @@ const komodo: AppSpec<Transaction> = {
|
|
|
496
496
|
),
|
|
497
497
|
}),
|
|
498
498
|
};
|
|
499
|
+
const decred: AppSpec<Transaction> = {
|
|
500
|
+
name: "Decred",
|
|
501
|
+
currency: getCryptoCurrencyById("decred"),
|
|
502
|
+
appQuery: {
|
|
503
|
+
model: DeviceModelId.nanoS,
|
|
504
|
+
appName: "Decred",
|
|
505
|
+
},
|
|
506
|
+
test: genericTest,
|
|
507
|
+
mutations: bitcoinLikeMutations({
|
|
508
|
+
minimalAmount: parseCurrencyUnit(
|
|
509
|
+
getCryptoCurrencyById("decred").units[0],
|
|
510
|
+
"0.0001"
|
|
511
|
+
),
|
|
512
|
+
}),
|
|
513
|
+
};
|
|
499
514
|
const litecoin: AppSpec<Transaction> = {
|
|
500
515
|
name: "Litecoin",
|
|
501
516
|
currency: getCryptoCurrencyById("litecoin"),
|
|
@@ -532,4 +547,5 @@ export default {
|
|
|
532
547
|
viacoin,
|
|
533
548
|
zcash,
|
|
534
549
|
zencash,
|
|
550
|
+
decred,
|
|
535
551
|
};
|
|
@@ -28,7 +28,7 @@ class Base implements ICrypto {
|
|
|
28
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
29
|
network: any;
|
|
30
30
|
protected static publickeyCache = {}; // xpub + account + index to publicKey
|
|
31
|
-
|
|
31
|
+
public static addressCache = {}; // derivationMode + xpub + account + index to address
|
|
32
32
|
protected static bech32Cache = {}; // xpub to bech32 interface
|
|
33
33
|
|
|
34
34
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -8,6 +8,7 @@ import { toOutputScript } from "bitcoinjs-lib/src/address";
|
|
|
8
8
|
import { InvalidAddress } from "@ledgerhq/errors";
|
|
9
9
|
import { DerivationModes } from "../types";
|
|
10
10
|
import { ICrypto } from "./types";
|
|
11
|
+
import Base from "./base";
|
|
11
12
|
|
|
12
13
|
// a mock explorer class that just use js objects
|
|
13
14
|
class BitcoinCash implements ICrypto {
|
|
@@ -46,7 +47,13 @@ class BitcoinCash implements ICrypto {
|
|
|
46
47
|
account: number,
|
|
47
48
|
index: number
|
|
48
49
|
): string {
|
|
49
|
-
|
|
50
|
+
if (Base.addressCache[`${derivationMode}-${xpub}-${account}-${index}`]) {
|
|
51
|
+
return Base.addressCache[`${derivationMode}-${xpub}-${account}-${index}`];
|
|
52
|
+
}
|
|
53
|
+
const address = this.getLegacyBitcoinCashAddress(xpub, account, index);
|
|
54
|
+
Base.addressCache[`${derivationMode}-${xpub}-${account}-${index}`] =
|
|
55
|
+
address;
|
|
56
|
+
return address;
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
// infer address type from its syntax
|