Skip to content

Commit

Permalink
fix: user should be able to increase fee for stacks with ledger, closes
Browse files Browse the repository at this point in the history
  • Loading branch information
edgarkhanzadian committed Feb 2, 2024
1 parent 666fa37 commit 47b03f6
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,13 @@ import { useRefreshAllAccountData } from '@app/common/hooks/account/use-refresh-
import { useStxBalance } from '@app/common/hooks/balance/stx/use-stx-balance';
import { microStxToStx, stxToMicroStx } from '@app/common/money/unit-conversion';
import { stacksValue } from '@app/common/stacks-utils';
import { useWalletType } from '@app/common/use-wallet-type';
import { safelyFormatHexTxid } from '@app/common/utils/safe-handle-txid';
import { stxFeeValidator } from '@app/common/validation/forms/fee-validators';
import { LoadingSpinner } from '@app/components/loading-spinner';
import { StacksTransactionItem } from '@app/components/stacks-transaction-item/stacks-transaction-item';
import { useLedgerNavigate } from '@app/features/ledger/hooks/use-ledger-navigate';
import { useStacksBroadcastTransaction } from '@app/features/stacks-transaction-request/hooks/use-stacks-broadcast-transaction';
import { useCurrentStacksAccountBalances } from '@app/query/stacks/balance/stx-balance.hooks';
import { useSubmittedTransactionsActions } from '@app/store/submitted-transactions/submitted-transactions.hooks';
import { useReplaceByFeeSoftwareWalletSubmitCallBack } from '@app/store/transactions/fees.hooks';
import { useRawDeserializedTxState, useRawTxIdState } from '@app/store/transactions/raw.hooks';
import { Caption } from '@app/ui/components/typography/caption';

Expand All @@ -34,13 +32,11 @@ export function IncreaseStxFeeForm() {
const tx = useSelectedTx();
const navigate = useNavigate();
const [, setTxId] = useRawTxIdState();
const replaceByFee = useReplaceByFeeSoftwareWalletSubmitCallBack();
const { data: balances } = useCurrentStacksAccountBalances();
const { availableBalance } = useStxBalance();
const submittedTransactionsActions = useSubmittedTransactionsActions();
const rawTx = useRawDeserializedTxState();
const { whenWallet } = useWalletType();
const ledgerNavigate = useLedgerNavigate();
const { stacksBroadcastTransaction } = useStacksBroadcastTransaction('STX');

const fee = Number(rawTx?.auth.spendingCondition?.fee);

Expand All @@ -58,24 +54,9 @@ export function IncreaseStxFeeForm() {
const txId = tx.tx_id || safelyFormatHexTxid(rawTx.txid());
await refreshAccountData();
submittedTransactionsActions.transactionReplacedByFee(txId);
await whenWallet({
software: async () => {
await replaceByFee(rawTx);
},
ledger: () => {
ledgerNavigate.toConnectAndSignStacksTransactionStep(rawTx);
},
})();
await stacksBroadcastTransaction(rawTx);
},
[
tx,
rawTx,
refreshAccountData,
submittedTransactionsActions,
whenWallet,
replaceByFee,
ledgerNavigate,
]
[tx, rawTx, refreshAccountData, submittedTransactionsActions, stacksBroadcastTransaction]
);

if (!tx || !fee) return <LoadingSpinner />;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { useMemo, useState } from 'react';
import toast from 'react-hot-toast';
import { useNavigate } from 'react-router-dom';

import { StacksTransaction, deserializeTransaction } from '@stacks/transactions';
import { StacksTransaction } from '@stacks/transactions';

import { logger } from '@shared/logger';
import { CryptoCurrencies } from '@shared/models/currencies.model';
Expand All @@ -15,11 +15,7 @@ import { useSignStacksTransaction } from '@app/store/transactions/transaction.ho

import { useStacksTransactionSummary } from './use-stacks-transaction-summary';

export function useStacksBroadcastTransaction(
unsignedTx: string,
token: CryptoCurrencies,
decimals?: number
) {
export function useStacksBroadcastTransaction(token: CryptoCurrencies, decimals?: number) {
const signStacksTransaction = useSignStacksTransaction();
const [isBroadcasting, setIsBroadcasting] = useState(false);
const { formSentSummaryTxState } = useStacksTransactionSummary(token);
Expand Down Expand Up @@ -76,18 +72,14 @@ export function useStacksBroadcastTransaction(
} catch (e) {}
}

const deserializedTransaction = deserializeTransaction(unsignedTx);

return {
stacksDeserializedTransaction: deserializedTransaction,
stacksBroadcastTransaction: broadcastTransaction,
isBroadcasting,
};
}, [
broadcastTransactionFn,
navigate,
signStacksTransaction,
unsignedTx,
isBroadcasting,
token,
formSentSummaryTxState,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { Outlet, useNavigate, useParams } from 'react-router-dom';

import { deserializeTransaction } from '@stacks/transactions';
import { Box, Stack } from 'leather-styles/jsx';

import { CryptoCurrencies } from '@shared/models/currencies.model';

import { useLocationStateWithCache } from '@app/common/hooks/use-location-state';
import { useRouteHeader } from '@app/common/hooks/use-route-header';
import { ModalHeader } from '@app/components/modal-header';
import { useStacksBroadcastTransaction } from '@app/features/stacks-transaction-request/hooks/use-stacks-broadcast-transaction';
import { useStacksTransactionSummary } from '@app/features/stacks-transaction-request/hooks/use-stacks-transaction-summary';
import { InfoIcon } from '@app/ui/components/icons/info-icon';
import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip';

import { useStacksBroadcastTransaction } from '../../family/stacks/hooks/use-stacks-broadcast-transaction';
import { useStacksTransactionSummary } from '../../family/stacks/hooks/use-stacks-transaction-summary';
import { SendFormConfirmation } from '../send-form-confirmation';

function useStacksSendFormConfirmationState() {
Expand All @@ -27,8 +28,12 @@ export function StacksSendFormConfirmation() {
const { symbol = 'STX' } = useParams();
const navigate = useNavigate();

const { stacksDeserializedTransaction, stacksBroadcastTransaction, isBroadcasting } =
useStacksBroadcastTransaction(tx, symbol.toUpperCase() as CryptoCurrencies, decimals);
const { stacksBroadcastTransaction, isBroadcasting } = useStacksBroadcastTransaction(
symbol.toUpperCase() as CryptoCurrencies,
decimals
);

const stacksDeserializedTransaction = deserializeTransaction(tx);

const { formReviewTxSummary } = useStacksTransactionSummary(
symbol.toUpperCase() as CryptoCurrencies
Expand Down
45 changes: 0 additions & 45 deletions src/app/store/transactions/fees.hooks.ts

This file was deleted.

0 comments on commit 47b03f6

Please sign in to comment.