mirror of
https://github.com/zhigang1992/wallet.git
synced 2026-01-12 22:53:27 +08:00
fix(ledger): reject when ledger wallet
This commit is contained in:
37
src/app/common/rpc-helpers.ts
Normal file
37
src/app/common/rpc-helpers.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import { RpcErrorCode } from '@btckit/types';
|
||||
|
||||
import { WalletMethodMap, makeRpcErrorResponse } from '@shared/rpc/rpc-methods';
|
||||
|
||||
import { useDefaultRequestParams } from './hooks/use-default-request-search-params';
|
||||
import { initialSearchParams } from './initial-search-params';
|
||||
import { useWalletType } from './use-wallet-type';
|
||||
|
||||
export function useRpcRequestParams() {
|
||||
const defaultParams = useDefaultRequestParams();
|
||||
return useMemo(
|
||||
() => ({
|
||||
...defaultParams,
|
||||
requestId: initialSearchParams.get('requestId') ?? '',
|
||||
}),
|
||||
[defaultParams]
|
||||
);
|
||||
}
|
||||
|
||||
export function useRejectIfLedgerWallet(request: keyof WalletMethodMap) {
|
||||
const { walletType } = useWalletType();
|
||||
const { tabId, requestId } = useRpcRequestParams();
|
||||
if (walletType !== 'ledger' || !tabId) return;
|
||||
chrome.tabs.sendMessage(
|
||||
tabId,
|
||||
makeRpcErrorResponse(request, {
|
||||
id: requestId,
|
||||
error: {
|
||||
code: RpcErrorCode.INTERNAL_ERROR,
|
||||
message: 'Ledger wallet is not supported',
|
||||
},
|
||||
})
|
||||
);
|
||||
window.close();
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import { BtcAddress } from '@btckit/types';
|
||||
import { bytesToHex } from '@stacks/common';
|
||||
|
||||
@@ -8,24 +6,12 @@ import { logger } from '@shared/logger';
|
||||
import { makeRpcSuccessResponse } from '@shared/rpc/rpc-methods';
|
||||
|
||||
import { useAnalytics } from '@app/common/hooks/analytics/use-analytics';
|
||||
import { useDefaultRequestParams } from '@app/common/hooks/use-default-request-search-params';
|
||||
import { initialSearchParams } from '@app/common/initial-search-params';
|
||||
import { useRpcRequestParams } from '@app/common/rpc-helpers';
|
||||
import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks';
|
||||
import { useCurrentAccountTaprootIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/taproot-account.hooks';
|
||||
import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks';
|
||||
import { useAppPermissions } from '@app/store/app-permissions/app-permissions.slice';
|
||||
|
||||
function useRpcRequestParams() {
|
||||
const defaultParams = useDefaultRequestParams();
|
||||
return useMemo(
|
||||
() => ({
|
||||
...defaultParams,
|
||||
requestId: initialSearchParams.get('requestId') ?? '',
|
||||
}),
|
||||
[defaultParams]
|
||||
);
|
||||
}
|
||||
|
||||
export function useGetAddresses() {
|
||||
const analytics = useAnalytics();
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import BigNumber from 'bignumber.js';
|
||||
import { createMoney } from '@shared/models/money.model';
|
||||
|
||||
import { formatMoneyPadded } from '@app/common/money/format-money';
|
||||
import { useRejectIfLedgerWallet } from '@app/common/rpc-helpers';
|
||||
import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks';
|
||||
|
||||
import { SendTransferActions } from './components/send-transfer-actions';
|
||||
@@ -11,9 +12,10 @@ import { SendTransferHeader } from './components/send-transfer-header';
|
||||
import { useRpcSendTransfer } from './use-rpc-send-transfer';
|
||||
|
||||
export function RpcSendTransfer() {
|
||||
useRejectIfLedgerWallet('sendTransfer');
|
||||
|
||||
const nativeSegwitSigner = useCurrentAccountNativeSegwitIndexZeroSigner();
|
||||
const { address, amount, onChooseTransferFee, origin } = useRpcSendTransfer();
|
||||
|
||||
const amountAsMoney = createMoney(new BigNumber(amount), 'BTC');
|
||||
const formattedMoney = formatMoneyPadded(amountAsMoney);
|
||||
const requester = new URL(origin ?? '').host;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { truncateMiddle } from '@stacks/ui-utils';
|
||||
|
||||
import { useRouteHeader } from '@app/common/hooks/use-route-header';
|
||||
import { useRejectIfLedgerWallet } from '@app/common/rpc-helpers';
|
||||
import { Disclaimer } from '@app/components/disclaimer';
|
||||
import { NoFeesWarningRow } from '@app/components/no-fees-warning-row';
|
||||
import { PopupHeader } from '@app/features/current-account/popup-header';
|
||||
@@ -25,6 +26,7 @@ export function RpcSignBip322MessageRoute() {
|
||||
|
||||
function RpcSignBip322Message() {
|
||||
useRouteHeader(<PopupHeader displayAddresssBalanceOf="all" />);
|
||||
useRejectIfLedgerWallet('signMessage');
|
||||
|
||||
const {
|
||||
origin,
|
||||
|
||||
@@ -9,10 +9,13 @@ import { makeRpcErrorResponse, makeRpcSuccessResponse } from '@shared/rpc/rpc-me
|
||||
import { isDefined, undefinedIfLengthZero } from '@shared/utils';
|
||||
|
||||
import { useDefaultRequestParams } from '@app/common/hooks/use-default-request-search-params';
|
||||
import { useRejectIfLedgerWallet } from '@app/common/rpc-helpers';
|
||||
import { usePsbtSigner } from '@app/features/psbt-signer/hooks/use-psbt-signer';
|
||||
import { PsbtSigner } from '@app/features/psbt-signer/psbt-signer';
|
||||
|
||||
function useRpcSignPsbtParams() {
|
||||
useRejectIfLedgerWallet('signPsbt');
|
||||
|
||||
const [searchParams] = useSearchParams();
|
||||
const { origin, tabId } = useDefaultRequestParams();
|
||||
const requestId = searchParams.get('requestId');
|
||||
|
||||
Reference in New Issue
Block a user