mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 09:57:02 +01:00
Show the right "balance needed" value if we fallback from STX to regular Swaps (#19230)
* Show the right balance needed value if we fallback from STX to regular Swaps * Fix usage of StxErrorTypes
This commit is contained in:
parent
ea321c964f
commit
c42d3920f8
@ -208,7 +208,7 @@ const slice = createSlice({
|
||||
setCurrentSmartTransactionsError: (state, action) => {
|
||||
const errorType = Object.values(StxErrorTypes).includes(action.payload)
|
||||
? action.payload
|
||||
: StxErrorTypes.UNAVAILABLE;
|
||||
: StxErrorTypes.unavailable;
|
||||
state.currentSmartTransactionsError = errorType;
|
||||
},
|
||||
setSwapsSTXSubmitLoading: (state, action) => {
|
||||
@ -554,7 +554,7 @@ const disableStxIfRegularTxInProgress = (dispatch, transactions) => {
|
||||
for (const transaction of transactions) {
|
||||
if (IN_PROGRESS_TRANSACTION_STATUSES.includes(transaction.status)) {
|
||||
dispatch(
|
||||
setCurrentSmartTransactionsError(StxErrorTypes.REGULAR_TX_IN_PROGRESS),
|
||||
setCurrentSmartTransactionsError(StxErrorTypes.regularTxPending),
|
||||
);
|
||||
break;
|
||||
}
|
||||
@ -939,7 +939,7 @@ export const signAndSendSwapsSmartTransaction = ({
|
||||
if (!fees) {
|
||||
log.error('"fetchSwapsSmartTransactionFees" failed');
|
||||
dispatch(setSwapsSTXSubmitLoading(false));
|
||||
dispatch(setCurrentSmartTransactionsError(StxErrorTypes.UNAVAILABLE));
|
||||
dispatch(setCurrentSmartTransactionsError(StxErrorTypes.unavailable));
|
||||
return;
|
||||
}
|
||||
if (approveTxParams) {
|
||||
@ -1329,7 +1329,7 @@ export function fetchSwapsSmartTransactionFees({
|
||||
const errorObj = parseSmartTransactionsError(e.message);
|
||||
if (
|
||||
fallbackOnNotEnoughFunds ||
|
||||
errorObj?.error !== StxErrorTypes.NOT_ENOUGH_FUNDS
|
||||
errorObj?.error !== StxErrorTypes.notEnoughFunds
|
||||
) {
|
||||
dispatch(setCurrentSmartTransactionsError(errorObj?.error));
|
||||
}
|
||||
|
@ -201,6 +201,8 @@ export default function ViewQuote() {
|
||||
);
|
||||
const swapsNetworkConfig = useSelector(getSwapsNetworkConfig, shallowEqual);
|
||||
const unsignedTransaction = usedQuote.trade;
|
||||
const isSmartTransaction =
|
||||
currentSmartTransactionsEnabled && smartTransactionsOptInStatus;
|
||||
|
||||
let gasFeeInputs;
|
||||
if (networkAndAccountSupports1559) {
|
||||
@ -460,7 +462,7 @@ export default function ViewQuote() {
|
||||
: null;
|
||||
|
||||
let ethBalanceNeededStx;
|
||||
if (smartTransactionsError?.balanceNeededWei) {
|
||||
if (isSmartTransaction && smartTransactionsError?.balanceNeededWei) {
|
||||
ethBalanceNeededStx = decWEIToDecETH(
|
||||
smartTransactionsError.balanceNeededWei -
|
||||
smartTransactionsError.currentBalanceWei,
|
||||
@ -469,7 +471,7 @@ export default function ViewQuote() {
|
||||
|
||||
const destinationToken = useSelector(getDestinationTokenInfo, isEqual);
|
||||
useEffect(() => {
|
||||
if (currentSmartTransactionsEnabled && smartTransactionsOptInStatus) {
|
||||
if (isSmartTransaction) {
|
||||
if (insufficientTokens) {
|
||||
dispatch(setBalanceError(true));
|
||||
} else if (balanceError && !insufficientTokens) {
|
||||
@ -485,8 +487,7 @@ export default function ViewQuote() {
|
||||
insufficientEth,
|
||||
balanceError,
|
||||
dispatch,
|
||||
currentSmartTransactionsEnabled,
|
||||
smartTransactionsOptInStatus,
|
||||
isSmartTransaction,
|
||||
]);
|
||||
|
||||
useEffect(() => {
|
||||
@ -522,10 +523,7 @@ export default function ViewQuote() {
|
||||
ethBalanceNeeded;
|
||||
|
||||
// If it's a Smart Transaction and ETH balance is needed, we want to show a warning.
|
||||
const isStxAndEthBalanceIsNeeded =
|
||||
currentSmartTransactionsEnabled &&
|
||||
smartTransactionsOptInStatus &&
|
||||
ethBalanceNeededStx;
|
||||
const isStxAndEthBalanceIsNeeded = isSmartTransaction && ethBalanceNeededStx;
|
||||
|
||||
// Indicates if we should show to a user a warning about insufficient funds for swapping.
|
||||
const showInsufficientWarning =
|
||||
@ -926,14 +924,14 @@ export default function ViewQuote() {
|
||||
]);
|
||||
|
||||
useEffect(() => {
|
||||
if (currentSmartTransactionsEnabled && smartTransactionsOptInStatus) {
|
||||
if (isSmartTransaction) {
|
||||
// Removes a smart transactions error when the component loads.
|
||||
dispatch({
|
||||
type: SET_SMART_TRANSACTIONS_ERROR,
|
||||
payload: null,
|
||||
});
|
||||
}
|
||||
}, [currentSmartTransactionsEnabled, smartTransactionsOptInStatus, dispatch]);
|
||||
}, [isSmartTransaction, dispatch]);
|
||||
|
||||
return (
|
||||
<div className="view-quote">
|
||||
|
Loading…
Reference in New Issue
Block a user