From 60f149178cd7b9f92e6f506dfc9424b618addc2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Oliv=C3=A9?= Date: Fri, 18 Aug 2023 14:38:51 +0200 Subject: [PATCH] [MMI] Set approved status in tx controller in MMI logic (#20507) * fix(custodial-signing): set approved status in tx controller in MMI logic * Fixed the issue that was not showing custody-confirm-link --------- Co-authored-by: Shane Terence Odlum --- app/scripts/controllers/transactions/index.js | 4 ++++ .../confirm-transaction-base.component.js | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js index bf6e7be45..e8fa7dd93 100644 --- a/app/scripts/controllers/transactions/index.js +++ b/app/scripts/controllers/transactions/index.js @@ -1779,7 +1779,11 @@ export default class TransactionController extends EventEmitter { // MMI does not broadcast transactions, as that is the responsibility of the custodian if (txMeta.custodyStatus) { this.inProcessOfSigning.delete(txId); + // Custodial nonces and gas params are set by the custodian, so MMI follows the approve + // workflow before the transaction parameters are sent to the keyring + this.txStateManager.setTxStatusApproved(txId); await this._signTransaction(txId); + // MMI relies on custodian to publish transactions so exits this code path early return; } ///: END:ONLY_INCLUDE_IN diff --git a/ui/pages/confirm-transaction-base/confirm-transaction-base.component.js b/ui/pages/confirm-transaction-base/confirm-transaction-base.component.js index 82b98637f..0ee18509f 100644 --- a/ui/pages/confirm-transaction-base/confirm-transaction-base.component.js +++ b/ui/pages/confirm-transaction-base/confirm-transaction-base.component.js @@ -746,9 +746,6 @@ export default class ConfirmTransactionBase extends Component { sendTransaction(txData) .then(() => { - if (!this._isMounted) { - return; - } if (txData.custodyStatus) { showCustodianDeepLink({ fromAddress, @@ -762,6 +759,9 @@ export default class ConfirmTransactionBase extends Component { }, onDeepLinkShown: () => { clearConfirmTransaction(); + if (!this._isMounted) { + return; + } this.setState({ submitting: false }, () => { history.push(mostRecentOverviewPage); updateCustomNonce(''); @@ -769,6 +769,9 @@ export default class ConfirmTransactionBase extends Component { }, }); } else { + if (!this._isMounted) { + return; + } this.setState( { submitting: false,