Merge branch 'master' into 841

This commit is contained in:
Marcos Rodriguez 2026-04-23 10:55:30 -05:00
commit a0a42b30dd
90 changed files with 364 additions and 276 deletions

View File

@ -71,7 +71,7 @@ jobs:
cache: 'npm'
cache-dependency-path: package-lock.json
- uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
- uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1
with:
xcode-version: latest

View File

@ -63,7 +63,7 @@ jobs:
- name: Setup Xcode
if: github.event_name == 'workflow_dispatch' || steps.labels.outputs.has_mac_dmg == 'true'
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1
with:
xcode-version: latest

View File

@ -51,7 +51,7 @@ jobs:
cache: 'gradle'
- name: Set up Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3
- name: Install Android SDK components
run: |
@ -68,7 +68,7 @@ jobs:
bundler-cache: true
- name: Cache Ruby Gems
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
path: vendor/bundle
key: ${{ runner.os }}-ruby-${{ hashFiles('**/Gemfile.lock') }}
@ -92,7 +92,7 @@ jobs:
- name: Upload build logs on failure
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: android-build-logs
path: |

View File

@ -32,7 +32,7 @@ jobs:
ruby-version: "3.4.8"
- name: Cache Ruby gems
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
path: vendor/bundle
key: ${{ runner.os }}-ruby-${{ hashFiles('Gemfile.lock') }}
@ -48,7 +48,7 @@ jobs:
run: npm ci || npm ci
- name: Cache CocoaPods
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
path: ios/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('ios/Podfile.lock') }}
@ -229,7 +229,7 @@ jobs:
run: npm i || npm i
- name: Run tests
uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b # v2
uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2
with:
api-level: 36
profile: pixel

View File

@ -3,7 +3,7 @@ GEM
specs:
CFPropertyList (3.0.8)
abbrev (0.1.2)
activesupport (7.2.3)
activesupport (7.2.3.1)
base64
benchmark (>= 0.3)
bigdecimal
@ -12,7 +12,7 @@ GEM
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
minitest (>= 5.1, < 6)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.9)
@ -256,9 +256,7 @@ GEM
mime-types-data (3.2026.0317)
mini_magick (4.13.2)
mini_mime (1.1.5)
minitest (6.0.2)
drb (~> 2.0)
prism (~> 1.5)
minitest (5.27.0)
molinillo (0.8.0)
multi_json (1.19.1)
multipart-post (2.4.1)
@ -272,7 +270,6 @@ GEM
os (1.1.4)
ostruct (0.6.3)
plist (3.7.2)
prism (1.9.0)
process_executer (4.0.2)
track_open_instances (~> 0.1)
public_suffix (4.0.7)
@ -355,7 +352,7 @@ DEPENDENCIES
CHECKSUMS
CFPropertyList (3.0.8) sha256=2c99d0d980536d3d7ab252f7bd59ac8be50fbdd1ff487c98c949bb66bb114261
abbrev (0.1.2) sha256=ad1b4eaaaed4cb722d5684d63949e4bde1d34f2a95e20db93aecfe7cbac74242
activesupport (7.2.3) sha256=5675c9770dac93e371412684249f9dc3c8cec104efd0624362a520ae685c7b10
activesupport (7.2.3.1) sha256=11ebed516a43a0bb47346227a35ebae4d9427465a7c9eb197a03d5c8d283cb34
addressable (2.8.9) sha256=cc154fcbe689711808a43601dee7b980238ce54368d23e127421753e46895485
algoliasearch (1.27.5) sha256=26c1cddf3c2ec4bd60c148389e42702c98fdac862881dc6b07a4c0b89ffec853
artifactory (3.0.17) sha256=3023d5c964c31674090d655a516f38ca75665c15084140c08b7f2841131af263
@ -441,7 +438,7 @@ CHECKSUMS
mime-types-data (3.2026.0317) sha256=77f078a4d8631d52b842ba77099734b06eddb7ad339d792e746d2272b67e511b
mini_magick (4.13.2) sha256=71d6258e0e8a3d04a9a0a09784d5d857b403a198a51dd4f882510435eb95ddd9
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
minitest (6.0.2) sha256=db6e57956f6ecc6134683b4c87467d6dd792323c7f0eea7b93f66bd284adbc3d
minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
molinillo (0.8.0) sha256=efbff2716324e2a30bccd3eba1ff3a735f4d5d53ffddbc6a2f32c0ca9433045d
multi_json (1.19.1) sha256=7aefeff8f2c854bf739931a238e4aea64592845e0c0395c8a7d2eea7fdd631b7
multipart-post (2.4.1) sha256=9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8
@ -455,7 +452,6 @@ CHECKSUMS
os (1.1.4) sha256=57816d6a334e7bd6aed048f4b0308226c5fb027433b67d90a9ab435f35108d3f
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
plist (3.7.2) sha256=d37a4527cc1116064393df4b40e1dbbc94c65fa9ca2eec52edf9a13616718a42
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
process_executer (4.0.2) sha256=c73eb646d450044241c973a8360f6326e33ec5ad933f7acf503f6f3579873a71
public_suffix (4.0.7) sha256=8be161e2421f8d45b0098c042c06486789731ea93dc3a896d30554ee38b573b8
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c

View File

@ -104,7 +104,7 @@ Grab an issue from [the backlog](https://github.com/BlueWallet/BlueWallet/issues
## Translations
We accept translations via [Transifex](https://www.transifex.com/bluewallet/bluewallet/)
We accept translations via [Transifex](https://explore.transifex.com/bluewallet/bluewallet/)
To participate you need to:
1. Sign up to Transifex

View File

@ -87,7 +87,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "7.2.7"
versionName "8.0.0"
testBuildType System.getProperty('testBuildType', 'debug')
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
// Keep compatibility across react-native-capture-protection flavor changes.
@ -133,10 +133,10 @@ dependencies {
androidTestImplementation('com.wix:detox:+')
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation 'androidx.core:core-ktx:1.16.0'
implementation 'androidx.work:work-runtime-ktx:2.11.1'
implementation 'androidx.core:core-ktx:1.18.0'
implementation 'androidx.work:work-runtime-ktx:2.11.2'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.compose.ui:ui:1.10.4'
implementation 'androidx.compose.ui:ui:1.10.6'
implementation 'androidx.compose.material3:material3:1.3.2'
implementation 'androidx.preference:preference-ktx:1.2.1'

View File

@ -9,7 +9,7 @@ buildscript {
googlePlayServicesVersion = "16.+"
googlePlayServicesIidVersion = "16.0.1"
firebaseVersion = "21.1.0"
ndkVersion = "27.1.12297006"
ndkVersion = "28.2.13676358"
kotlinVersion = '2.1.20'
}
repositories {

View File

@ -5,7 +5,10 @@ import RNFS from 'react-native-fs';
import Realm from 'realm';
import { sha256 as _sha256 } from '@noble/hashes/sha256';
import { LegacyWallet, SegwitBech32Wallet, SegwitP2SHWallet, TaprootWallet } from '../class';
import type { LegacyWallet as LegacyWalletT } from '../class/wallets/legacy-wallet';
import type { SegwitBech32Wallet as SegwitBech32WalletT } from '../class/wallets/segwit-bech32-wallet';
import type { SegwitP2SHWallet as SegwitP2SHWalletT } from '../class/wallets/segwit-p2sh-wallet';
import type { TaprootWallet as TaprootWalletT } from '../class/wallets/taproot-wallet';
import presentAlert from '../components/Alert';
import loc from '../loc';
import { GROUP_IO_BLUEWALLET } from './currency';
@ -599,6 +602,21 @@ export function txhexToElectrumTransaction(txhex: string): ElectrumTransactionWi
let address: false | string = false;
let type: false | string = false;
// Lazy require to avoid the module-scope cycle described above. These
// modules are fully loaded by the time this function is actually invoked.
const { SegwitBech32Wallet } = require('../class/wallets/segwit-bech32-wallet') as {
SegwitBech32Wallet: typeof SegwitBech32WalletT;
};
const { SegwitP2SHWallet } = require('../class/wallets/segwit-p2sh-wallet') as {
SegwitP2SHWallet: typeof SegwitP2SHWalletT;
};
const { LegacyWallet } = require('../class/wallets/legacy-wallet') as {
LegacyWallet: typeof LegacyWalletT;
};
const { TaprootWallet } = require('../class/wallets/taproot-wallet') as {
TaprootWallet: typeof TaprootWalletT;
};
if (SegwitBech32Wallet.scriptPubKeyToAddress(uint8ArrayToHex(out.script))) {
address = SegwitBech32Wallet.scriptPubKeyToAddress(uint8ArrayToHex(out.script));
type = 'witness_v0_keyhash';

View File

@ -1,7 +1,7 @@
import Bugsnag from '@bugsnag/react-native';
import { getUniqueId } from 'react-native-device-info';
import { BlueApp as BlueAppClass } from '../class';
import { BlueApp as BlueAppClass } from '../class/blue-app';
const BlueApp = BlueAppClass.getInstance();

View File

@ -1,6 +1,6 @@
import { Platform } from 'react-native';
import { BlueApp as BlueAppClass } from '../class/';
import { BlueApp as BlueAppClass } from '../class/blue-app';
import prompt from '../helpers/prompt';
import { showKeychainWipeAlert } from '../hooks/useBiometrics';
import loc from '../loc';

View File

@ -13,7 +13,8 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
import { Psbt } from 'bitcoinjs-lib';
import b58 from 'bs58check';
import { MultisigCosigner, MultisigHDWallet } from '../../class';
import { MultisigCosigner } from '../../class/multisig-cosigner';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import { joinQRs } from '../bbqr/join';
import {
concatUint8Arrays,

View File

@ -3,7 +3,7 @@ import * as bitcoin from 'bitcoinjs-lib';
import URL from 'url';
import { readFileOutsideSandbox } from '../blue_modules/fs';
import { Chain } from '../models/bitcoinUnits';
import { WatchOnlyWallet } from './';
import { WatchOnlyWallet } from './wallets/watch-only-wallet';
import Azteco from './azteco';
import Lnurl from './lnurl';
import type { TWallet } from './wallets/types';

View File

@ -1,22 +0,0 @@
export * from './blue-app';
export * from './hd-segwit-bech32-transaction';
export * from './multisig-cosigner';
export * from './wallets/abstract-hd-wallet';
export * from './wallets/abstract-wallet';
export * from './wallets/hd-aezeed-wallet';
export * from './wallets/hd-legacy-breadwallet-wallet';
export * from './wallets/hd-legacy-electrum-seed-p2pkh-wallet';
export * from './wallets/hd-legacy-p2pkh-wallet';
export * from './wallets/hd-segwit-bech32-wallet';
export * from './wallets/hd-segwit-electrum-seed-p2wpkh-wallet';
export * from './wallets/hd-segwit-p2sh-wallet';
export * from './wallets/hd-taproot-wallet';
export * from './wallets/legacy-wallet';
export * from './wallets/lightning-custodian-wallet';
export * from './wallets/lightning-ark-wallet';
export * from './wallets/multisig-hd-wallet';
export * from './wallets/segwit-bech32-wallet';
export * from './wallets/segwit-p2sh-wallet';
export * from './wallets/slip39-wallets';
export * from './wallets/taproot-wallet';
export * from './wallets/watch-only-wallet';

View File

@ -2,27 +2,23 @@ import bip38 from 'bip38';
import wif from 'wif';
import loc from '../loc';
import {
HDAezeedWallet,
HDLegacyBreadwalletWallet,
HDLegacyElectrumSeedP2PKHWallet,
HDLegacyP2PKHWallet,
HDSegwitBech32Wallet,
HDSegwitElectrumSeedP2WPKHWallet,
HDSegwitP2SHWallet,
HDTaprootWallet,
LegacyWallet,
LightningCustodianWallet,
LightningArkWallet,
MultisigHDWallet,
SegwitBech32Wallet,
SegwitP2SHWallet,
SLIP39LegacyP2PKHWallet,
SLIP39SegwitBech32Wallet,
SLIP39SegwitP2SHWallet,
TaprootWallet,
WatchOnlyWallet,
} from '.';
import { HDAezeedWallet } from './wallets/hd-aezeed-wallet';
import { HDLegacyBreadwalletWallet } from './wallets/hd-legacy-breadwallet-wallet';
import { HDLegacyElectrumSeedP2PKHWallet } from './wallets/hd-legacy-electrum-seed-p2pkh-wallet';
import { HDLegacyP2PKHWallet } from './wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitBech32Wallet } from './wallets/hd-segwit-bech32-wallet';
import { HDSegwitElectrumSeedP2WPKHWallet } from './wallets/hd-segwit-electrum-seed-p2wpkh-wallet';
import { HDSegwitP2SHWallet } from './wallets/hd-segwit-p2sh-wallet';
import { HDTaprootWallet } from './wallets/hd-taproot-wallet';
import { LegacyWallet } from './wallets/legacy-wallet';
import { LightningCustodianWallet } from './wallets/lightning-custodian-wallet';
import { LightningArkWallet } from './wallets/lightning-ark-wallet';
import { MultisigHDWallet } from './wallets/multisig-hd-wallet';
import { SegwitBech32Wallet } from './wallets/segwit-bech32-wallet';
import { SegwitP2SHWallet } from './wallets/segwit-p2sh-wallet';
import { SLIP39LegacyP2PKHWallet, SLIP39SegwitBech32Wallet, SLIP39SegwitP2SHWallet } from './wallets/slip39-wallets';
import { TaprootWallet } from './wallets/taproot-wallet';
import { WatchOnlyWallet } from './wallets/watch-only-wallet';
import bip39WalletFormatsElectrum from './bip39_wallet_formats.json'; // https://github.com/spesmilo/electrum/blob/master/electrum/bip39_wallet_formats.json
import bip39WalletFormatsBlueWallet from './bip39_wallet_formats_bluewallet.json';
import type { TWallet } from './wallets/types';

View File

@ -8,7 +8,7 @@ import { ECPairAPI, ECPairFactory, Signer } from 'ecpair';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import ecc from '../../blue_modules/noble_ecc';
import { hexToUint8Array, concatUint8Arrays } from '../../blue_modules/uint8array-extras';
import { HDSegwitBech32Wallet } from '..';
import type { HDSegwitBech32Wallet as HDSegwitBech32WalletT } from './hd-segwit-bech32-wallet';
import { randomBytes } from '../rng';
import { AbstractWallet } from './abstract-wallet';
import { CreateTransactionResult, CreateTransactionTarget, CreateTransactionUtxo, Transaction, Utxo } from './types';
@ -347,6 +347,9 @@ export class LegacyWallet extends AbstractWallet {
this._txs_by_external_index = this._txs_by_external_index || [];
this._txs_by_internal_index = [];
const { HDSegwitBech32Wallet } = require('./hd-segwit-bech32-wallet') as {
HDSegwitBech32Wallet: typeof HDSegwitBech32WalletT;
};
const hd = new HDSegwitBech32Wallet();
return hd.getTransactions.apply(this);
}

View File

@ -3,7 +3,7 @@ import DefaultPreference from 'react-native-default-preference';
import { isReadClipboardAllowed, setReadClipboardAllowed } from '../../blue_modules/clipboard';
import { getPreferredCurrency, GROUP_IO_BLUEWALLET, initCurrencyDaemon, setPreferredCurrency } from '../../blue_modules/currency';
import { clearUseURv1, isURv1Enabled, setUseURv1 } from '../../blue_modules/ur';
import { BlueApp } from '../../class';
import { BlueApp } from '../../class/blue-app';
import { saveLanguage, STORAGE_KEY } from '../../loc';
import { FiatUnit, TFiatUnit } from '../../models/fiatUnit';
import {

View File

@ -1,6 +1,8 @@
import React, { createContext, useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { LayoutAnimation } from 'react-native';
import { BlueApp as BlueAppClass, LegacyWallet, TCounterpartyMetadata, TTXMetadata, WatchOnlyWallet } from '../../class';
import { BlueApp as BlueAppClass, TCounterpartyMetadata, TTXMetadata } from '../../class/blue-app';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import type { TWallet } from '../../class/wallets/types';
import presentAlert from '../../components/Alert';
import loc, { formatBalanceWithoutSuffix } from '../../loc';

View File

@ -1,7 +1,8 @@
import React, { useEffect } from 'react';
import { DevSettings, Alert, Platform, AlertButton } from 'react-native';
import { useStorage } from '../hooks/context/useStorage';
import { HDSegwitBech32Wallet, WatchOnlyWallet } from '../class';
import { HDSegwitBech32Wallet } from '../class/wallets/hd-segwit-bech32-wallet';
import { WatchOnlyWallet } from '../class/wallets/watch-only-wallet';
import Clipboard from '@react-native-clipboard/clipboard';
import { TWallet } from '../class/wallets/types';

View File

@ -4,7 +4,7 @@ import DefaultPreference from 'react-native-default-preference';
import Handoff from 'react-native-handoff';
import { useSettings } from '../hooks/context/useSettings';
import { GROUP_IO_BLUEWALLET } from '../blue_modules/currency';
import { BlueApp } from '../class';
import { BlueApp } from '../class/blue-app';
import { HandOffComponentProps } from './types';
const HandOffComponent: React.FC<HandOffComponentProps> = props => {

View File

@ -3,7 +3,9 @@ import Clipboard from '@react-native-clipboard/clipboard';
import { ImageBackground, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import Animated, { useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
import LinearGradient from 'react-native-linear-gradient';
import { LightningArkWallet, LightningCustodianWallet, MultisigHDWallet } from '../class';
import { LightningArkWallet } from '../class/wallets/lightning-ark-wallet';
import { LightningCustodianWallet } from '../class/wallets/lightning-custodian-wallet';
import { MultisigHDWallet } from '../class/wallets/multisig-hd-wallet';
import WalletGradient from '../class/wallet-gradient';
import { TWallet } from '../class/wallets/types';
import loc, { formatBalance, formatBalanceWithoutSuffix } from '../loc';

View File

@ -23,7 +23,9 @@ import Animated, {
withTiming,
} from 'react-native-reanimated';
import LinearGradient from 'react-native-linear-gradient';
import { LightningArkWallet, LightningCustodianWallet, MultisigHDWallet } from '../class';
import { LightningArkWallet } from '../class/wallets/lightning-ark-wallet';
import { LightningCustodianWallet } from '../class/wallets/lightning-custodian-wallet';
import { MultisigHDWallet } from '../class/wallets/multisig-hd-wallet';
import WalletGradient from '../class/wallet-gradient';
import { useSizeClass, SizeClass } from '../blue_modules/sizeClass';
import loc, { formatBalance, transactionTimeToReadable } from '../loc';
@ -116,7 +118,7 @@ const NewWalletPanel: React.FC<NewWalletPanelProps> = ({ onPress }) => {
style={[
nStyles.container,
nStylesHooks.container,
{ backgroundColor: colors.borderTopColor },
{ backgroundColor: colors.lightButton },
isLarge ? {} : { width: itemWidth },
animatedScaleStyle,
]}

View File

@ -1,6 +1,6 @@
import AsyncStorage from '@react-native-async-storage/async-storage';
import DefaultPreference from 'react-native-default-preference';
import { BlueApp } from '../class';
import { BlueApp } from '../class/blue-app';
import { GROUP_IO_BLUEWALLET } from '../blue_modules/currency';
// Function to get the value from DefaultPreference first, then fallback to AsyncStorage

View File

@ -12,7 +12,7 @@ import {
removeAllDeliveredNotifications,
setApplicationIconBadgeNumber,
} from '../blue_modules/notifications';
import { LightningCustodianWallet } from '../class';
import { LightningCustodianWallet } from '../class/wallets/lightning-custodian-wallet';
import DeeplinkSchemaMatch from '../class/deeplink-schema-match';
import loc from '../loc';
import { Chain } from '../models/bitcoinUnits';

View File

@ -7,7 +7,7 @@ import {
useReachability,
watchEvents,
} from 'react-native-watch-connectivity';
import { MultisigHDWallet } from '../class';
import { MultisigHDWallet } from '../class/wallets/multisig-hd-wallet';
import loc from '../loc';
import { Chain } from '../models/bitcoinUnits';
import { FiatUnit } from '../models/fiatUnit';

View File

@ -1379,7 +1379,7 @@
"$(SDKROOT)/System/iOSSupport/usr/lib/swift",
"$(inherited)",
);
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@ -1436,7 +1436,7 @@
"$(SDKROOT)/System/iOSSupport/usr/lib/swift",
"$(inherited)",
);
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@ -1485,7 +1485,7 @@
"$(SDKROOT)/System/iOSSupport/usr/lib/swift",
"$(inherited)",
);
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
@ -1528,7 +1528,7 @@
"$(SDKROOT)/System/iOSSupport/usr/lib/swift",
"$(inherited)",
);
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
MTL_FAST_MATH = YES;
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.Stickers;
@ -1580,7 +1580,7 @@
"$(SDKROOT)/System/iOSSupport/usr/lib/swift",
"$(inherited)",
);
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
@ -1641,7 +1641,7 @@
"$(SDKROOT)/System/iOSSupport/usr/lib/swift",
"$(inherited)",
);
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
MTL_FAST_MATH = YES;
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.MarketWidget;
@ -1850,7 +1850,7 @@
"$(inherited)",
);
MACOSX_DEPLOYMENT_TARGET = 12.4;
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
@ -1908,7 +1908,7 @@
"$(inherited)",
);
MACOSX_DEPLOYMENT_TARGET = 12.4;
MARKETING_VERSION = 7.2.7;
MARKETING_VERSION = 8.0.0;
MTL_FAST_MATH = YES;
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch;

View File

@ -1601,12 +1601,12 @@ PODS:
- react-native-tcp-socket (6.4.1):
- CocoaAsyncSocket
- React-Core
- react-native-vector-icons-entypo (12.4.2)
- react-native-vector-icons-entypo (12.5.0)
- react-native-vector-icons-fontawesome (12.4.2)
- react-native-vector-icons-fontawesome6 (12.3.2)
- react-native-vector-icons-ionicons (12.4.2)
- react-native-vector-icons-material-design-icons (12.4.2)
- react-native-vector-icons-material-icons (12.4.2)
- react-native-vector-icons-ionicons (12.5.0)
- react-native-vector-icons-material-design-icons (12.5.0)
- react-native-vector-icons-material-icons (12.5.0)
- React-NativeModulesApple (0.84.1):
- hermes-engine
- React-callinvoker
@ -1991,7 +1991,7 @@ PODS:
- React-perflogger (= 0.84.1)
- React-utils (= 0.84.1)
- ReactNativeDependencies
- ReactNativeCameraKit (16.2.0):
- ReactNativeCameraKit (17.0.3):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@ -2066,7 +2066,7 @@ PODS:
- React-Core
- RNFS (2.20.0):
- React-Core
- RNGestureHandler (2.30.0):
- RNGestureHandler (2.31.1):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@ -2090,7 +2090,7 @@ PODS:
- Yoga
- RNHandoff (0.0.3):
- React
- RNKeychain (9.2.3):
- RNKeychain (10.0.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@ -2156,8 +2156,28 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- RNQrGenerator (1.4.5):
- React
- RNQrGenerator (2.0.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
- React-Core
- React-Core-prebuilt
- React-debug
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-jsi
- React-NativeModulesApple
- React-RCTFabric
- React-renderercss
- React-rendererdebug
- React-utils
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- ZXingObjC
- RNQuickAction (0.3.13):
- React
@ -2862,12 +2882,12 @@ SPEC CHECKSUMS:
react-native-safe-area-context: ae7587b95fb580d1800c5b0b2a7bd48c2868e67a
react-native-secure-key-store: eb45b44bdec3f48e9be5cdfca0f49ddf64892ea6
react-native-tcp-socket: 7c7e53a07f122ecf00fb3626684bc0ca82c4f044
react-native-vector-icons-entypo: df7884c4002b70c79d41b7de10b53df3ce8c1e8e
react-native-vector-icons-entypo: 3cd60c5950ea9b2cf7f1fe4fe50fbcbcef2ba381
react-native-vector-icons-fontawesome: 3604609191a2b4323637a4a25dcd4e6e05579dc2
react-native-vector-icons-fontawesome6: 3765e18f5116ae4498997bf8548eaab05de72ee6
react-native-vector-icons-ionicons: 7cc4388958a60560aa6f5e257ad8197d555700ff
react-native-vector-icons-material-design-icons: 12bc222b4cd6781a3cbbf4b537767d3d528011dd
react-native-vector-icons-material-icons: 433cb95ee9de1246934b2ae8414f9c02b520b628
react-native-vector-icons-ionicons: 7e633927db6ab96e0255b5920c053777cacca505
react-native-vector-icons-material-design-icons: 95914f2f6b18e26e5c9563afe33184e110afe674
react-native-vector-icons-material-icons: 8717ed6d0adafdea7a20475dababba112992a372
React-NativeModulesApple: 5ba0903927f6b8d335a091700e9fda143980f819
React-networking: 3a4b7f9ed2b2d1c0441beacb79674323a24bcca6
React-oscompat: ff26abf0ae3e3fdbe47b44224571e3fc7226a573
@ -2901,7 +2921,7 @@ SPEC CHECKSUMS:
ReactAppDependencyProvider: e96e93b493d8d86eeaee3e590ba0be53f6abe46f
ReactCodegen: c8cd59a80d11b8c2f8e70fab3cdc62673ae56f1b
ReactCommon: 07572bf9e687c8a52fbe4a3641e9e3a1a477c78e
ReactNativeCameraKit: 17107568ff74cba15089fa27d2e7c62e10870beb
ReactNativeCameraKit: 2f24ad111e0f525a6529dd0eff5bf5d4454a24ba
ReactNativeDependencies: d91ea5381a1df88b4bc29bfb8a525ececa743c3d
RealmJS: 1c37c6bdfe060f4caa0f9175aa0eedb962622ee1
RNCAsyncStorage: 3a4f5e2777dae1688b781a487923a08569e27fe4
@ -2909,12 +2929,12 @@ SPEC CHECKSUMS:
RNDefaultPreference: 8a089ee8ce829a66c5453e3c5434f0785499d1c3
RNDeviceInfo: bcce8752b5043a623fe3c26789679b473f705d3c
RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8
RNGestureHandler: 07de6f059e0ee5744ae9a56feb07ee345338cc31
RNGestureHandler: b633cb9b819ffb23661496af13bd6943d66f093c
RNHandoff: bc8af5a86853ff13b033e7ba1114c3c5b38e6385
RNKeychain: 1bd9c3e52f71e954437e6429e95d801b190c15fa
RNKeychain: 667b7bd224f14055ae4cb52b41a82ad0ad70574f
RNLocalize: 1e6eb4290e89502c3d2193d82dfb7de14a9e672b
RNPermissions: 71ff057a9f7607de93c7b4e27db8a76cf03d2367
RNQrGenerator: b467624cdcb0e88108a8b4ca74c94b0978efa265
RNQrGenerator: dd31405ad364fc0950cda4e4e9c08293d26c7058
RNQuickAction: c2c8f379e614428be0babe4d53a575739667744d
RNReactNativeHapticFeedback: d6666654afe70a15d04ecb6257809a4081fab84c
RNReanimated: 66fa99647173f254f731e6aa59a0a2cc8c838ac1

148
package-lock.json generated
View File

@ -1,18 +1,18 @@
{
"name": "bluewallet",
"version": "7.2.7",
"version": "8.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bluewallet",
"version": "7.2.7",
"version": "8.0.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@arkade-os/boltz-swap": "0.2.19",
"@arkade-os/sdk": "0.3.12",
"@babel/preset-env": "7.29.0",
"@babel/preset-env": "7.29.2",
"@bugsnag/react-native": "8.8.1",
"@bugsnag/source-maps": "2.3.3",
"@keystonehq/bc-ur-registry": "0.7.1",
@ -25,12 +25,12 @@
"@react-native-community/cli-platform-android": "20.1.3",
"@react-native-community/cli-platform-ios": "20.1.3",
"@react-native-documents/picker": "12.0.1",
"@react-native-vector-icons/entypo": "12.4.2",
"@react-native-vector-icons/entypo": "12.5.0",
"@react-native-vector-icons/fontawesome": "12.4.2",
"@react-native-vector-icons/fontawesome6": "12.3.2",
"@react-native-vector-icons/ionicons": "12.4.2",
"@react-native-vector-icons/material-design-icons": "12.4.2",
"@react-native-vector-icons/material-icons": "12.4.2",
"@react-native-vector-icons/ionicons": "12.5.0",
"@react-native-vector-icons/material-design-icons": "12.5.0",
"@react-native-vector-icons/material-icons": "12.5.0",
"@react-native/babel-preset": "0.84.1",
"@react-native/codegen": "0.84.1",
"@react-native/gradle-plugin": "0.84.1",
@ -38,7 +38,7 @@
"@react-navigation/devtools": "7.0.56",
"@react-navigation/drawer": "7.9.8",
"@react-navigation/native": "7.2.2",
"@react-navigation/native-stack": "7.14.10",
"@react-navigation/native-stack": "7.14.11",
"@scure/base": "2.0.0",
"@spsina/bip47": "github:BlueWallet/bip47#df82345",
"aezeed": "0.0.5",
@ -49,7 +49,7 @@
"bignumber.js": "9.3.1",
"bip21": "2.0.3",
"bip32": "5.0.1",
"bip38": "github:BlueWallet/bip38",
"bip38": "github:BlueWallet/bip38#7ec4b1932b98eaaff16c5a26765a26466958e6b4",
"bip39": "3.1.0",
"bitcoinjs-lib": "7.0.0",
"bitcoinjs-message": "2.2.0",
@ -58,8 +58,8 @@
"coinselect": "github:BlueWallet/coinselect#35f8038",
"crypto-browserify": "3.12.1",
"crypto-js": "4.2.0",
"dayjs": "1.11.19",
"detox": "20.50.1",
"dayjs": "1.11.20",
"detox": "20.51.0",
"ecpair": "3.0.0",
"electrum-client": "github:BlueWallet/rn-electrum-client#d9f511d",
"electrum-mnemonic": "2.0.0",
@ -73,21 +73,21 @@
"react-native": "0.84.1",
"react-native-biometrics": "3.0.1",
"react-native-blue-crypto": "github:BlueWallet/react-native-blue-crypto#3cb5442",
"react-native-camera-kit-no-google": "16.2.0",
"react-native-camera-kit-no-google": "github:BlueWallet/react-native-camera-kit-no-google#e6dd85b4ea2a7b17da65ab8bfc762960d177b882",
"react-native-capture-protection": "github:BlueWallet/react-native-capture-protection#bb78a40",
"react-native-context-menu-view": "github:BlueWallet/react-native-context-menu-view#144110b02afdb11b431741aef5da95e91b942a9b",
"react-native-default-preference": "https://github.com/BlueWallet/react-native-default-preference.git#6338a1f1235e4130b8cfc2dd3b53015eeff2870c",
"react-native-default-preference": "github:BlueWallet/react-native-default-preference#6338a1f1235e4130b8cfc2dd3b53015eeff2870c",
"react-native-device-info": "14.1.1",
"react-native-draggable-flatlist": "4.0.3",
"react-native-draglist": "github:BlueWallet/react-native-draglist#0c8049d",
"react-native-edge-to-edge": "1.8.1",
"react-native-fs": "2.20.0",
"react-native-gesture-handler": "2.30.0",
"react-native-gesture-handler": "2.31.1",
"react-native-get-random-values": "1.11.0",
"react-native-handoff": "github:BlueWallet/react-native-handoff#v0.0.4",
"react-native-haptic-feedback": "2.3.4",
"react-native-image-picker": "8.2.1",
"react-native-keychain": "9.2.3",
"react-native-keychain": "10.0.0",
"react-native-linear-gradient": "2.8.3",
"react-native-localize": "3.7.0",
"react-native-notifications": "5.2.2",
@ -107,9 +107,9 @@
"react-test-renderer": "19.2.4",
"readable-stream": "3.6.2",
"realm": "20.2.0",
"rn-qr-generator": "https://github.com/BlueWallet/rn-qr-generator.git#5870927a70f5bf43dd59b332fd221af971b82bfe",
"rn-qr-generator": "github:BlueWallet/rn-qr-generator#d53be844c985759197da91b325f7a89d5ef02f90",
"silent-payments": "github:BlueWallet/SilentPayments#59a037",
"slip39": "https://github.com/BlueWallet/slip39-js#d316ee6",
"slip39": "github:BlueWallet/slip39-js#d316ee6",
"stream-browserify": "3.0.0",
"url": "0.11.4",
"wif": "2.0.6"
@ -363,7 +363,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
"version": "0.6.6",
"version": "0.6.8",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz",
"integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==",
"license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.28.6",
@ -1727,7 +1729,9 @@
}
},
"node_modules/@babel/preset-env": {
"version": "7.29.0",
"version": "7.29.2",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz",
"integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -1810,11 +1814,13 @@
}
},
"node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.14.0",
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz",
"integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.6",
"@babel/helper-define-polyfill-provider": "^0.6.8",
"core-js-compat": "^3.48.0"
},
"peerDependencies": {
@ -3635,9 +3641,9 @@
}
},
"node_modules/@react-native-vector-icons/common": {
"version": "12.4.1",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/common/-/common-12.4.1.tgz",
"integrity": "sha512-itfFrLRSNFgR7mS7C1JVuYs/H0WI2DiIW6JzN3MPzw0m1kycN7GPxWrO4/Je4G1JCW5x4i3lNvPB8259DtWLrQ==",
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/common/-/common-12.4.2.tgz",
"integrity": "sha512-15ViuwfYdkQ79VE6PiQjsGyQcEvhv4lgguhIeQU4pXLXRAFhl89Q8FdKDrGZh7+a/8WMqT1v2+JtghdoGKDE6Q==",
"license": "MIT",
"dependencies": {
"find-up": "^7.0.0",
@ -3733,12 +3739,12 @@
}
},
"node_modules/@react-native-vector-icons/entypo": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/entypo/-/entypo-12.4.2.tgz",
"integrity": "sha512-udnxe629IatBRGAnOg/s8Jp5B3+5wCs9bLeDuke6VEudJrZrgvgQ4vZdAxHeOVZu7TJ+w2e9GQx/JbC8RuSPeQ==",
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/entypo/-/entypo-12.5.0.tgz",
"integrity": "sha512-8f35AyxbzqphYsDqFaYfjRFknHG163QjeZAP+DuvD3QHTAJ2+3MjQqrFVeBy0+FOaI5H61r+YApZZSB2s/h9mg==",
"license": "MIT",
"dependencies": {
"@react-native-vector-icons/common": "^12.4.1"
"@react-native-vector-icons/common": "^12.4.2"
},
"engines": {
"node": ">= 18.0.0"
@ -3781,12 +3787,12 @@
}
},
"node_modules/@react-native-vector-icons/ionicons": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/ionicons/-/ionicons-12.4.2.tgz",
"integrity": "sha512-LQa58zaKZbbNSfKYuo8f4AU9gy1sGLu3m1iZfSDsFlyConmlFQ8IfDGcFO45pupckCxXa4D0kgNThQXgwSmXaA==",
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/ionicons/-/ionicons-12.5.0.tgz",
"integrity": "sha512-mejjJ1iJzbs8sqxajkI1MVlQ1K2f+oV/Uf4jlVEotWpcTdUCykRSqXylOMU8UUVbGSKAR97fmaL/JRxaAWvENg==",
"license": "MIT",
"dependencies": {
"@react-native-vector-icons/common": "^12.4.1"
"@react-native-vector-icons/common": "^12.4.2"
},
"engines": {
"node": ">= 18.0.0"
@ -3797,12 +3803,12 @@
}
},
"node_modules/@react-native-vector-icons/material-design-icons": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/material-design-icons/-/material-design-icons-12.4.2.tgz",
"integrity": "sha512-hbXqaAJ4U0jyo6KrqHAqsM8BUFRTa4Nd5oUhbEtobPTFKwUzvZSzwRD782c7DGg4KWwgPNN35WMZpXnD1zBGuA==",
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/material-design-icons/-/material-design-icons-12.5.0.tgz",
"integrity": "sha512-Ltmmlw/vslDfFnmi8aKE+QoSyppi+tLNQFCqsa5YIPBwKCMaRPnoN0MZtc8CVFC8Y61CTTcmAgG+cvzw3zwLiA==",
"license": "MIT",
"dependencies": {
"@react-native-vector-icons/common": "^12.4.1"
"@react-native-vector-icons/common": "^12.4.2"
},
"engines": {
"node": ">= 18.0.0"
@ -3813,12 +3819,12 @@
}
},
"node_modules/@react-native-vector-icons/material-icons": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/material-icons/-/material-icons-12.4.2.tgz",
"integrity": "sha512-gAo0eu7XxcWY0a5kLv3XJo51UYHv3YQeFvkZ61mmyERfHVj19dNJi2GXv5SH/TFlzE7fqHgEgNfV05avAb/sbw==",
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@react-native-vector-icons/material-icons/-/material-icons-12.5.0.tgz",
"integrity": "sha512-OrtQ2ezxZQ+06J6RTlNS+i2FMssy+VduXnZrEOnW/ifLA7sVeUsCyaK4wh5u4ANKmPkg2EKlltKOk9QNLYy4sg==",
"license": "MIT",
"dependencies": {
"@react-native-vector-icons/common": "^12.4.1"
"@react-native-vector-icons/common": "^12.4.2"
},
"engines": {
"node": ">= 18.0.0"
@ -4604,9 +4610,9 @@
}
},
"node_modules/@react-navigation/native-stack": {
"version": "7.14.10",
"resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.10.tgz",
"integrity": "sha512-mCbYbYhi7Em2R2nEgwYGdLU38smy+KK+HMMVcwuzllWsF3Qb+jOUEYbB6Or7LvE7SS77BZ6sHdx4HptCEv50hQ==",
"version": "7.14.11",
"resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.11.tgz",
"integrity": "sha512-1ufBtJ7KbVFlQhXsYSYHqjgkmP30AzJSgW48YjWMQZ3NZGAyYe34w9Wd4KpdebQCfDClPe9maU+8crA/awa6lQ==",
"license": "MIT",
"dependencies": {
"@react-navigation/elements": "^2.9.14",
@ -4937,7 +4943,6 @@
"version": "19.2.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
"integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
"dev": true,
"license": "MIT",
"dependencies": {
"csstype": "^3.2.2"
@ -4945,7 +4950,6 @@
},
"node_modules/@types/react-test-renderer": {
"version": "19.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/react": "*"
@ -7586,7 +7590,6 @@
},
"node_modules/csstype": {
"version": "3.2.3",
"dev": true,
"license": "MIT"
},
"node_modules/data-view-buffer": {
@ -7638,7 +7641,9 @@
}
},
"node_modules/dayjs": {
"version": "1.11.19",
"version": "1.11.20",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz",
"integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==",
"license": "MIT"
},
"node_modules/debug": {
@ -7812,9 +7817,9 @@
}
},
"node_modules/detox": {
"version": "20.50.1",
"resolved": "https://registry.npmjs.org/detox/-/detox-20.50.1.tgz",
"integrity": "sha512-5L2dZpuzBkBoZPq24Ir2AxW177nZbgIZctmzZK6hYsPbAMRICa9a3GG+1YrhXh8GVyW0f5WGMEilbCVtFUrecA==",
"version": "20.51.0",
"resolved": "https://registry.npmjs.org/detox/-/detox-20.51.0.tgz",
"integrity": "sha512-epO3hZwxY/cN38vZoF5FSOAdDu2rnS4pvurPxpI5RZ7E5h++EiieZDC8yIV/uLjTxEnU5SoKIb6lfUMk57TrTA==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@ -7873,6 +7878,8 @@
},
"node_modules/detox/node_modules/fs-extra": {
"version": "11.3.4",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz",
"integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
@ -7885,6 +7892,9 @@
},
"node_modules/detox/node_modules/glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
@ -7902,6 +7912,8 @@
},
"node_modules/detox/node_modules/jsonfile": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
"integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
@ -7912,6 +7924,8 @@
},
"node_modules/detox/node_modules/minimatch": {
"version": "5.1.9",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
"integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
@ -7922,6 +7936,8 @@
},
"node_modules/detox/node_modules/semver": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@ -7932,6 +7948,8 @@
},
"node_modules/detox/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
@ -7942,6 +7960,8 @@
},
"node_modules/detox/node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
@ -7949,6 +7969,8 @@
},
"node_modules/detox/node_modules/ws": {
"version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
@ -13242,7 +13264,9 @@
}
},
"node_modules/lodash": {
"version": "4.17.21",
"version": "4.18.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
"license": "MIT"
},
"node_modules/lodash.camelcase": {
@ -15862,7 +15886,9 @@
}
},
"node_modules/react-native-camera-kit-no-google": {
"version": "16.2.0",
"version": "17.0.3",
"resolved": "git+ssh://git@github.com/BlueWallet/react-native-camera-kit-no-google.git#e6dd85b4ea2a7b17da65ab8bfc762960d177b882",
"integrity": "sha512-T+DtI1hLUZ1LQ+cVCD3LQR0J6t1bJGXo2gKF+JFt14R6nXjcbd+SZDjGjQGuRfP2TchRny/cf1GNQpgIc9QcaQ==",
"license": "MIT",
"engines": {
"node": ">=18"
@ -15978,10 +16004,13 @@
}
},
"node_modules/react-native-gesture-handler": {
"version": "2.30.0",
"version": "2.31.1",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.31.1.tgz",
"integrity": "sha512-wQDlECdEzHhYKTnQXFnSqWUtJ5TS3MGQi7EWvQczTnEVKfk6XVSBecnpWAoI/CqlYQ7IWMJEyutY6BxwEBoxeg==",
"license": "MIT",
"dependencies": {
"@egjs/hammerjs": "^2.0.17",
"@types/react-test-renderer": "^19.1.0",
"hoist-non-react-statics": "^3.3.0",
"invariant": "^2.2.4"
},
@ -16040,7 +16069,9 @@
}
},
"node_modules/react-native-keychain": {
"version": "9.2.3",
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/react-native-keychain/-/react-native-keychain-10.0.0.tgz",
"integrity": "sha512-YzPKSAnSzGEJ12IK6CctNLU79T1W15WDrElRQ+1/FsOazGX9ucFPTQwgYe8Dy8jiSEDJKM4wkVa3g4lD2Z+Pnw==",
"license": "MIT",
"workspaces": [
"KeychainExample",
@ -16772,12 +16803,13 @@
}
},
"node_modules/rn-qr-generator": {
"version": "1.4.5",
"resolved": "git+ssh://git@github.com/BlueWallet/rn-qr-generator.git#5870927a70f5bf43dd59b332fd221af971b82bfe",
"integrity": "sha512-zdcYD0LYGY7vQoJ/N7OvSaC97vHD+cZ3rY7nFZ81YJs0tqbhRxZsEQddQnkBkP41WVb40M9J129xNe2zfnwtSw==",
"version": "2.0.0",
"resolved": "git+ssh://git@github.com/BlueWallet/rn-qr-generator.git#d53be844c985759197da91b325f7a89d5ef02f90",
"integrity": "sha512-yLDNmNsvZxblXyd5kOBF81cXf7bGNANhGYyRdzvycFV4l8UNAE3fObQFfvaj3mSym9gBGh6uxRFB9h7Xji31rg==",
"license": "MIT",
"peerDependencies": {
"react-native": ">=0.55"
"react": "*",
"react-native": ">=0.71.0"
}
},
"node_modules/run-parallel": {

View File

@ -1,6 +1,6 @@
{
"name": "bluewallet",
"version": "7.2.7",
"version": "8.0.0",
"license": "MIT",
"repository": {
"type": "git",
@ -71,7 +71,7 @@
"android:clean": "cd android; ./gradlew clean ; cd .. ; rm -r -f android/app/.cxx; npm run android",
"android:restart": "adb shell am force-stop io.bluewallet.bluewallet; adb shell monkey -p io.bluewallet.bluewallet -c android.intent.category.LAUNCHER 1",
"ios": "react-native run-ios",
"postinstall": "rm -r -f node_modules/react-native-camera-kit-no-google/android/build; npm run releasenotes2json; npm run branch2json; npm run patches",
"postinstall": "npm run releasenotes2json; npm run branch2json; npm run patches",
"patches": "npx patch-package",
"test": "npm run lint && npm run unit && npm run integration",
"integration": "jest tests/integration/*",
@ -94,7 +94,7 @@
"dependencies": {
"@arkade-os/boltz-swap": "0.2.19",
"@arkade-os/sdk": "0.3.12",
"@babel/preset-env": "7.29.0",
"@babel/preset-env": "7.29.2",
"@bugsnag/react-native": "8.8.1",
"@bugsnag/source-maps": "2.3.3",
"@keystonehq/bc-ur-registry": "0.7.1",
@ -107,12 +107,12 @@
"@react-native-community/cli-platform-android": "20.1.3",
"@react-native-community/cli-platform-ios": "20.1.3",
"@react-native-documents/picker": "12.0.1",
"@react-native-vector-icons/entypo": "12.4.2",
"@react-native-vector-icons/entypo": "12.5.0",
"@react-native-vector-icons/fontawesome": "12.4.2",
"@react-native-vector-icons/fontawesome6": "12.3.2",
"@react-native-vector-icons/ionicons": "12.4.2",
"@react-native-vector-icons/material-design-icons": "12.4.2",
"@react-native-vector-icons/material-icons": "12.4.2",
"@react-native-vector-icons/ionicons": "12.5.0",
"@react-native-vector-icons/material-design-icons": "12.5.0",
"@react-native-vector-icons/material-icons": "12.5.0",
"@react-native/babel-preset": "0.84.1",
"@react-native/codegen": "0.84.1",
"@react-native/gradle-plugin": "0.84.1",
@ -120,7 +120,7 @@
"@react-navigation/devtools": "7.0.56",
"@react-navigation/drawer": "7.9.8",
"@react-navigation/native": "7.2.2",
"@react-navigation/native-stack": "7.14.10",
"@react-navigation/native-stack": "7.14.11",
"@scure/base": "2.0.0",
"@spsina/bip47": "github:BlueWallet/bip47#df82345",
"aezeed": "0.0.5",
@ -131,7 +131,7 @@
"bignumber.js": "9.3.1",
"bip21": "2.0.3",
"bip32": "5.0.1",
"bip38": "github:BlueWallet/bip38",
"bip38": "github:BlueWallet/bip38#7ec4b1932b98eaaff16c5a26765a26466958e6b4",
"bip39": "3.1.0",
"bitcoinjs-lib": "7.0.0",
"bitcoinjs-message": "2.2.0",
@ -140,8 +140,8 @@
"coinselect": "github:BlueWallet/coinselect#35f8038",
"crypto-browserify": "3.12.1",
"crypto-js": "4.2.0",
"dayjs": "1.11.19",
"detox": "20.50.1",
"dayjs": "1.11.20",
"detox": "20.51.0",
"ecpair": "3.0.0",
"electrum-client": "github:BlueWallet/rn-electrum-client#d9f511d",
"electrum-mnemonic": "2.0.0",
@ -155,21 +155,21 @@
"react-native": "0.84.1",
"react-native-biometrics": "3.0.1",
"react-native-blue-crypto": "github:BlueWallet/react-native-blue-crypto#3cb5442",
"react-native-camera-kit-no-google": "16.2.0",
"react-native-camera-kit-no-google": "github:BlueWallet/react-native-camera-kit-no-google#e6dd85b4ea2a7b17da65ab8bfc762960d177b882",
"react-native-capture-protection": "github:BlueWallet/react-native-capture-protection#bb78a40",
"react-native-context-menu-view": "github:BlueWallet/react-native-context-menu-view#144110b02afdb11b431741aef5da95e91b942a9b",
"react-native-default-preference": "https://github.com/BlueWallet/react-native-default-preference.git#6338a1f1235e4130b8cfc2dd3b53015eeff2870c",
"react-native-default-preference": "github:BlueWallet/react-native-default-preference#6338a1f1235e4130b8cfc2dd3b53015eeff2870c",
"react-native-device-info": "14.1.1",
"react-native-draggable-flatlist": "4.0.3",
"react-native-draglist": "github:BlueWallet/react-native-draglist#0c8049d",
"react-native-edge-to-edge": "1.8.1",
"react-native-fs": "2.20.0",
"react-native-gesture-handler": "2.30.0",
"react-native-gesture-handler": "2.31.1",
"react-native-get-random-values": "1.11.0",
"react-native-handoff": "github:BlueWallet/react-native-handoff#v0.0.4",
"react-native-haptic-feedback": "2.3.4",
"react-native-image-picker": "8.2.1",
"react-native-keychain": "9.2.3",
"react-native-keychain": "10.0.0",
"react-native-linear-gradient": "2.8.3",
"react-native-localize": "3.7.0",
"react-native-notifications": "5.2.2",
@ -189,9 +189,9 @@
"react-test-renderer": "19.2.4",
"readable-stream": "3.6.2",
"realm": "20.2.0",
"rn-qr-generator": "https://github.com/BlueWallet/rn-qr-generator.git#5870927a70f5bf43dd59b332fd221af971b82bfe",
"rn-qr-generator": "github:BlueWallet/rn-qr-generator#d53be844c985759197da91b325f7a89d5ef02f90",
"silent-payments": "github:BlueWallet/SilentPayments#59a037",
"slip39": "https://github.com/BlueWallet/slip39-js#d316ee6",
"slip39": "github:BlueWallet/slip39-js#d316ee6",
"stream-browserify": "3.0.0",
"url": "0.11.4",
"wif": "2.0.6"

View File

@ -26,7 +26,7 @@ import { LightningCustodianWallet } from '../../class/wallets/lightning-custodia
import { DecodedInvoice, TWallet } from '../../class/wallets/types';
import { useKeyboard } from '../../hooks/useKeyboard';
import { BlueLoading } from '../../components/BlueLoading';
import { LightningArkWallet } from '../../class';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet';
type RouteProps = RouteProp<LNDStackParamsList, 'ScanLNDInvoice'>;
type NavigationProps = NativeStackNavigationProp<LNDStackParamsList, 'ScanLNDInvoice'>;

View File

@ -30,7 +30,8 @@ import { DismissKeyboardInputAccessory, DismissKeyboardInputAccessoryViewID } fr
import { majorTomToGroundControl, tryToObtainPermissions } from '../../blue_modules/notifications';
import { BlueLoading } from '../../components/BlueLoading';
import { useExtendedNavigation } from '../../hooks/useExtendedNavigation.ts';
import { LightningArkWallet, LightningCustodianWallet } from '../../class';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import assert from 'assert';
import { scanQrHelper } from '../../helpers/scan-qr.ts';

View File

@ -20,7 +20,7 @@ import { LightningTransaction } from '../../class/wallets/types';
import dayjs from 'dayjs';
import SafeAreaScrollView from '../../components/SafeAreaScrollView';
import { BlueSpacing20 } from '../../components/BlueSpacing';
import { LightningCustodianWallet } from '../../class';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
type LNDViewInvoiceRouteParams = {
walletID: string;

View File

@ -17,7 +17,8 @@ import { BlueLoading } from '../../components/BlueLoading';
import { useExtendedNavigation } from '../../hooks/useExtendedNavigation';
import useWalletSubscribe from '../../hooks/useWalletSubscribe.tsx';
import assert from 'assert';
import { LightningArkWallet, LightningCustodianWallet } from '../../class';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
const AuthState = {
USER_PROMPT: 0,

View File

@ -4,7 +4,7 @@ import { ActivityIndicator, Keyboard, Linking, StyleSheet, TextInput, View, Text
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';
import { useTheme } from '../../components/themes';

View File

@ -22,7 +22,7 @@ import { SendDetailsStackParamList } from '../../navigation/SendDetailsStackPara
import { useExtendedNavigation } from '../../hooks/useExtendedNavigation';
import { ContactList } from '../../class/contact-list';
import { useStorage } from '../../hooks/context/useStorage';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { useSettings } from '../../hooks/context/useSettings';
import { majorTomToGroundControl } from '../../blue_modules/notifications';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';

View File

@ -29,7 +29,9 @@ import { btcToSatoshi, fiatToBTC } from '../../blue_modules/currency';
import * as fs from '../../blue_modules/fs';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { BlueText } from '../../BlueComponents';
import { HDSegwitBech32Wallet, MultisigHDWallet, WatchOnlyWallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { ContactList } from '../../class/contact-list';
import DeeplinkSchemaMatch from '../../class/deeplink-schema-match';
import { AbstractHDElectrumWallet } from '../../class/wallets/abstract-hd-electrum-wallet';

View File

@ -27,7 +27,7 @@ import { BitcoinUnit } from '../../models/bitcoinUnits';
import { useStorage } from '../../hooks/context/useStorage';
import { useExtendedNavigation } from '../../hooks/useExtendedNavigation';
import { combinePSBTs } from '../../util/combinePSBTs.ts';
import { MultisigHDWallet } from '../../class';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import assert from 'assert';
type RouteParams = {

View File

@ -21,7 +21,7 @@ import { majorTomToGroundControl } from '../../blue_modules/notifications';
import { openSignedTransactionRaw } from '../../blue_modules/fs';
import { BlueSpacing20 } from '../../components/BlueSpacing';
import { SendDetailsStackParamList } from '../../navigation/SendDetailsStackParamList';
import { WatchOnlyWallet } from '../../class';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
const PsbtWithHardwareWallet = () => {
const { txMetadata, fetchAndSaveWalletTransactions, wallets } = useStorage();

View File

@ -6,7 +6,7 @@ import Icon from '@react-native-vector-icons/fontawesome6';
import A from '../../blue_modules/analytics';
import { BlueTextCentered } from '../../BlueComponents';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import presentAlert from '../../components/Alert';
import { BlueSpacing20 } from '../../components/BlueSpacing';
import Button from '../../components/Button';

View File

@ -14,15 +14,13 @@ import * as fs from '../../blue_modules/fs';
import ecc from '../../blue_modules/noble_ecc';
import { hexToUint8Array, uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
import { BlueText } from '../../BlueComponents';
import {
HDAezeedWallet,
HDSegwitBech32Wallet,
HDSegwitP2SHWallet,
LegacyWallet,
SegwitP2SHWallet,
SLIP39LegacyP2PKHWallet,
TaprootWallet,
} from '../../class';
import { HDAezeedWallet } from '../../class/wallets/hd-aezeed-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { HDSegwitP2SHWallet } from '../../class/wallets/hd-segwit-p2sh-wallet';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
import { SLIP39LegacyP2PKHWallet } from '../../class/wallets/slip39-wallets';
import { TaprootWallet } from '../../class/wallets/taproot-wallet';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';
import SaveFileButton from '../../components/SaveFileButton';

View File

@ -5,7 +5,8 @@ import PropTypes from 'prop-types';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { BlueCard, BlueText } from '../../BlueComponents';
import { HDSegwitBech32Transaction, HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Transaction } from '../../class/hd-segwit-bech32-transaction';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import presentAlert, { AlertType } from '../../components/Alert';
import Button from '../../components/Button';
import SafeArea from '../../components/SafeArea';

View File

@ -2,7 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import { ActivityIndicator, ScrollView, StyleSheet, View } from 'react-native';
import { BlueText } from '../../BlueComponents';
import { HDSegwitBech32Transaction, HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Transaction } from '../../class/hd-segwit-bech32-transaction';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import presentAlert from '../../components/Alert';
import SafeArea from '../../components/SafeArea';
import loc from '../../loc';

View File

@ -2,7 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import { ActivityIndicator, ScrollView, View } from 'react-native';
import { BlueText } from '../../BlueComponents';
import { HDSegwitBech32Transaction, HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Transaction } from '../../class/hd-segwit-bech32-transaction';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import presentAlert from '../../components/Alert';
import SafeArea from '../../components/SafeArea';
import loc from '../../loc';

View File

@ -6,7 +6,8 @@ import Icon from '../../components/Icon';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { BlueCard, BlueText } from '../../BlueComponents';
import { HDSegwitBech32Transaction, HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Transaction } from '../../class/hd-segwit-bech32-transaction';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { Transaction, TWallet } from '../../class/wallets/types';
import Button from '../../components/Button';
import HandOffComponent from '../../components/HandOffComponent';

View File

@ -5,7 +5,10 @@ import assert from 'assert';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { BlueButtonLink, BlueFormLabel, BlueText } from '../../BlueComponents';
import { HDSegwitBech32Wallet, HDTaprootWallet, LightningCustodianWallet, HDLegacyP2PKHWallet } from '../../class';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { HDTaprootWallet } from '../../class/wallets/hd-taproot-wallet';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';
import { useTheme } from '../../components/themes';

View File

@ -4,7 +4,10 @@ import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { FlatList, StyleSheet, TextInput, View } from 'react-native';
import debounce from '../../blue_modules/debounce';
import { BlueFormLabel, BlueTextCentered } from '../../BlueComponents';
import { HDLegacyP2PKHWallet, HDSegwitBech32Wallet, HDSegwitP2SHWallet, HDTaprootWallet } from '../../class';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { HDSegwitP2SHWallet } from '../../class/wallets/hd-segwit-p2sh-wallet';
import { HDTaprootWallet } from '../../class/wallets/hd-taproot-wallet';
import { validateBip32 } from '../../class/wallet-import';
import { TWallet } from '../../class/wallets/types';
import Button from '../../components/Button';

View File

@ -3,7 +3,8 @@ import React, { useState } from 'react';
import { ActivityIndicator, StyleSheet, TextInput, View } from 'react-native';
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { BlueFormLabel, BlueFormMultiInput } from '../../BlueComponents';
import { HDSegwitBech32Wallet, WatchOnlyWallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';
import SafeArea from '../../components/SafeArea';

View File

@ -3,7 +3,8 @@ import { RouteProp, useRoute } from '@react-navigation/native';
import { ActivityIndicator, FlatList, LayoutAnimation, Platform, StyleSheet, UIManager, View } from 'react-native';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { BlueButtonLink, BlueFormLabel, BlueText } from '../../BlueComponents';
import { HDSegwitBech32Wallet, WatchOnlyWallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import startImport, { TImport } from '../../class/wallet-import';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';

View File

@ -19,7 +19,7 @@ import { useTheme } from '../../components/themes';
import { useExtendedNavigation } from '../../hooks/useExtendedNavigation';
import loc from '../../loc';
import { useStorage } from '../../hooks/context/useStorage';
import { TTXMetadata } from '../../class';
import { TTXMetadata } from '../../class/blue-app';
import { ExtendedTransaction, LightningTransaction, Transaction, TWallet } from '../../class/wallets/types';
import useBounceAnimation from '../../hooks/useBounceAnimation';
import HeaderRightButton from '../../components/HeaderRightButton';

View File

@ -3,7 +3,7 @@ import { StyleSheet, Text, View, Pressable, Platform } from 'react-native';
import { RouteProp, useRoute } from '@react-navigation/native';
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import Icon from '../../components/Icon';
import { MultisigHDWallet } from '../../class';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import ListItem from '../../components/ListItem';
import SafeArea from '../../components/SafeArea';
import { useTheme } from '../../components/themes';

View File

@ -7,7 +7,7 @@ import { sha256 } from '@noble/hashes/sha256';
import { SectionList, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { satoshiToLocalCurrency } from '../../blue_modules/currency';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { ContactList } from '../../class/contact-list';
import { AbstractHDElectrumWallet } from '../../class/wallets/abstract-hd-electrum-wallet';
import presentAlert from '../../components/Alert';

View File

@ -15,7 +15,9 @@ import Badge from '../../components/Badge';
import { isDesktop } from '../../blue_modules/environment';
import { encodeUR } from '../../blue_modules/ur';
import { BlueCard } from '../../BlueComponents';
import { HDSegwitBech32Wallet, MultisigCosigner, MultisigHDWallet } from '../../class';
import { MultisigCosigner } from '../../class/multisig-cosigner';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';
import MultipleStepsListItem, {

View File

@ -1,7 +1,7 @@
import React, { useCallback, useEffect, useLayoutEffect, useRef, useReducer, useMemo } from 'react';
import { useRoute, RouteProp, useFocusEffect } from '@react-navigation/native';
import { ActivityIndicator, FlatList, StyleSheet, View, Platform, UIManager } from 'react-native';
import { WatchOnlyWallet } from '../../class';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { AddressItem } from '../../components/addresses/AddressItem';
import { useTheme } from '../../components/themes';
import { useStorage } from '../../hooks/context/useStorage';

View File

@ -4,16 +4,14 @@ import { writeFileAndExport } from '../../blue_modules/fs';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
import { BlueCard, BlueText } from '../../BlueComponents';
import {
HDAezeedWallet,
HDSegwitBech32Wallet,
LegacyWallet,
LightningArkWallet,
MultisigHDWallet,
SegwitBech32Wallet,
SegwitP2SHWallet,
WatchOnlyWallet,
} from '../../class';
import { HDAezeedWallet } from '../../class/wallets/hd-aezeed-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import { SegwitBech32Wallet } from '../../class/wallets/segwit-bech32-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { AbstractHDElectrumWallet } from '../../class/wallets/abstract-hd-electrum-wallet';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import presentAlert from '../../components/Alert';

View File

@ -7,7 +7,8 @@ import { useScreenProtect } from '../../hooks/useScreenProtect';
import { validateMnemonic } from '../../blue_modules/bip39';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { BlueText } from '../../BlueComponents';
import { LightningCustodianWallet, WatchOnlyWallet } from '../../class';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import HandOffComponent from '../../components/HandOffComponent';
import QRCodeComponent from '../../components/QRCodeComponent';
import SeedWords from '../../components/SeedWords';

View File

@ -19,7 +19,10 @@ import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { isDesktop } from '../../blue_modules/environment';
import * as fs from '../../blue_modules/fs';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { LightningArkWallet, LightningCustodianWallet, MultisigHDWallet, WatchOnlyWallet } from '../../class';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import presentAlert, { AlertType } from '../../components/Alert';
import { FButton, FContainer } from '../../components/FloatButtons';
import { useTheme } from '../../components/themes';

View File

@ -2,7 +2,7 @@ import React, { useReducer, useCallback } from 'react';
import { useRoute, RouteProp } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import { StyleSheet, Text, View } from 'react-native';
import { MultisigHDWallet } from '../../class';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import Button from '../../components/Button';
import ListItem from '../../components/ListItem';
import SafeArea from '../../components/SafeArea';

View File

@ -5,7 +5,9 @@ import Animated, { LinearTransition } from 'react-native-reanimated';
import Icon from '../../components/Icon';
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
import { encodeUR } from '../../blue_modules/ur';
import { HDSegwitBech32Wallet, MultisigCosigner, MultisigHDWallet } from '../../class';
import { MultisigCosigner } from '../../class/multisig-cosigner';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import presentAlert from '../../components/Alert';
import Button from '../../components/Button';
import { useTheme } from '../../components/themes';

View File

@ -15,7 +15,7 @@ import { useStorage } from '../../hooks/context/useStorage';
import { HandOffActivityType } from '../../components/types';
import { useSettings } from '../../hooks/context/useSettings';
import { BlueSpacing20 } from '../../components/BlueSpacing';
import { HDTaprootWallet } from '../../class';
import { HDTaprootWallet } from '../../class/wallets/hd-taproot-wallet';
import { WalletDescriptor } from '../../class/wallet-descriptor.ts';
type WalletXpubRouteProp = RouteProp<{ params: { walletID: string; xpub: string } }, 'params'>;

View File

@ -6,7 +6,8 @@ import { ECPairFactory } from 'ecpair';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import ecc from '../../blue_modules/noble_ecc';
import { HDLegacyP2PKHWallet, HDSegwitBech32Wallet } from '../../class';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
const ECPair = ECPairFactory(ecc);

View File

@ -2,7 +2,7 @@ import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { HDLegacyBreadwalletWallet } from '../../class';
import { HDLegacyBreadwalletWallet } from '../../class/wallets/hd-legacy-breadwallet-wallet';
import { AbstractHDElectrumWallet } from '../../class/wallets/abstract-hd-electrum-wallet';
jest.setTimeout(300 * 1000);

View File

@ -2,7 +2,10 @@ import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { HDSegwitBech32Transaction, HDSegwitBech32Wallet, SegwitBech32Wallet, SegwitP2SHWallet } from '../../class';
import { HDSegwitBech32Transaction } from '../../class/hd-segwit-bech32-transaction';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { SegwitBech32Wallet } from '../../class/wallets/segwit-bech32-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
jest.setTimeout(150 * 1000);

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
jest.setTimeout(90 * 1000);

View File

@ -2,7 +2,7 @@ import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { HDSegwitP2SHWallet } from '../../class';
import { HDSegwitP2SHWallet } from '../../class/wallets/hd-segwit-p2sh-wallet';
jest.setTimeout(300 * 1000);

View File

@ -2,23 +2,20 @@ import assert from 'assert';
import fs from 'fs';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import {
HDAezeedWallet,
HDLegacyBreadwalletWallet,
HDLegacyElectrumSeedP2PKHWallet,
HDLegacyP2PKHWallet,
HDSegwitBech32Wallet,
HDSegwitElectrumSeedP2WPKHWallet,
HDSegwitP2SHWallet,
HDTaprootWallet,
LegacyWallet,
LightningArkWallet,
SegwitBech32Wallet,
SegwitP2SHWallet,
SLIP39SegwitBech32Wallet,
SLIP39SegwitP2SHWallet,
WatchOnlyWallet,
} from '../../class';
import { HDAezeedWallet } from '../../class/wallets/hd-aezeed-wallet';
import { HDLegacyBreadwalletWallet } from '../../class/wallets/hd-legacy-breadwallet-wallet';
import { HDLegacyElectrumSeedP2PKHWallet } from '../../class/wallets/hd-legacy-electrum-seed-p2pkh-wallet';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { HDSegwitElectrumSeedP2WPKHWallet } from '../../class/wallets/hd-segwit-electrum-seed-p2wpkh-wallet';
import { HDSegwitP2SHWallet } from '../../class/wallets/hd-segwit-p2sh-wallet';
import { HDTaprootWallet } from '../../class/wallets/hd-taproot-wallet';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet';
import { SegwitBech32Wallet } from '../../class/wallets/segwit-bech32-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
import { SLIP39SegwitBech32Wallet, SLIP39SegwitP2SHWallet } from '../../class/wallets/slip39-wallets';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import startImport from '../../class/wallet-import';
import { TWallet } from '../../class/wallets/types';

View File

@ -1,7 +1,9 @@
import assert from 'assert';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { LegacyWallet, SegwitBech32Wallet, SegwitP2SHWallet } from '../../class';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
import { SegwitBech32Wallet } from '../../class/wallets/segwit-bech32-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
jest.setTimeout(30 * 1000);

View File

@ -2,7 +2,7 @@ import assert from 'assert';
import fs from 'fs';
import path from 'path';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { LightningArkWallet } from '../../class/wallets/lightning-ark-wallet.ts';
// Mock AsyncStorage using fs in tests/integration/fixtures/ark/

View File

@ -1,6 +1,6 @@
import assert from 'assert';
import { LightningCustodianWallet } from '../../class';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import { fetch } from '../../util/fetch';
jest.setTimeout(200 * 1000);

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { MultisigHDWallet } from '../../class/';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
jest.setTimeout(300 * 1000);

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as BlueElectrum from '../../blue_modules/BlueElectrum';
import { WatchOnlyWallet } from '../../class';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
jest.setTimeout(500 * 1000);

View File

@ -4,7 +4,8 @@ import * as bitcoin from 'bitcoinjs-lib';
import { ECPairFactory } from 'ecpair';
import ecc from '../../blue_modules/noble_ecc';
import { HDSegwitBech32Wallet, WatchOnlyWallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { CreateTransactionUtxo } from '../../class/wallets/types';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';

View File

@ -2,7 +2,10 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { HDLegacyP2PKHWallet, HDSegwitBech32Wallet, HDSegwitP2SHWallet, WatchOnlyWallet } from '../../class';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { HDSegwitP2SHWallet } from '../../class/wallets/hd-segwit-p2sh-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { CreateTransactionUtxo } from '../../class/wallets/types.ts';
import { Transaction } from 'bitcoinjs-lib';
import { hexToUint8Array } from '../../blue_modules/uint8array-extras/index';

View File

@ -1,7 +1,8 @@
import assert from 'assert';
import DeeplinkSchemaMatch from '../../class/deeplink-schema-match';
import { HDSegwitBech32Wallet, LightningCustodianWallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
jest.mock('../../blue_modules/BlueElectrum', () => {
return {

View File

@ -1,6 +1,7 @@
import assert from 'assert';
import { HDAezeedWallet, WatchOnlyWallet } from '../../class';
import { HDAezeedWallet } from '../../class/wallets/hd-aezeed-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('HDAezeedWallet', () => {

View File

@ -1,6 +1,6 @@
import assert from 'assert';
import { HDLegacyBreadwalletWallet } from '../../class';
import { HDLegacyBreadwalletWallet } from '../../class/wallets/hd-legacy-breadwallet-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('HDLegacyBreadwalletWallet', () => {

View File

@ -1,6 +1,6 @@
import assert from 'assert';
import { HDLegacyElectrumSeedP2PKHWallet } from '../../class';
import { HDLegacyElectrumSeedP2PKHWallet } from '../../class/wallets/hd-legacy-electrum-seed-p2pkh-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('HDLegacyElectrumSeedP2PKHWallet', () => {

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { HDLegacyP2PKHWallet } from '../../class';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('Legacy HD (BIP44)', () => {

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('Bech32 Segwit HD (BIP84)', () => {

View File

@ -1,6 +1,6 @@
import assert from 'assert';
import { HDSegwitElectrumSeedP2WPKHWallet } from '../../class';
import { HDSegwitElectrumSeedP2WPKHWallet } from '../../class/wallets/hd-segwit-electrum-seed-p2wpkh-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('HDSegwitElectrumSeedP2WPKHWallet', () => {

View File

@ -1,6 +1,10 @@
import assert from 'assert';
import { HDLegacyP2PKHWallet, HDSegwitP2SHWallet, LegacyWallet, SegwitBech32Wallet, SegwitP2SHWallet } from '../../class';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
import { HDSegwitP2SHWallet } from '../../class/wallets/hd-segwit-p2sh-wallet';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
import { SegwitBech32Wallet } from '../../class/wallets/segwit-bech32-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('P2SH Segwit HD (BIP49)', () => {

View File

@ -1,6 +1,7 @@
import assert from 'assert';
import { HDTaprootWallet, TaprootWallet } from '../../class';
import { HDTaprootWallet } from '../../class/wallets/hd-taproot-wallet';
import { TaprootWallet } from '../../class/wallets/taproot-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
const utxos = [

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { LegacyWallet } from '../../class';
import { LegacyWallet } from '../../class/wallets/legacy-wallet';
describe('Legacy wallet', () => {
it('can validate addresses', () => {

View File

@ -3,7 +3,7 @@ import * as bitcoin from 'bitcoinjs-lib';
import Base43 from '../../blue_modules/base43';
import { BlueURDecoder, decodeUR, encodeUR } from '../../blue_modules/ur';
import { MultisigHDWallet } from '../../class/';
import { MultisigHDWallet } from '../../class/wallets/multisig-hd-wallet';
import { MultisigCosigner } from '../../class/multisig-cosigner';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';

View File

@ -2,7 +2,7 @@ import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { PayjoinClient } from 'payjoin-client';
import { HDSegwitBech32Wallet } from '../../class';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import PayjoinTransaction from '../../class/payjoin-transaction';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { SegwitBech32Wallet } from '../../class';
import { SegwitBech32Wallet } from '../../class/wallets/segwit-bech32-wallet';
describe('Segwit P2SH wallet', () => {
it('can create transaction', async () => {

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { SegwitP2SHWallet } from '../../class';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
describe('Segwit P2SH wallet', () => {
it('can create transaction', async () => {

View File

@ -1,6 +1,6 @@
import assert from 'assert';
import { SLIP39LegacyP2PKHWallet, SLIP39SegwitBech32Wallet, SLIP39SegwitP2SHWallet } from '../../class';
import { SLIP39LegacyP2PKHWallet, SLIP39SegwitBech32Wallet, SLIP39SegwitP2SHWallet } from '../../class/wallets/slip39-wallets';
global.crypto = require('crypto');

View File

@ -1,7 +1,10 @@
import AsyncStorage from '@react-native-async-storage/async-storage';
import assert from 'assert';
import { BlueApp, HDSegwitBech32Wallet, SegwitP2SHWallet, WatchOnlyWallet } from '../../class';
import { BlueApp } from '../../class/blue-app';
import { HDSegwitBech32Wallet } from '../../class/wallets/hd-segwit-bech32-wallet';
import { SegwitP2SHWallet } from '../../class/wallets/segwit-p2sh-wallet';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
jest.mock('../../blue_modules/BlueElectrum', () => {
return {

View File

@ -1,7 +1,7 @@
import assert from 'assert';
import * as bitcoin from 'bitcoinjs-lib';
import { TaprootWallet } from '../../class';
import { TaprootWallet } from '../../class/wallets/taproot-wallet';
describe('Taproot wallet', () => {
it('can convert scriptPubKey to address', () => {

View File

@ -2,7 +2,7 @@ import assert from 'assert';
import { Psbt } from 'bitcoinjs-lib';
import { BlueURDecoder, clearUseURv1, decodeUR, encodeUR, extractSingleWorkload, setUseURv1 } from '../../blue_modules/ur';
import { WatchOnlyWallet } from '../../class';
import { WatchOnlyWallet } from '../../class/wallets/watch-only-wallet';
import { uint8ArrayToHex } from '../../blue_modules/uint8array-extras';
describe('Watch only wallet', () => {