From 78a033999e5bf7e07174f42a6c18f79fcb002af1 Mon Sep 17 00:00:00 2001 From: Marcos Rodriguez Velez Date: Sun, 29 Oct 2023 11:48:54 -0400 Subject: [PATCH 1/2] REF: Handle isTorCapable in-code rather than script changes Refactoring so making builds for mac and old android is less hacky --- blue_modules/BlueElectrum.js | 5 +++-- class/lnurl.js | 5 +++-- class/wallets/lightning-custodian-wallet.js | 5 +++-- screen/lnd/lndCreateInvoice.js | 3 ++- screen/send/confirm.js | 3 ++- screen/settings/torSettings.js | 5 +++-- scripts/maccatalystpatches/applypatchesformaccatalyst.sh | 3 +-- 7 files changed, 17 insertions(+), 12 deletions(-) diff --git a/blue_modules/BlueElectrum.js b/blue_modules/BlueElectrum.js index 47de4ca44..f24d322b6 100644 --- a/blue_modules/BlueElectrum.js +++ b/blue_modules/BlueElectrum.js @@ -4,13 +4,14 @@ import { LegacyWallet, SegwitBech32Wallet, SegwitP2SHWallet, TaprootWallet } fro import DefaultPreference from 'react-native-default-preference'; import loc from '../loc'; import WidgetCommunication from './WidgetCommunication'; -import { isTorDaemonDisabled } from './environment'; +import { isTorCapable, isTorDaemonDisabled } from './environment'; import alert from '../components/Alert'; const bitcoin = require('bitcoinjs-lib'); const ElectrumClient = require('electrum-client'); const reverse = require('buffer-reverse'); const BigNumber = require('bignumber.js'); -const torrific = require('./torrific'); +const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); + const Realm = require('realm'); const ELECTRUM_HOST = 'electrum_host'; diff --git a/class/lnurl.js b/class/lnurl.js index 6e23959e4..ed54c1648 100644 --- a/class/lnurl.js +++ b/class/lnurl.js @@ -1,12 +1,13 @@ import { bech32 } from 'bech32'; import bolt11 from 'bolt11'; -import { isTorDaemonDisabled } from '../blue_modules/environment'; +import { isTorCapable, isTorDaemonDisabled } from '../blue_modules/environment'; import { parse } from 'url'; // eslint-disable-line n/no-deprecated-api import { createHmac } from 'crypto'; import secp256k1 from 'secp256k1'; const CryptoJS = require('crypto-js'); const createHash = require('create-hash'); -const torrific = require('../blue_modules/torrific'); +const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); + const ONION_REGEX = /^(http:\/\/[^/:@]+\.onion(?::\d{1,5})?)(\/.*)?$/; // regex for onion URL /** diff --git a/class/wallets/lightning-custodian-wallet.js b/class/wallets/lightning-custodian-wallet.js index 9def152da..9364a76b5 100644 --- a/class/wallets/lightning-custodian-wallet.js +++ b/class/wallets/lightning-custodian-wallet.js @@ -2,8 +2,9 @@ import { LegacyWallet } from './legacy-wallet'; import Frisbee from 'frisbee'; import bolt11 from 'bolt11'; import { BitcoinUnit, Chain } from '../../models/bitcoinUnits'; -import { isTorDaemonDisabled } from '../../blue_modules/environment'; -const torrific = require('../../blue_modules/torrific'); +import { isTorDaemonDisabled, isTorCapable } from '../../blue_modules/environment'; +const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); + export class LightningCustodianWallet extends LegacyWallet { static type = 'lightningCustodianWallet'; static typeReadable = 'Lightning'; diff --git a/screen/lnd/lndCreateInvoice.js b/screen/lnd/lndCreateInvoice.js index c6b21974c..330073915 100644 --- a/screen/lnd/lndCreateInvoice.js +++ b/screen/lnd/lndCreateInvoice.js @@ -30,8 +30,9 @@ import alert from '../../components/Alert'; import { parse } from 'url'; // eslint-disable-line n/no-deprecated-api import { requestCameraAuthorization } from '../../helpers/scan-qr'; import { useTheme } from '../../components/themes'; +import { isTorCapable } from '../../blue_modules/environment'; const currency = require('../../blue_modules/currency'); -const torrific = require('../../blue_modules/torrific'); +const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); const LNDCreateInvoice = () => { const { wallets, saveToDisk, setSelectedWallet, isTorDisabled } = useContext(BlueStorageContext); diff --git a/screen/send/confirm.js b/screen/send/confirm.js index 88a688809..0d04d4e91 100644 --- a/screen/send/confirm.js +++ b/screen/send/confirm.js @@ -17,11 +17,12 @@ import { Psbt } from 'bitcoinjs-lib'; import { useNavigation, useRoute } from '@react-navigation/native'; import alert from '../../components/Alert'; import { useTheme } from '../../components/themes'; +import { isTorCapable } from '../../blue_modules/environment'; const currency = require('../../blue_modules/currency'); const BlueElectrum = require('../../blue_modules/BlueElectrum'); const Bignumber = require('bignumber.js'); const bitcoin = require('bitcoinjs-lib'); -const torrific = require('../../blue_modules/torrific'); +const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); const Confirm = () => { const { wallets, fetchAndSaveWalletTransactions, isElectrumDisabled, isTorDisabled } = useContext(BlueStorageContext); diff --git a/screen/settings/torSettings.js b/screen/settings/torSettings.js index be24414d5..3cbbcfc70 100644 --- a/screen/settings/torSettings.js +++ b/screen/settings/torSettings.js @@ -1,13 +1,14 @@ import React, { useState, useEffect, useContext } from 'react'; -import { View } from 'react-native'; +import { View } from 'react-native'; import navigationStyle from '../../components/navigationStyle'; import { BlueButton, BlueCard, BlueListItem, BlueLoading, BlueSpacing20, BlueText, SafeBlueArea } from '../../BlueComponents'; import loc from '../../loc'; import { BlueStorageContext } from '../../blue_modules/storage-context'; import alert from '../../components/Alert'; +import { isTorCapable } from '../../blue_modules/environment'; -const torrific = require('../../blue_modules/torrific'); +const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); /* TorSettings is not displayed in Settings menu if isTorCapable is false. No need to provide code protection. diff --git a/scripts/maccatalystpatches/applypatchesformaccatalyst.sh b/scripts/maccatalystpatches/applypatchesformaccatalyst.sh index 9550b3274..49f842ad9 100755 --- a/scripts/maccatalystpatches/applypatchesformaccatalyst.sh +++ b/scripts/maccatalystpatches/applypatchesformaccatalyst.sh @@ -7,8 +7,7 @@ sed -i '' 's/"patches": "patch -p1 < scripts\/react-native-tor.patch; patch -p1 rm -fr node_modules echo "Re-installing node_modules" npm i -echo "Deleting torrific.js and lightning-ldk-wallet.ts content" -cp scripts/maccatalystpatches/torrific.js blue_modules/torrific.js +echo "Deleting lightning-ldk-wallet.ts content" cp scripts/maccatalystpatches/lightning-ldk-wallet.ts class/wallets/lightning-ldk-wallet.ts echo "Updating Podfile" cd ios && pod update && cd .. From 72d37df929522a4c93e029d9944b8a3c2adf0b22 Mon Sep 17 00:00:00 2001 From: Marcos Rodriguez Velez Date: Sun, 29 Oct 2023 11:51:29 -0400 Subject: [PATCH 2/2] FIX: Paths --- blue_modules/BlueElectrum.js | 2 +- blue_modules/environment.ts | 1 + class/lnurl.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/blue_modules/BlueElectrum.js b/blue_modules/BlueElectrum.js index f24d322b6..d65949f11 100644 --- a/blue_modules/BlueElectrum.js +++ b/blue_modules/BlueElectrum.js @@ -10,7 +10,7 @@ const bitcoin = require('bitcoinjs-lib'); const ElectrumClient = require('electrum-client'); const reverse = require('buffer-reverse'); const BigNumber = require('bignumber.js'); -const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); +const torrific = isTorCapable ? require('./torrific') : require('../scripts/maccatalystpatches/torrific.js'); const Realm = require('realm'); diff --git a/blue_modules/environment.ts b/blue_modules/environment.ts index f0985a6e2..49107914d 100644 --- a/blue_modules/environment.ts +++ b/blue_modules/environment.ts @@ -11,6 +11,7 @@ const getIsTorCapable = (): boolean => { } else if (isDesktop) { capable = false; } + console.log('getIsTorCapable', capable); return capable; }; diff --git a/class/lnurl.js b/class/lnurl.js index ed54c1648..6f1d02e68 100644 --- a/class/lnurl.js +++ b/class/lnurl.js @@ -6,7 +6,7 @@ import { createHmac } from 'crypto'; import secp256k1 from 'secp256k1'; const CryptoJS = require('crypto-js'); const createHash = require('create-hash'); -const torrific = isTorCapable ? require('../../blue_modules/torrific') : require('../../scripts/maccatalystpatches/torrific.js'); +const torrific = isTorCapable ? require('../blue_modules/torrific') : require('../scripts/maccatalystpatches/torrific.js'); const ONION_REGEX = /^(http:\/\/[^/:@]+\.onion(?::\d{1,5})?)(\/.*)?$/; // regex for onion URL