@metamask-institutional/extension
Advanced tools
Comparing version 0.3.16 to 0.3.17
@@ -118,2 +118,9 @@ # Changelog | ||
## [0.3.17](https://github.com/consensys-vertical-apps/metamask-institutional/compare/extension-v0.3.16...extension-v0.3.17) (2024-03-19) | ||
### Bug Fixes | ||
* **extensionutils:** we have to clonedeep txmeta ([#665](https://github.com/consensys-vertical-apps/metamask-institutional/issues/665)) ([8b3f3f9](https://github.com/consensys-vertical-apps/metamask-institutional/commit/8b3f3f921d139943ed4d38afdb46d8be4305f6b4)) | ||
## [0.3.16](https://github.com/consensys-vertical-apps/metamask-institutional/compare/extension-v0.3.15...extension-v0.3.16) (2024-02-20) | ||
@@ -120,0 +127,0 @@ |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -7,2 +10,3 @@ exports.handleTxStatusUpdate = exports.getTxByCustodyId = exports.showCustodianDeepLink = exports.custodianEventHandlerFactory = exports.updateCustodianTransactions = void 0; | ||
const types_1 = require("@metamask-institutional/types"); | ||
const lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep")); | ||
const TRANSACTION_EVENTS = { | ||
@@ -159,40 +163,41 @@ [types_1.MetaMaskTransactionStatuses.ADDED]: "Transaction Added", | ||
if (txMeta) { | ||
txMeta.custodyStatus = txData.transaction.status.displayText.toLowerCase(); | ||
txMeta.custodyStatusDisplayText = (_a = txData.transaction) === null || _a === void 0 ? void 0 : _a.status.displayText; | ||
if (txData.transaction.hash && (!txMeta.hash || txMeta.hash === "0x")) { | ||
setTxHash(txMeta.id, txData.transaction.hash); | ||
const mutableTxMeta = (0, lodash_clonedeep_1.default)(txMeta); | ||
mutableTxMeta.custodyStatus = txData.transaction.status.displayText.toLowerCase(); | ||
mutableTxMeta.custodyStatusDisplayText = (_a = txData.transaction) === null || _a === void 0 ? void 0 : _a.status.displayText; | ||
if (txData.transaction.hash && (!mutableTxMeta.hash || mutableTxMeta.hash === "0x")) { | ||
setTxHash(mutableTxMeta.id, txData.transaction.hash); | ||
} | ||
if (txData.transaction.status.signed && | ||
!txData.transaction.status.finished && | ||
txMeta.status !== types_1.MetaMaskTransactionStatuses.SIGNED && | ||
txMeta.status !== types_1.MetaMaskTransactionStatuses.SUBMITTED && | ||
txMeta.status !== types_1.MetaMaskTransactionStatuses.CONFIRMED && | ||
txMeta.status !== types_1.MetaMaskTransactionStatuses.FAILED) { | ||
txStateManager.setTxStatusSigned(txMeta.id); | ||
mutableTxMeta.status !== types_1.MetaMaskTransactionStatuses.SIGNED && | ||
mutableTxMeta.status !== types_1.MetaMaskTransactionStatuses.SUBMITTED && | ||
mutableTxMeta.status !== types_1.MetaMaskTransactionStatuses.CONFIRMED && | ||
mutableTxMeta.status !== types_1.MetaMaskTransactionStatuses.FAILED) { | ||
txStateManager.setTxStatusSigned(mutableTxMeta.id); | ||
} | ||
if (!txMeta.txParams.nonce || | ||
(txData.transaction.nonce && Number(txMeta.txParams.nonce) !== Number(txData.transaction.nonce))) { | ||
if (!mutableTxMeta.txParams.nonce || | ||
(txData.transaction.nonce && Number(mutableTxMeta.txParams.nonce) !== Number(txData.transaction.nonce))) { | ||
const nonce = "0x" + (parseInt(txData.transaction.nonce) || (await getPendingNonce(txData.transaction.from))).toString(16); | ||
const newTxParams = await { | ||
...txMeta.txParams, | ||
...mutableTxMeta.txParams, | ||
nonce, | ||
}; | ||
txMeta.txParams = newTxParams; | ||
mutableTxMeta.txParams = newTxParams; | ||
} | ||
const looksLikeFinalUpdate = txData.transaction.status.finished && | ||
txData.transaction.status.success && | ||
txMeta.status !== types_1.MetaMaskTransactionStatuses.CONFIRMED; | ||
const looksLikeRealSubmission = txData.transaction.status.submitted && txMeta.status !== types_1.MetaMaskTransactionStatuses.CONFIRMED; | ||
mutableTxMeta.status !== types_1.MetaMaskTransactionStatuses.CONFIRMED; | ||
const looksLikeRealSubmission = txData.transaction.status.submitted && mutableTxMeta.status !== types_1.MetaMaskTransactionStatuses.CONFIRMED; | ||
if (looksLikeFinalUpdate || looksLikeRealSubmission) { | ||
txStateManager.setTxStatusSubmitted(txMeta.id); | ||
txStateManager.setTxStatusSubmitted(mutableTxMeta.id); | ||
} | ||
else if (txData.transaction.status.finished && !txData.transaction.status.success) { | ||
let message = `Transaction status from custodian: ${txMeta.custodyStatusDisplayText}`; | ||
let message = `Transaction status from custodian: ${mutableTxMeta.custodyStatusDisplayText}`; | ||
if (txData.transaction.status.reason) { | ||
message = txData.transaction.status.reason; | ||
} | ||
txStateManager.setTxStatusFailed(txMeta.id, message); | ||
txStateManager.setTxStatusFailed(mutableTxMeta.id, message); | ||
} | ||
txStateManager.updateTransaction(txMeta, "Updated custody transaction status."); | ||
return txMeta; | ||
txStateManager.updateTransaction(mutableTxMeta, "Updated custody transaction status."); | ||
return mutableTxMeta; | ||
} | ||
@@ -199,0 +204,0 @@ return null; |
{ | ||
"name": "@metamask-institutional/extension", | ||
"version": "0.3.16", | ||
"version": "0.3.17", | ||
"description": "This package will export extension blocks used across the old @codefi/mmi-sdk library", | ||
@@ -30,3 +30,3 @@ "author": "Antonio Regadas <apregadas@gmail.com>", | ||
}, | ||
"gitHead": "7eaca03fb26bc794ba133a0998e39f53b5d97331", | ||
"gitHead": "6ecf7235b9bef8cdfec4306bba07fae5e2f76b99", | ||
"dependencies": { | ||
@@ -41,4 +41,5 @@ "@ethereumjs/util": "^8.0.5", | ||
"jest-create-mock-instance": "^2.0.0", | ||
"jest-fetch-mock": "3.0.3" | ||
"jest-fetch-mock": "3.0.3", | ||
"lodash.clonedeep": "^4.5.0" | ||
} | ||
} |
{ | ||
"name": "@metamask-institutional/extension", | ||
"version": "0.3.16", | ||
"version": "0.3.17", | ||
"description": "This package will export extension blocks used across the old @codefi/mmi-sdk library", | ||
@@ -30,3 +30,3 @@ "author": "Antonio Regadas <apregadas@gmail.com>", | ||
}, | ||
"gitHead": "7eaca03fb26bc794ba133a0998e39f53b5d97331", | ||
"gitHead": "6ecf7235b9bef8cdfec4306bba07fae5e2f76b99", | ||
"dependencies": { | ||
@@ -41,4 +41,5 @@ "@ethereumjs/util": "^8.0.5", | ||
"jest-create-mock-instance": "^2.0.0", | ||
"jest-fetch-mock": "3.0.3" | ||
"jest-fetch-mock": "3.0.3", | ||
"lodash.clonedeep": "^4.5.0" | ||
} | ||
} |
@@ -6,2 +6,3 @@ import { CustodyController, toChecksumHexAddress } from "@metamask-institutional/custody-controller"; | ||
import { ICustodianUpdate, MetamaskTransaction, MetaMaskTransactionStatuses } from "@metamask-institutional/types"; | ||
import cloneDeep from 'lodash.clonedeep'; | ||
@@ -275,7 +276,9 @@ // This is to emulate the events in the TransactionController | ||
if (txMeta) { | ||
txMeta.custodyStatus = txData.transaction.status.displayText.toLowerCase(); | ||
txMeta.custodyStatusDisplayText = txData.transaction?.status.displayText; | ||
const mutableTxMeta = cloneDeep(txMeta); | ||
if (txData.transaction.hash && (!txMeta.hash || txMeta.hash === "0x")) { | ||
setTxHash(txMeta.id, txData.transaction.hash); | ||
mutableTxMeta.custodyStatus = txData.transaction.status.displayText.toLowerCase(); | ||
mutableTxMeta.custodyStatusDisplayText = txData.transaction?.status.displayText; | ||
if (txData.transaction.hash && (!mutableTxMeta.hash || mutableTxMeta.hash === "0x")) { | ||
setTxHash(mutableTxMeta.id, txData.transaction.hash); | ||
} | ||
@@ -287,13 +290,13 @@ | ||
!txData.transaction.status.finished && | ||
txMeta.status !== MetaMaskTransactionStatuses.SIGNED && | ||
txMeta.status !== MetaMaskTransactionStatuses.SUBMITTED && | ||
txMeta.status !== MetaMaskTransactionStatuses.CONFIRMED && | ||
txMeta.status !== MetaMaskTransactionStatuses.FAILED | ||
mutableTxMeta.status !== MetaMaskTransactionStatuses.SIGNED && | ||
mutableTxMeta.status !== MetaMaskTransactionStatuses.SUBMITTED && | ||
mutableTxMeta.status !== MetaMaskTransactionStatuses.CONFIRMED && | ||
mutableTxMeta.status !== MetaMaskTransactionStatuses.FAILED | ||
) { | ||
txStateManager.setTxStatusSigned(txMeta.id); | ||
txStateManager.setTxStatusSigned(mutableTxMeta.id); | ||
} | ||
if ( | ||
!txMeta.txParams.nonce || | ||
(txData.transaction.nonce && Number(txMeta.txParams.nonce) !== Number(txData.transaction.nonce)) | ||
!mutableTxMeta.txParams.nonce || | ||
(txData.transaction.nonce && Number(mutableTxMeta.txParams.nonce) !== Number(txData.transaction.nonce)) | ||
) { | ||
@@ -304,6 +307,6 @@ const nonce = | ||
const newTxParams = await { | ||
...txMeta.txParams, | ||
...mutableTxMeta.txParams, | ||
nonce, | ||
}; | ||
txMeta.txParams = newTxParams; | ||
mutableTxMeta.txParams = newTxParams; | ||
} | ||
@@ -331,3 +334,3 @@ | ||
txData.transaction.status.success && | ||
txMeta.status !== MetaMaskTransactionStatuses.CONFIRMED; | ||
mutableTxMeta.status !== MetaMaskTransactionStatuses.CONFIRMED; | ||
@@ -337,8 +340,8 @@ /* Sometimes we get updates AFTER a TX is confirmed, so we have to be careful not to "revert this" but otherwise we should set submitted when its submitted */ | ||
const looksLikeRealSubmission = | ||
txData.transaction.status.submitted && txMeta.status !== MetaMaskTransactionStatuses.CONFIRMED; | ||
txData.transaction.status.submitted && mutableTxMeta.status !== MetaMaskTransactionStatuses.CONFIRMED; | ||
if (looksLikeFinalUpdate || looksLikeRealSubmission) { | ||
txStateManager.setTxStatusSubmitted(txMeta.id); | ||
txStateManager.setTxStatusSubmitted(mutableTxMeta.id); | ||
} else if (txData.transaction.status.finished && !txData.transaction.status.success) { | ||
let message = `Transaction status from custodian: ${txMeta.custodyStatusDisplayText}`; // Clever English language hack IMO | ||
let message = `Transaction status from custodian: ${mutableTxMeta.custodyStatusDisplayText}`; // Clever English language hack IMO | ||
@@ -348,10 +351,10 @@ if (txData.transaction.status.reason) { | ||
} | ||
txStateManager.setTxStatusFailed(txMeta.id, message); | ||
txStateManager.setTxStatusFailed(mutableTxMeta.id, message); | ||
} | ||
txStateManager.updateTransaction(txMeta, "Updated custody transaction status."); | ||
txStateManager.updateTransaction(mutableTxMeta, "Updated custody transaction status."); | ||
return txMeta; | ||
return mutableTxMeta; | ||
} | ||
return null; | ||
} |
44585
630
10
+ Addedlodash.clonedeep@^4.5.0