mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Dev olu update swap approval transaction (#13641)
* Draft methods to brak updateTransaction into smaller more targeted methods. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> * This is a combination of 52 commits. normalize and validate tx params. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Method to normalize tx and check if it's unapproved. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Move the methods to controllers/transactions/index.js Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Flesh out the methods to update transaction with custom notes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Test update gas fees Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> use lodash to remove undefined properties update swap transaction tests Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Updates transaction user settings. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Add Update Transaction Metrics Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update transaction gas fees actions.js Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update EIP 1559 Params. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint Fixes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Documentations. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove metrics from this PR Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes: Removed unused variables Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update swap approval transaction Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> 1. updateSwapApprovalTransaction should have id as first parameter 2. updateSwapApprovalTransaction should not show loading indicator Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> update swap transaction. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove metrics code. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Add updateTransactionParams to actions.js updateXXX and return txData at the end of updateXXX method Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Fix swapApprovalTransaction update to use same return method as swap update Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Draft methods to brak updateTransaction into smaller more targeted methods. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> normalize and validate tx params. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Method to normalize tx and check if it's unapproved. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Move the methods to controllers/transactions/index.js Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Flesh out the methods to update transaction with custom notes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Test update gas fees Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update swap approval transaction Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> use lodash to remove undefined properties update swap transaction tests Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Add Update Transaction Metrics Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update transaction gas fees actions.js Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update EIP 1559 Params. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint Fixes. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Documentations. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove metrics from this PR Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes: Removed unused variables Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Update swap approval transaction Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> 1. updateSwapApprovalTransaction should have id as first parameter 2. updateSwapApprovalTransaction should not show loading indicator Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> update swap transaction. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove metrics code. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Add updateTransactionParams to actions.js updateXXX and return txData at the end of updateXXX method Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Fix swapApprovalTransaction update to use same return method as swap update Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove duplicate tests Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove comments. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Do not hideLoading, since we're not showing it. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> ...approveTxMeta no longer needed here. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Remove estimated base fee from swap approval txs. Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> remove txTradeMeta from params make sure rebase didn't mess up any code - first pass Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com> Lint fixes Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com>
This commit is contained in:
parent
259e30abc2
commit
e157d2b51f
@ -2218,7 +2218,6 @@ describe('Transaction Controller', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
result = txStateManager.getTransaction('1');
|
result = txStateManager.getTransaction('1');
|
||||||
console.log(result);
|
|
||||||
assert.equal(result.estimateUsed, '0x13');
|
assert.equal(result.estimateUsed, '0x13');
|
||||||
assert.equal(result.txParams.gasPrice, '0x14');
|
assert.equal(result.txParams.gasPrice, '0x14');
|
||||||
assert.equal(result.destinationTokenAddress, VALID_ADDRESS_TWO); // not updated even though it's passed in to update
|
assert.equal(result.destinationTokenAddress, VALID_ADDRESS_TWO); // not updated even though it's passed in to update
|
||||||
|
@ -1531,6 +1531,14 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
updateTransactionGasFees: txController.updateTransactionGasFees.bind(
|
updateTransactionGasFees: txController.updateTransactionGasFees.bind(
|
||||||
txController,
|
txController,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
updateSwapApprovalTransaction: txController.updateSwapApprovalTransaction.bind(
|
||||||
|
txController,
|
||||||
|
),
|
||||||
|
updateSwapTransaction: txController.updateSwapTransaction.bind(
|
||||||
|
txController,
|
||||||
|
),
|
||||||
|
|
||||||
// messageManager
|
// messageManager
|
||||||
signMessage: this.signMessage.bind(this),
|
signMessage: this.signMessage.bind(this),
|
||||||
cancelMessage: this.cancelMessage.bind(this),
|
cancelMessage: this.cancelMessage.bind(this),
|
||||||
|
@ -12,8 +12,8 @@ import {
|
|||||||
ASSET_ROUTE,
|
ASSET_ROUTE,
|
||||||
} from '../../../../helpers/constants/routes';
|
} from '../../../../helpers/constants/routes';
|
||||||
import { getCollectibles } from '../../../../ducks/metamask/metamask';
|
import { getCollectibles } from '../../../../ducks/metamask/metamask';
|
||||||
import { isEqualCaseInsensitive } from '../../../../../shared/modules/string-utils';
|
|
||||||
import { removeToken } from '../../../../store/actions';
|
import { removeToken } from '../../../../store/actions';
|
||||||
|
import { isEqualCaseInsensitive } from '../../../../../shared/modules/string-utils';
|
||||||
|
|
||||||
const ConvertTokenToNFTModal = ({ hideModal, tokenAddress }) => {
|
const ConvertTokenToNFTModal = ({ hideModal, tokenAddress }) => {
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
@ -18,7 +18,8 @@ import {
|
|||||||
setTradeTxId,
|
setTradeTxId,
|
||||||
stopPollingForQuotes,
|
stopPollingForQuotes,
|
||||||
updateAndApproveTx,
|
updateAndApproveTx,
|
||||||
updateTransaction,
|
updateSwapApprovalTransaction,
|
||||||
|
updateSwapTransaction,
|
||||||
resetBackgroundSwapsState,
|
resetBackgroundSwapsState,
|
||||||
setSwapsLiveness,
|
setSwapsLiveness,
|
||||||
setSwapsFeatureFlags,
|
setSwapsFeatureFlags,
|
||||||
@ -1152,15 +1153,10 @@ export const signAndSendTransactions = (history, metaMetricsEvent) => {
|
|||||||
);
|
);
|
||||||
await dispatch(setApproveTxId(approveTxMeta.id));
|
await dispatch(setApproveTxId(approveTxMeta.id));
|
||||||
finalApproveTxMeta = await dispatch(
|
finalApproveTxMeta = await dispatch(
|
||||||
updateTransaction(
|
updateSwapApprovalTransaction(approveTxMeta.id, {
|
||||||
{
|
type: TRANSACTION_TYPES.SWAP_APPROVAL,
|
||||||
...approveTxMeta,
|
sourceTokenSymbol: sourceTokenInfo.symbol,
|
||||||
estimatedBaseFee: decEstimatedBaseFee,
|
}),
|
||||||
type: TRANSACTION_TYPES.SWAP_APPROVAL,
|
|
||||||
sourceTokenSymbol: sourceTokenInfo.symbol,
|
|
||||||
},
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
await dispatch(updateAndApproveTx(finalApproveTxMeta, true));
|
await dispatch(updateAndApproveTx(finalApproveTxMeta, true));
|
||||||
@ -1196,21 +1192,17 @@ export const signAndSendTransactions = (history, metaMetricsEvent) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const finalTradeTxMeta = await dispatch(
|
const finalTradeTxMeta = await dispatch(
|
||||||
updateTransaction(
|
updateSwapTransaction(tradeTxMeta.id, {
|
||||||
{
|
estimatedBaseFee: decEstimatedBaseFee,
|
||||||
...tradeTxMeta,
|
sourceTokenSymbol: sourceTokenInfo.symbol,
|
||||||
estimatedBaseFee: decEstimatedBaseFee,
|
destinationTokenSymbol: destinationTokenInfo.symbol,
|
||||||
sourceTokenSymbol: sourceTokenInfo.symbol,
|
type: TRANSACTION_TYPES.SWAP,
|
||||||
destinationTokenSymbol: destinationTokenInfo.symbol,
|
destinationTokenDecimals: destinationTokenInfo.decimals,
|
||||||
type: TRANSACTION_TYPES.SWAP,
|
destinationTokenAddress: destinationTokenInfo.address,
|
||||||
destinationTokenDecimals: destinationTokenInfo.decimals,
|
swapMetaData,
|
||||||
destinationTokenAddress: destinationTokenInfo.address,
|
swapTokenValue,
|
||||||
swapMetaData,
|
approvalTxId: finalApproveTxMeta?.id,
|
||||||
swapTokenValue,
|
}),
|
||||||
approvalTxId: finalApproveTxMeta?.id,
|
|
||||||
},
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
await dispatch(updateAndApproveTx(finalTradeTxMeta, true));
|
await dispatch(updateAndApproveTx(finalTradeTxMeta, true));
|
||||||
|
@ -671,6 +671,24 @@ const updateMetamaskStateFromBackground = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export function updateSwapApprovalTransaction(txId, txSwapApproval) {
|
||||||
|
return async (dispatch) => {
|
||||||
|
try {
|
||||||
|
await promisifiedBackground.updateSwapApprovalTransaction(
|
||||||
|
txId,
|
||||||
|
txSwapApproval,
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
dispatch(txError(error));
|
||||||
|
dispatch(goHome());
|
||||||
|
log.error(error.message);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return txSwapApproval;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function updateEditableParams(txId, editableParams) {
|
export function updateEditableParams(txId, editableParams) {
|
||||||
return async (dispatch) => {
|
return async (dispatch) => {
|
||||||
try {
|
try {
|
||||||
@ -682,12 +700,6 @@ export function updateEditableParams(txId, editableParams) {
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatch(
|
|
||||||
updateTransactionParams(editableParams.id, editableParams.txParams),
|
|
||||||
);
|
|
||||||
const newState = await updateMetamaskStateFromBackground();
|
|
||||||
dispatch(updateMetamaskState(newState));
|
|
||||||
dispatch(showConfTxPage({ id: editableParams.id }));
|
|
||||||
return editableParams;
|
return editableParams;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -703,14 +715,25 @@ export function updateTransactionGasFees(txId, txGasFees) {
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatch(updateTransactionParams(txGasFees.id, txGasFees.txParams));
|
|
||||||
const newState = await updateMetamaskStateFromBackground();
|
|
||||||
dispatch(updateMetamaskState(newState));
|
|
||||||
dispatch(showConfTxPage({ id: txGasFees.id }));
|
|
||||||
return txGasFees;
|
return txGasFees;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function updateSwapTransaction(txId, txSwap) {
|
||||||
|
return async (dispatch) => {
|
||||||
|
try {
|
||||||
|
await promisifiedBackground.updateSwapTransaction(txId, txSwap);
|
||||||
|
} catch (error) {
|
||||||
|
dispatch(txError(error));
|
||||||
|
dispatch(goHome());
|
||||||
|
log.error(error.message);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return txSwap;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function updateTransaction(txData, dontShowLoadingIndicator) {
|
export function updateTransaction(txData, dontShowLoadingIndicator) {
|
||||||
return async (dispatch) => {
|
return async (dispatch) => {
|
||||||
!dontShowLoadingIndicator && dispatch(showLoadingIndication());
|
!dontShowLoadingIndicator && dispatch(showLoadingIndication());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user