1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 11:22:43 +02: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:
Daniel 2023-05-25 19:30:10 +02:00 committed by GitHub
parent af018efcb6
commit e1b12279ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 14 deletions

View File

@ -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));
}

View File

@ -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) {
@ -458,7 +460,7 @@ export default function ViewQuote() {
: null;
let ethBalanceNeededStx;
if (smartTransactionsError?.balanceNeededWei) {
if (isSmartTransaction && smartTransactionsError?.balanceNeededWei) {
ethBalanceNeededStx = decWEIToDecETH(
smartTransactionsError.balanceNeededWei -
smartTransactionsError.currentBalanceWei,
@ -467,7 +469,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) {
@ -483,8 +485,7 @@ export default function ViewQuote() {
insufficientEth,
balanceError,
dispatch,
currentSmartTransactionsEnabled,
smartTransactionsOptInStatus,
isSmartTransaction,
]);
useEffect(() => {
@ -520,10 +521,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 =
@ -924,14 +922,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">